TMP samba3.pm : ctdb ... Update
authorMichael Adam <obnox@samba.org>
Thu, 20 Oct 2011 00:17:03 +0000 (02:17 +0200)
committerMichael Adam <obnox@samba.org>
Thu, 20 Oct 2011 10:59:08 +0000 (12:59 +0200)
selftest/target/Samba3.pm

index 89ef2e98923fe6f19666f94c893ece77b58f1b2f..7f0f54659edd4301f46e587d6f7e8561660a3fae 100755 (executable)
@@ -32,18 +32,27 @@ sub teardown_env($$)
        my $smbdpid = read_pid($envvars, "smbd");
        my $nmbdpid = read_pid($envvars, "nmbd");
        my $winbinddpid = read_pid($envvars, "winbindd");
-       my $ctdbdpid = read_pid($envvars, "ctdbd");
 
        $self->stop_sig_term($smbdpid);
        $self->stop_sig_term($nmbdpid);
        $self->stop_sig_term($winbinddpid);
-       $self->stop_sig_term($ctdbdpid);
 
        sleep(2);
 
        $self->stop_sig_kill($smbdpid);
        $self->stop_sig_kill($nmbdpid);
        $self->stop_sig_kill($winbinddpid);
+
+       return 0;
+}
+
+sub teardown_env_ctdb($$)
+{
+       my ($self, $envvars) = @_;
+
+       my $ctdbdpid = read_pid($envvars, "ctdbd");
+       $self->stop_sig_term($ctdbdpid);
+       sleep(2);
        $self->stop_sig_kill($ctdbdpid);
 
        return 0;
@@ -106,6 +115,8 @@ sub setup_env($$$)
 {
        my ($self, $envname, $path) = @_;
        
+       print "OBNOX - Samba3::setup_env called for '$envname'\n";
+
        if ($envname eq "s3dc") {
                return $self->setup_s3dc("$path/s3dc");
        } elsif ($envname eq "secshare") {
@@ -1249,11 +1260,11 @@ sub setup_ctdb($$)
 sub check_or_start_ctdb($$) {
        my ($self, $env_vars) = @_;
 
-       unlink($env_vars->{CTDB_TEST_LOG});
+       unlink($env_vars->{CTDBD_TEST_LOG});
        print "STARTING CTDB...";
        my $pid = fork();
        if ($pid == 0) {
-               open STDOUT, ">$env_vars->{CTDB_TEST_LOG}";
+               open STDOUT, ">$env_vars->{CTDBD_TEST_LOG}";
                open STDERR, '>&STDOUT';
 
                my @preargs = (Samba::bindir_path($self, "timelimit"), $self->{server_maxtime});
@@ -1294,12 +1305,12 @@ sub provision_ctdb($$$$$)
 
        my $prefix_abs = abs_path($prefix);
 
-       my $bindir = "$prefix_abs/bin";
-       push @dirs, $bindir;
-
        my $var_dir = "$prefix_abs/var";
        push @dirs, $var_dir;
 
+       my $piddir="$prefix_abs/pid";
+       push @dirs, $piddir;
+
        my $reclock_file = "$var_dir/reck.lock";
        my $socket_file = "$var_dir/ctdb.socket";
        my $log_file = "$var_dir/log.ctdb";
@@ -1313,7 +1324,10 @@ sub provision_ctdb($$$$$)
        my $db_dir_state = "$db_dir/state";
        push @dirs, $db_dir_state;
 
-       my $ctdb_dir = "$prefix_abs/etc/ctdb";
+       my $etc_dir = "$prefix_abs/etc";
+       push @dirs, $etc_dir;
+
+       my $ctdb_dir = "$etc_dir/ctdb";
        push @dirs, $ctdb_dir;
 
        my $nodes_file = "$ctdb_dir/nodes";
@@ -1367,9 +1381,10 @@ sub provision_ctdb($$$$$)
        $ret{LOG_FILE} = $log_file;
        $ret{EVENT_SCRIPT_DIR} = $event_script_dir;
        $ret{PUBLIC_INTERFACE} = "lo";
-       $ret{DEBUG_LEVEL} = 0;
+       $ret{DEBUG_LEVEL} = 2;
+       $ret{PIDDIR} = $piddir;
 
-       $ret{BINDIR} = $bindir;
+       $ret{BINDIR} = "$self->{srcdir}/ctdb/bin";
 
        return \%ret;
 }
@@ -1382,9 +1397,13 @@ sub wait_for_start_ctdb($$)
 
        sleep(5);
 
-       # TODO
-
-       # - run ctdb status...
+       my $cmd = "$envvars->{BINDIR}/ctdb --socket=$envvars->{SOCKET_FILE} status";
+       my $ret = system("$cmd");
+       if ($ret != 0) {
+               print "CTDB failed to start?\n";
+               teardown_env_ctdb($self, $envvars);
+               return 0;
+       }
 
        print $self->getlog_env_ctdb($envvars);