mirror of
https://github.com/samba-team/samba.git
synced 2025-02-08 05:57:51 +03:00
s4-test: added a RODC to our testing
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
b9c0b59034
commit
6bfe8b74aa
@ -1065,6 +1065,75 @@ sub provision_fl2008r2dc($$)
|
|||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub provision_rodc($$$)
|
||||||
|
{
|
||||||
|
my ($self, $prefix, $dcvars) = @_;
|
||||||
|
print "PROVISIONING RODC...";
|
||||||
|
|
||||||
|
# We do this so that we don't run the provision. That's the job of 'net join RODC'.
|
||||||
|
my $ctx = $self->provision_raw_prepare($prefix, "domain controller",
|
||||||
|
"rodc",
|
||||||
|
"dc8",
|
||||||
|
"SAMBADOMAIN",
|
||||||
|
"samba.example.com",
|
||||||
|
"2008",
|
||||||
|
8, $dcvars->{PASSWORD},
|
||||||
|
$dcvars->{SERVER_IP});
|
||||||
|
|
||||||
|
$ctx->{tmpdir} = "$ctx->{prefix_abs}/tmp";
|
||||||
|
push(@{$ctx->{directories}}, "$ctx->{tmpdir}");
|
||||||
|
|
||||||
|
$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 = yes
|
||||||
|
|
||||||
|
[tmp]
|
||||||
|
path = $ctx->{tmpdir}
|
||||||
|
read only = no
|
||||||
|
posix:sharedelay = 10000
|
||||||
|
posix:oplocktimeout = 3
|
||||||
|
posix:writetimeupdatedelay = 500000
|
||||||
|
|
||||||
|
";
|
||||||
|
|
||||||
|
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 join $ret->{CONFIGURATION} $dcvars->{DOMAIN} RODC";
|
||||||
|
$cmd .= " -U$dcvars->{DC_USERNAME}\%$dcvars->{DC_PASSWORD}";
|
||||||
|
$cmd .= " --server=$dcvars->{DC_SERVER}";
|
||||||
|
|
||||||
|
system($cmd) == 0 or die("RODC join failed\n$cmd");
|
||||||
|
|
||||||
|
$ret->{RODC_DC_SERVER} = $ret->{SERVER};
|
||||||
|
$ret->{RODC_DC_SERVER_IP} = $ret->{SERVER_IP};
|
||||||
|
$ret->{RODC_DC_NETBIOSNAME} = $ret->{NETBIOSNAME};
|
||||||
|
$ret->{RODC_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 teardown_env($$)
|
sub teardown_env($$)
|
||||||
{
|
{
|
||||||
my ($self, $envvars) = @_;
|
my ($self, $envvars) = @_;
|
||||||
@ -1157,6 +1226,11 @@ sub setup_env($$$)
|
|||||||
$self->setup_dc("$path/dc");
|
$self->setup_dc("$path/dc");
|
||||||
}
|
}
|
||||||
return $self->setup_member("$path/member", $self->{vars}->{dc});
|
return $self->setup_member("$path/member", $self->{vars}->{dc});
|
||||||
|
} elsif ($envname eq "rodc") {
|
||||||
|
if (not defined($self->{vars}->{dc})) {
|
||||||
|
$self->setup_dc("$path/dc");
|
||||||
|
}
|
||||||
|
return $self->setup_rodc("$path/rodc", $self->{vars}->{dc});
|
||||||
} elsif ($envname eq "all") {
|
} elsif ($envname eq "all") {
|
||||||
if (not defined($self->{vars}->{dc})) {
|
if (not defined($self->{vars}->{dc})) {
|
||||||
$self->setup_dc("$path/dc");
|
$self->setup_dc("$path/dc");
|
||||||
@ -1342,4 +1416,20 @@ sub setup_vampire_dc($$$)
|
|||||||
return $env;
|
return $env;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub setup_rodc($$$)
|
||||||
|
{
|
||||||
|
my ($self, $path, $dc_vars) = @_;
|
||||||
|
|
||||||
|
my $env = $self->provision_rodc($path, $dc_vars);
|
||||||
|
|
||||||
|
$self->check_or_start($env,
|
||||||
|
($ENV{SMBD_MAXTIME} or 7500));
|
||||||
|
|
||||||
|
$self->wait_for_start($env);
|
||||||
|
|
||||||
|
$self->{vars}->{rodc} = $env;
|
||||||
|
|
||||||
|
return $env;
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user