[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Mon Apr 11 17:54:02 MDT 2011


The branch, master has been updated
       via  bb15aa5 s3/selftest Tear down the environment if we fail to connect
      from  e3c3b4d s3-printing: Use become_user_by_session() function.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit bb15aa58bc862fbd33b67d5570f68e4232db1a88
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Apr 12 09:05:34 2011 +1000

    s3/selftest Tear down the environment if we fail to connect
    
    This removes the exit(1) that previously didn't tear down the
    environment correctly, and instead just fails to set it up, allowing
    the rest of the script handle that with more grace.
    
    Andrew Bartlett
    
    Autobuild-User: Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date: Tue Apr 12 01:53:37 CEST 2011 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 selftest/target/Samba3.pm |   48 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 36 insertions(+), 12 deletions(-)


Changeset truncated at 500 lines:

diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm
index 9a3be7d..d2082f5 100644
--- a/selftest/target/Samba3.pm
+++ b/selftest/target/Samba3.pm
@@ -106,12 +106,16 @@ sub setup_env($$$)
 		return $self->setup_ktest("$path/ktest");
 	} elsif ($envname eq "secserver") {
 		if (not defined($self->{vars}->{dc})) {
-			$self->setup_dc("$path/dc");
+			if (not defined($self->setup_dc("$path/dc"))) {
+			        return undef;
+			}
 		}
 		return $self->setup_secserver("$path/secserver", $self->{vars}->{dc});
 	} elsif ($envname eq "member") {
 		if (not defined($self->{vars}->{dc})) {
-			$self->setup_dc("$path/dc");
+			if (not defined($self->setup_dc("$path/dc"))) {
+			        return undef;
+			}
 		}
 		return $self->setup_member("$path/member", $self->{vars}->{dc});
 	} else {
@@ -137,11 +141,15 @@ sub setup_dc($$)
 				    "localdc2pass",
 				    $dc_options);
 
+	$vars or return undef;
+
 	$self->check_or_start($vars,
 			      ($ENV{SMBD_MAXTIME} or 2700),
 			       "yes", "yes", "yes");
 
-	$self->wait_for_start($vars);
+	if (not $self->wait_for_start($vars)) {
+	       return undef;
+	}
 
 	$vars->{DC_SERVER} = $vars->{SERVER};
 	$vars->{DC_SERVER_IP} = $vars->{SERVER_IP};
@@ -170,7 +178,7 @@ sub setup_member($$$)
 				   "localmember3pass",
 				   $member_options);
 
-	$ret or die("Unable to provision");
+	$ret or return undef;
 
 	my $net = $self->binpath("net");
 	my $cmd = "";
@@ -184,7 +192,9 @@ sub setup_member($$$)
 			      ($ENV{SMBD_MAXTIME} or 2700),
 			       "yes", "yes", "yes");
 
-	$self->wait_for_start($ret);
+	if (not $self->wait_for_start($ret)) {
+	       return undef;
+	}
 
 	$ret->{DC_SERVER} = $dcvars->{SERVER};
 	$ret->{DC_SERVER_IP} = $dcvars->{SERVER_IP};
@@ -212,11 +222,15 @@ sub setup_secshare($$)
 				    "local4pass",
 				    $secshare_options);
 
+	$vars or return undef;
+
 	$self->check_or_start($vars,
 			      ($ENV{SMBD_MAXTIME} or 2700),
 			       "yes", "no", "yes");
 
-	$self->wait_for_start($vars);
+	if (not $self->wait_for_start($vars)) {
+	       return undef;
+	}
 
 	$self->{vars}->{secshare} = $vars;
 
@@ -240,13 +254,15 @@ sub setup_secserver($$$)
 				   "localserver5pass",
 				   $secserver_options);
 
-	$ret or die("Unable to provision");
+	$ret or return undef;
 
 	$self->check_or_start($ret,
 			      ($ENV{SMBD_MAXTIME} or 2700),
 			       "yes", "no", "yes");
 
-	$self->wait_for_start($ret);
+	if (not $self->wait_for_start($ret)) {
+	       return undef;
+	}
 
 	$ret->{DC_SERVER} = $dcvars->{SERVER};
 	$ret->{DC_SERVER_IP} = $dcvars->{SERVER_IP};
@@ -276,7 +292,7 @@ sub setup_ktest($$$)
 				   "localktest6pass",
 				   $ktest_options);
 
-	$ret or die("Unable to provision");
+	$ret or return undef;
 
 	open(USERMAP, ">$prefix/lib/username.map") or die("Unable to open $prefix/lib/username.map");
 	print USERMAP "
@@ -326,7 +342,9 @@ $ret->{USERNAME} = KTEST\\Administrator
 			      ($ENV{SMBD_MAXTIME} or 2700),
 			       "yes", "no", "yes");
 
-	$self->wait_for_start($ret);
+	if (not $self->wait_for_start($ret)) {
+	       return undef;
+	}
 	return $ret;
 }
 
@@ -873,12 +891,18 @@ sub wait_for_start($$)
 	} while ($ret != 0 && $count < 10);
 	if ($count == 10) {
 	    print "SMBD failed to start up in a reasonable time (20sec)\n";
-	    exit 1;
+	    teardown_env($self, $envvars);
+	    return 0;
 	}
 	# Ensure we have domain users mapped.
-	system($self->binpath("net") ." $envvars->{CONFIGURATION} groupmap add rid=513 unixgroup=domusers type=domain");
+	$ret = system($self->binpath("net") ." $envvars->{CONFIGURATION} groupmap add rid=513 unixgroup=domusers type=domain");
+	if ($ret != 0) {
+	    return 1;
+	}
 
 	print $self->getlog_env($envvars);
+
+	return 1;
 }
 
 1;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list