X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=selftest%2Ftarget%2FSamba3.pm;h=7f0f54659edd4301f46e587d6f7e8561660a3fae;hb=98f017048121eee439b2ef0577acf83c3cf65725;hp=89ef2e98923fe6f19666f94c893ece77b58f1b2f;hpb=61a4e1d88c9ab98b48317a4f9f4b5e5b279aedb7;p=obnox%2Fsamba%2Fsamba-obnox.git diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 89ef2e98923..7f0f54659ed 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -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);