summaryrefslogtreecommitdiff
path: root/selftest
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2010-03-12 10:36:12 +1100
committerAndrew Bartlett <abartlet@samba.org>2010-06-16 09:57:51 +1000
commit697cd139782a8337c1979442fc5d5705e748aa3f (patch)
treeea0ad15ef05b947e3af08c5be613194f659779dd /selftest
parentec6839ac26ee54c501e3377d446cf9884175034e (diff)
downloadsamba-697cd139782a8337c1979442fc5d5705e748aa3f.tar.gz
samba-697cd139782a8337c1979442fc5d5705e748aa3f.tar.bz2
samba-697cd139782a8337c1979442fc5d5705e748aa3f.zip
s4:selftest Add vampire_dc test environment
This starts a domain controller, after running 'net vampire' to populate it. We don't use it as the 'all' environment yet, as the rest of the code isn't quite ready to handle it. Andrew Bartlett
Diffstat (limited to 'selftest')
-rwxr-xr-xselftest/selftest.pl10
-rw-r--r--selftest/target/Samba4.pm77
2 files changed, 83 insertions, 4 deletions
diff --git a/selftest/selftest.pl b/selftest/selftest.pl
index 6ec429b6ce..668afbe653 100755
--- a/selftest/selftest.pl
+++ b/selftest/selftest.pl
@@ -767,18 +767,24 @@ my @exported_envvars = (
"DC_NETBIOSNAME",
"DC_NETBIOSALIAS",
- # domain controller stuff
+ # domain member
"MEMBER_SERVER",
"MEMBER_SERVER_IP",
"MEMBER_NETBIOSNAME",
"MEMBER_NETBIOSALIAS",
- # domain controller stuff
+ # rpc proxy controller stuff
"RPC_PROXY_SERVER",
"RPC_PROXY_SERVER_IP",
"RPC_PROXY_NETBIOSNAME",
"RPC_PROXY_NETBIOSALIAS",
+ # domain controller stuff for Vampired DC
+ "VAMPIRE_DC_SERVER",
+ "VAMPIRE_DC_SERVER_IP",
+ "VAMPIRE_DC_NETBIOSNAME",
+ "VAMPIRE_DC_NETBIOSALIAS",
+
# server stuff
"SERVER",
"SERVER_IP",
diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm
index 343834cb45..0bc9c005e5 100644
--- a/selftest/target/Samba4.pm
+++ b/selftest/target/Samba4.pm
@@ -905,6 +905,58 @@ sub provision_rpc_proxy($$$)
return $ret;
}
+sub provision_vampire_dc($$$)
+{
+ my ($self, $prefix, $dcvars) = @_;
+ print "PROVISIONING VAMPIRE DC...";
+
+ # We do this so that we don't run the provision. That's the job of 'net vampire'.
+ my $ctx = $self->provision_raw_prepare($prefix, "domain controller",
+ "localvampiredc", "localvampiredc5", 5, $dcvars->{PASSWORD},
+ $dcvars->{SERVER_IP});
+
+ $ctx->{smb_conf_extra_options} = "
+ max xmit = 32K
+ server max protocol = SMB2
+
+[sysvol]
+ path = $ctx->{lockdir}/sysvol
+ read only = yes
+
+[netlogon]
+ path = $ctx->{lockdir}/sysvol/$ctx->{dnsname}/scripts
+ read only = no
+
+";
+
+ my $ret = $self->provision_raw_step1($ctx);
+
+ $ret or die("Unable to prepare test env");
+
+ my $net = $self->bindir_path("net");
+ my $cmd = "";
+ $cmd .= "SOCKET_WRAPPER_DEFAULT_IFACE=\"$ret->{SOCKET_WRAPPER_DEFAULT_IFACE}\" ";
+ $cmd .= "KRB5_CONFIG=\"$ret->{KRB5_CONFIG}\" ";
+ $cmd .= "$net vampire $ret->{CONFIGURATION} $dcvars->{DOMAIN} --realm=$dcvars->{REALM}";
+ $cmd .= " -U$dcvars->{DC_USERNAME}\%$dcvars->{DC_PASSWORD}";
+
+ system($cmd) == 0 or die("Join failed\n$cmd");
+
+ $ret->{VAMPIRE_DC_SERVER} = $ret->{SERVER};
+ $ret->{VAMPIRE_DC_SERVER_IP} = $ret->{SERVER_IP};
+ $ret->{VAMPIRE_DC_NETBIOSNAME} = $ret->{NETBIOSNAME};
+ $ret->{VAMPIRE_DC_NETBIOSALIAS} = $ret->{NETBIOSALIAS};
+
+ $ret->{DC_SERVER} = $dcvars->{DC_SERVER};
+ $ret->{DC_SERVER_IP} = $dcvars->{DC_SERVER_IP};
+ $ret->{DC_NETBIOSNAME} = $dcvars->{DC_NETBIOSNAME};
+ $ret->{DC_NETBIOSALIAS} = $dcvars->{DC_NETBIOSALIAS};
+ $ret->{DC_USERNAME} = $dcvars->{DC_USERNAME};
+ $ret->{DC_PASSWORD} = $dcvars->{DC_PASSWORD};
+
+ return $ret;
+}
+
sub provision_dc($$)
{
my ($self, $prefix) = @_;
@@ -1011,6 +1063,11 @@ sub setup_env($$$)
$self->setup_dc("$path/dc");
}
return $self->setup_rpc_proxy("$path/rpc_proxy", $self->{vars}->{dc});
+ } elsif ($envname eq "vampire_dc") {
+ if (not defined($self->{vars}->{dc})) {
+ $self->setup_dc("$path/dc");
+ }
+ return $self->setup_vampire_dc("$path/vampire_dc", $self->{vars}->{dc});
} elsif ($envname eq "member") {
if (not defined($self->{vars}->{dc})) {
$self->setup_dc("$path/dc");
@@ -1037,7 +1094,7 @@ sub setup_env($$$)
}
}
-sub setup_member($$$$)
+sub setup_member($$$)
{
my ($self, $path, $dc_vars) = @_;
@@ -1052,7 +1109,7 @@ sub setup_member($$$$)
return $env;
}
-sub setup_rpc_proxy($$$$)
+sub setup_rpc_proxy($$$)
{
my ($self, $path, $dc_vars) = @_;
@@ -1083,6 +1140,22 @@ sub setup_dc($$)
return $env;
}
+sub setup_vampire_dc($$$)
+{
+ my ($self, $path, $dc_vars) = @_;
+
+ my $env = $self->provision_vampire_dc($path, $dc_vars);
+
+ $self->check_or_start($env,
+ ($ENV{SMBD_MAXTIME} or 7500));
+
+ $self->wait_for_start($env);
+
+ $self->{vars}->{vampire_dc} = $env;
+
+ return $env;
+}
+
sub stop($)
{
my ($self) = @_;