SQUASH - samba3 ctdb test stuff master-ctdbtest-wip
authorMichael Adam <obnox@samba.org>
Sun, 30 Oct 2011 12:53:23 +0000 (13:53 +0100)
committerMichael Adam <obnox@samba.org>
Sun, 30 Oct 2011 12:53:23 +0000 (13:53 +0100)
selftest/target/Samba3.pm

index ba24b26e4f8af43ac1fb56abd3180e5d07dcddd2..4bcbfb798f3ad9b0a7ae965dbaa9cc7b740fe436 100755 (executable)
@@ -248,8 +248,10 @@ sub setup_clusteredmember($$$$)
        print "PROVISIONING CLUSTEREDMEMBER...";
 
        my $ctdbprefix = "$prefix/ctdb";
+       my $sambaprefix = "$prefix/samba";
+       my $server_name = "CLUSTEREDMEMBER";
 
-       my $ctdb_vars = $self->setup_ctdb($ctdbprefix, $swiface);
+       my $ctdb_vars = $self->setup_ctdb($ctdbprefix, $swiface, $server_name);
 
        $ctdb_vars or return undef;
 
@@ -259,14 +261,16 @@ sub setup_clusteredmember($$$$)
        clustering = yes
        ctdbd socket = $ctdb_vars->{SOCKET_FILE}
 ";
-       my $ret = $self->provision($prefix,
-                                  "CLUSTEREDMEMBER",
+       my $ret = $self->provision($sambaprefix,
+                                  $server_name,
                                   $swiface,
                                   "clustermember8pass",
                                   $member_options);
 
        $ret or return undef;
 
+       print "<<<OBNOX>>> CLUSTEREDMEMBER: provision done. joining...\n";
+
        my $net = Samba::bindir_path($self, "net");
        my $cmd = "";
        $cmd .= "SOCKET_WRAPPER_DEFAULT_IFACE=\"$ret->{SOCKET_WRAPPER_DEFAULT_IFACE}\" ";
@@ -1149,6 +1153,7 @@ domusers:X:$gid_domusers:
         my $cmd = "";
        $cmd .= "SOCKET_WRAPPER_DEFAULT_IFACE=\"$swiface\" ";
        $cmd .= Samba::bindir_path($self, "smbpasswd")." -c $conffile -L -s -a $unix_name > /dev/null";
+       print "<<<OBNOX>>> provision: running smbpasswd ('$cmd')...";
        unless (open(PWD, "|$cmd")) {
              warn("Unable to set password for test account\n$cmd");
              return undef;
@@ -1158,6 +1163,7 @@ domusers:X:$gid_domusers:
              warn("Unable to set password for test account\n$cmd");
              return undef; 
         }
+       print"DONE(smbpasswd)...";
        print "DONE\n";
 
        open(HOSTS, ">>$ENV{SELFTEST_PREFIX}/dns_host_file") or die("Unable to open $ENV{SELFTEST_PREFIX}/dns_host_file");
@@ -1243,13 +1249,13 @@ sub wait_for_start($$)
 ## provision and start of ctdb
 ##
 
-sub setup_ctdb($$)
+sub setup_ctdb($$$$)
 {
-       my ($self, $prefix, $public_if) = @_;
+       my ($self, $prefix, $public_if, $server_name) = @_;
 
        print "PROVISIONING CTDB...";
 
-       my $vars = $self->provision_ctdb($prefix, $public_if);
+       my $vars = $self->provision_ctdb($prefix, $public_if, $server_name);
 
        $vars or return undef;
 
@@ -1285,7 +1291,6 @@ sub check_or_start_ctdb($$) {
                        "--reclock=$env_vars->{RECLOCK_FILE}",
                        "--nlist=$env_vars->{NODES_FILE}",
                        "--nopublicipcheck",
-#                      "--public-addresses=$env_vars->{PUBLIC_ADDRESSES_FILE}",
                        "--event-script-dir=$env_vars->{EVENT_SCRIPT_DIR}",
                        "--logfile=$env_vars->{LOG_FILE}",
                        "-d $env_vars->{DEBUG_LEVEL}",
@@ -1293,6 +1298,8 @@ sub check_or_start_ctdb($$) {
                        "--dbdir-persistent=$env_vars->{DB_DIR_PERSISTENT}",
                        "--dbdir-state=$env_vars->{DB_DIR_STATE}",
                        ) or die("Unable to start ctdbd: $!");
+
+#                      "--public-addresses=$env_vars->{PUBLIC_ADDRESSES_FILE}",
        }
        write_pid($env_vars, "ctdbd", $pid);
        print "DONE\n";
@@ -1300,9 +1307,9 @@ sub check_or_start_ctdb($$) {
        return 0;
 }
 
-sub provision_ctdb($$$$)
+sub provision_ctdb($$$$$)
 {
-       my ($self, $prefix, $pub_iface, $no_delete_prefix) = @_;
+       my ($self, $prefix, $pub_iface, $server_name, $no_delete_prefix) = @_;
 
        my %ret = ();
 
@@ -1406,6 +1413,8 @@ exit 0
        $ret{DEBUG_LEVEL} = 4;
        $ret{PIDDIR} = $piddir;
 
+       $ret{NETBIOSNAME} = $server_name;
+
        $ret{SOCKET_WRAPPER_DEFAULT_IFACE} = $pub_iface;
 
        $ret{BINDIR} = "$self->{srcdir}/ctdb/bin";
@@ -1438,6 +1447,44 @@ sub wait_for_start_ctdb($$)
                return 0;
        }
 
+       sleep(3);
+
+       $ret = system("$cmd");
+       if ($ret != 0) {
+               print "CTDB failed to start?\n";
+               teardown_env_ctdb($self, $envvars);
+               return 0;
+       }
+
+       sleep(3);
+
+       $ret = system("$cmd");
+       if ($ret != 0) {
+               print "CTDB failed to start?\n";
+               teardown_env_ctdb($self, $envvars);
+               return 0;
+       }
+
+       sleep(3);
+
+       $ret = system("$cmd");
+       if ($ret != 0) {
+               print "CTDB failed to start?\n";
+               teardown_env_ctdb($self, $envvars);
+               return 0;
+       }
+
+       sleep(3);
+
+       $ret = system("$cmd");
+       if ($ret != 0) {
+               print "CTDB failed to start?\n";
+               teardown_env_ctdb($self, $envvars);
+               return 0;
+       }
+
+       print "CTDB initialized\n";
+
        print $self->getlog_env_ctdb($envvars);
 
        return 1;