X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=python%2Fsamba%2Ftests%2Fblackbox%2Fsamba_tool_drs.py;h=a0315e811834cde573eef371ef387479d00649eb;hb=27039a7b1cfe16f40e07c6179887d2ab4f4967a5;hp=13678f5a07717de99ceb84dd2f3550be88ce6d7e;hpb=e432c1b6826ecafeb355bd1d06e33f2eb67e58b8;p=obnox%2Fsamba%2Fsamba-obnox.git diff --git a/python/samba/tests/blackbox/samba_tool_drs.py b/python/samba/tests/blackbox/samba_tool_drs.py index 13678f5a077..a0315e81183 100644 --- a/python/samba/tests/blackbox/samba_tool_drs.py +++ b/python/samba/tests/blackbox/samba_tool_drs.py @@ -20,6 +20,7 @@ import samba.tests import shutil import os +import ldb class SambaToolDrsTests(samba.tests.BlackboxTestCase): """Blackbox test case for samba-tool drs.""" @@ -150,6 +151,7 @@ class SambaToolDrsTests(samba.tests.BlackboxTestCase): self.tempdir)) ldb_rootdse = self._get_rootDSE("tdb://" + os.path.join(self.tempdir, "private", "sam.ldb"), ldap_only=False) nc_name = ldb_rootdse["defaultNamingContext"] + config_nc_name = ldb_rootdse["configurationNamingContext"] ds_name = ldb_rootdse["dsServiceName"] ldap_service_name = str(server_rootdse["ldapServiceName"][0]) @@ -163,6 +165,9 @@ class SambaToolDrsTests(samba.tests.BlackboxTestCase): self.assertEqual(ds_name, server_ds_name) self.assertEqual(ldap_service_name, server_ldap_service_name) + server_dn = samdb.searchone("serverReferenceBL", "cn=%s,ou=domain controllers,%s" % (self.dc2, server_nc_name)) + ntds_guid = samdb.searchone("objectGUID", "cn=ntds settings,%s" % server_dn) + def demote_self(): # While we have this cloned, try demoting the other server on the clone out = self.check_output("samba-tool domain demote --remove-other-dead-server=%s -H %s/private/sam.ldb" @@ -174,6 +179,20 @@ class SambaToolDrsTests(samba.tests.BlackboxTestCase): out = self.check_output("samba-tool domain demote --remove-other-dead-server=%s -H %s/private/sam.ldb" % (self.dc2, self.tempdir)) + + # Check some of the objects that should have been removed + def check_machine_obj(): + samdb.searchone("CN", "cn=%s,ou=domain controllers,%s" % (self.dc2, server_nc_name)) + self.assertRaises(ldb.LdbError, check_machine_obj) + + def check_server_obj(): + samdb.searchone("CN", server_dn) + self.assertRaises(ldb.LdbError, check_server_obj) + + def check_ntds_guid(): + samdb.searchone("CN", "" % ntds_guid) + self.assertRaises(ldb.LdbError, check_ntds_guid) + shutil.rmtree(os.path.join(self.tempdir, "private")) shutil.rmtree(os.path.join(self.tempdir, "etc")) shutil.rmtree(os.path.join(self.tempdir, "msg.lock"))