1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

selftest: Change backup testenvs to use non-default site

Previously (i.e. up until the last patch) the backup/restore commands
only worked if the Default-First-Site-Name site was present. If this
site didn't exist, then the various restore testenvs would fail to
start. This is now fixed, but this patch changes the backupfrom testenv
so that it uses a non-default site. This will detect the problem if it
is ever re-introduced.

To do this we need to change provision_ad_dc() so the
extra_provision_options can be specified as an argument. (Note that Perl
treats undef the same as an empty array).

By default, the restore will add the new DC into the
Default-First-Site-Name site. This means the backupfromdc and restored
testenvs will now have different sites, so we need to update the ldapcmp
filters to exclude site-specific attributes.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13621

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Tim Beale 2018-09-18 16:30:15 +12:00 committed by Andrew Bartlett
parent ce57a800c9
commit 696fa6a1e6
2 changed files with 12 additions and 6 deletions

View File

@ -1861,7 +1861,8 @@ sub read_config_h($)
sub provision_ad_dc($$$$$$)
{
my ($self, $prefix, $hostname, $domain, $realm, $smbconf_args) = @_;
my ($self, $prefix, $hostname, $domain, $realm, $smbconf_args,
$extra_provision_options) = @_;
my $prefix_abs = abs_path($prefix);
@ -1972,7 +1973,6 @@ sub provision_ad_dc($$$$$$)
copy = print1
";
my $extra_provision_options = undef;
push (@{$extra_provision_options}, "--backend-store=mdb");
print "PROVISIONING AD DC...\n";
my $ret = $self->provision($prefix,
@ -2538,7 +2538,7 @@ sub setup_ad_dc
}
my $env = $self->provision_ad_dc($path, "addc", "ADDOMAIN",
"addom.samba.example.com", "");
"addom.samba.example.com", "", undef);
unless ($env) {
return undef;
}
@ -2565,7 +2565,7 @@ sub setup_ad_dc_no_nss
}
my $env = $self->provision_ad_dc($path, "addc_no_nss", "ADNONSSDOMAIN",
"adnonssdom.samba.example.com", "");
"adnonssdom.samba.example.com", "", undef);
unless ($env) {
return undef;
}
@ -2596,7 +2596,7 @@ sub setup_ad_dc_no_ntlm
my $env = $self->provision_ad_dc($path, "addc_no_ntlm", "ADNONTLMDOMAIN",
"adnontlmdom.samba.example.com",
"ntlm auth = disabled");
"ntlm auth = disabled", undef);
unless ($env) {
return undef;
}
@ -2627,8 +2627,11 @@ sub setup_backupfromdc
return "UNKNOWN";
}
my $provision_args = ["--site=Backup-Site"];
my $env = $self->provision_ad_dc($path, "backupfromdc", "BACKUPDOMAIN",
"backupdom.samba.example.com", "");
"backupdom.samba.example.com", "",
$provision_args);
unless ($env) {
return undef;
}

View File

@ -55,6 +55,9 @@ ldapcmp_with_orig() {
# these are just differences between provisioning a domain and joining a DC
IGNORE_ATTRS="$IGNORE_ATTRS,localPolicyFlags,operatingSystem,displayName"
# the restored DC may use a different side compared to the original DC
IGNORE_ATTRS="$IGNORE_ATTRS,serverReferenceBL,msDS-IsDomainFor"
LDAPCMP_CMD="$PYTHON $BINDIR/samba-tool ldapcmp"
$LDAPCMP_CMD $DB1_PATH $DB2_PATH --two --filter=$IGNORE_ATTRS $BASE_DN_OPTS
}