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;
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}\" ";
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;
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");
## 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;
"--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}",
"--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";
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 = ();
$ret{DEBUG_LEVEL} = 4;
$ret{PIDDIR} = $piddir;
+ $ret{NETBIOSNAME} = $server_name;
+
$ret{SOCKET_WRAPPER_DEFAULT_IFACE} = $pub_iface;
$ret{BINDIR} = "$self->{srcdir}/ctdb/bin";
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;