From 6d836682eadcbcc0b50ced97f35fdf61f8f86e3f Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 18 Jun 2021 20:46:51 +1200 Subject: [PATCH] python/samba/tests: Remove DCs joined to test samba-tool behaviour Otherwise we have the live DCs spamming the logs looking for the long-gone test servers: Failed to connect host fd00::5357:5f0b on port 135 - NT_STATUS_OBJECT_NAME_NOT_FOUND Failed to connect host fd00::5357:5f0b (6f44653d-18c8-4bf4-b2e7-6f85cf7b0f74._msdcs.addom.samba.example.com) on port 135 - NT_STATUS_OBJECT_NAME_NOT_FOUND. Failed to connect host 10.53.57.11 on port 135 - NT_STATUS_OBJECT_NAME_NOT_FOUND Failed to connect host 10.53.57.11 (6f44653d-18c8-4bf4-b2e7-6f85cf7b0f74._msdcs.addom.samba.example.com) on port 135 - NT_STATUS_OBJECT_NAME_NOT_FOUND. Failed to connect host 10.53.57.12 on port 135 - NT_STATUS_OBJECT_NAME_NOT_FOUND This avoids spamming the GitLab pipeline logs with a lot of noise, as there is a size limit to the output, as well as being cleaner. Signed-off-by: Andrew Bartlett Reviewed-by: Gary Lockyer --- python/samba/tests/domain_backup_offline.py | 17 ++++++++++++++++- python/samba/tests/samba_tool/base.py | 11 +++++++++++ python/samba/tests/samba_tool/join_lmdb_size.py | 6 +++++- .../tests/samba_tool/promote_dc_lmdb_size.py | 6 +++++- 4 files changed, 37 insertions(+), 3 deletions(-) diff --git a/python/samba/tests/domain_backup_offline.py b/python/samba/tests/domain_backup_offline.py index 33803ca6ebb..ad371680779 100644 --- a/python/samba/tests/domain_backup_offline.py +++ b/python/samba/tests/domain_backup_offline.py @@ -185,12 +185,15 @@ class DomainBackupOfflineCmp(BlackboxTestCase): def join(self, backend): target = tempfile.mkdtemp(dir=self.tempdir) + new_dc_name = "offlinebackupdc" + join_cmd = "samba-tool domain join {domain} DC " +\ "--server {server} " +\ "--realm {realm} " +\ "--username {username}%{password} " +\ "--targetdir {target} " +\ "--backend-store {backend} " +\ + "--option='netbios name = {new_dc_name}' " +\ "--option=\"vfs objects=dfs_samba4 acl_xattr fake_acls xattr_tdb\"" join_cmd = join_cmd.format(server=os.environ["DC_SERVER"], domain=os.environ["DOMAIN"], @@ -198,9 +201,21 @@ class DomainBackupOfflineCmp(BlackboxTestCase): username=os.environ["USERNAME"], password=os.environ["PASSWORD"], target=target, - backend=backend) + backend=backend, + new_dc_name=new_dc_name) self.check_output(join_cmd) + demote_cmd = "samba-tool domain demote " +\ + "--server {server} " +\ + "--username {username}%{password} " +\ + "--remove-other-dead-server={new_dc_name}" + + demote_cmd = demote_cmd.format(server=os.environ["DC_SERVER"], + username=os.environ["USERNAME"], + password=os.environ["PASSWORD"], + new_dc_name=new_dc_name) + self.check_output(demote_cmd) + return target def backup(self, prov_dir): diff --git a/python/samba/tests/samba_tool/base.py b/python/samba/tests/samba_tool/base.py index ff6f9fcc5d3..4e0f1d0604c 100644 --- a/python/samba/tests/samba_tool/base.py +++ b/python/samba/tests/samba_tool/base.py @@ -21,6 +21,7 @@ # # These can all be accesses via os.environ["VARIBLENAME"] when needed +import os import random import string from samba.auth import system_session @@ -150,3 +151,13 @@ class SambaToolCmdTest(samba.tests.BlackboxTestCase): def assertWithin(self, val1, val2, delta, msg=""): """Assert that val1 is within delta of val2, useful for time computations""" self.assertTrue(((val1 + delta) > val2) and ((val1 - delta) < val2), msg) + + def cleanup_join(self, netbios_name): + (result, out, err) \ + = self.runsubcmd("domain", + "demote", + ("--remove-other-dead-server=%s " % netbios_name), + ("-U%s%%%s" % (os.environ["USERNAME"], os.environ["PASSWORD"])), + ("--server=%s" % os.environ["SERVER"])) + + self.assertCmdSuccess(result, out, err) diff --git a/python/samba/tests/samba_tool/join_lmdb_size.py b/python/samba/tests/samba_tool/join_lmdb_size.py index e410d5fba23..8f2e376bc05 100644 --- a/python/samba/tests/samba_tool/join_lmdb_size.py +++ b/python/samba/tests/samba_tool/join_lmdb_size.py @@ -47,7 +47,11 @@ class JoinLmdbSizeTestCase(SambaToolCmdTest): if size: command += ("--backend-store-size=%s" % size) - return self.run_command(command) + (ret, stdout, stderr) = self.run_command(command) + if ret == 0: + self.cleanup_join(self.netbios_name) + + return (ret, stdout, stderr) def is_rodc(self): url = "ldb://%s/private/sam.ldb" % self.tempsambadir diff --git a/python/samba/tests/samba_tool/promote_dc_lmdb_size.py b/python/samba/tests/samba_tool/promote_dc_lmdb_size.py index 8e679a5c95f..56fcdcf72f0 100644 --- a/python/samba/tests/samba_tool/promote_dc_lmdb_size.py +++ b/python/samba/tests/samba_tool/promote_dc_lmdb_size.py @@ -60,7 +60,11 @@ class PromoteDcLmdbSizeTestCase(SambaToolCmdTest): if size: command += ("--backend-store-size=%s" % size) - return self.run_command(command) + (ret, stdout, stderr) = self.run_command(command) + if ret == 0: + self.cleanup_join(self.netbios_name) + + return (ret, stdout, stderr) def is_rodc(self): url = "ldb://%s/private/sam.ldb" % self.tempsambadir -- 2.34.1