From 696fa6a1e6c615a992a3016ff32405b864b62eec Mon Sep 17 00:00:00 2001 From: Tim Beale Date: Tue, 18 Sep 2018 16:30:15 +1200 Subject: [PATCH] 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 Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett --- selftest/target/Samba4.pm | 15 +++++++++------ testprogs/blackbox/ldapcmp_restoredc.sh | 3 +++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm index 68038fb5183..dc25e1371f2 100755 --- a/selftest/target/Samba4.pm +++ b/selftest/target/Samba4.pm @@ -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; } diff --git a/testprogs/blackbox/ldapcmp_restoredc.sh b/testprogs/blackbox/ldapcmp_restoredc.sh index 51951ba8ce2..d7a51aebbf2 100755 --- a/testprogs/blackbox/ldapcmp_restoredc.sh +++ b/testprogs/blackbox/ldapcmp_restoredc.sh @@ -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 }