s4-selftest/drs Allow some DRS tests to operate against an IP
authorAndrew Bartlett <abartlet@samba.org>
Thu, 1 Dec 2022 22:42:55 +0000 (11:42 +1300)
committerJule Anger <janger@samba.org>
Fri, 3 Feb 2023 09:35:08 +0000 (09:35 +0000)
This is not comprehensive, but makes some manual test runs easier by
avoiding the need for DNS names to resolve.

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

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
(cherry picked from commit a150a2dcb1fc7fc7f606838de17ad4d3e6072bda)

source4/torture/drs/python/drs_base.py
source4/torture/drs/python/getnc_exop.py
source4/torture/drs/python/repl_move.py
source4/torture/drs/python/repl_schema.py

index d87918456f1748d165823ed4d1838df409c75f02..f072c8eb80ca2e98a7a2d116139718487ec4e7f2 100644 (file)
@@ -492,8 +492,11 @@ class DrsBaseTestCase(SambaToolCmdTest):
 
         return req10
 
-    def _ds_bind(self, server_name, creds=None):
-        binding_str = "ncacn_ip_tcp:%s[seal]" % server_name
+    def _ds_bind(self, server_name, creds=None, ip=None):
+        if ip is None:
+            binding_str = f"ncacn_ip_tcp:{server_name}[seal]"
+        else:
+            binding_str = f"ncacn_ip_tcp:{ip}[seal,target_hostname={server_name}]"
 
         if creds is None:
             creds = self.get_credentials()
index 8582eb17c669322722b62b8a007058ca43951a20..2d58790785f124c03d51f8f70ce161ef3974adf0 100644 (file)
@@ -85,7 +85,7 @@ class DrsReplicaSyncTestCase(drs_base.DrsBaseTestCase):
         self.ldb_dc1.add({
             "dn": self.ou,
             "objectclass": "organizationalUnit"})
-        (self.drs, self.drs_handle) = self._ds_bind(self.dnsname_dc1)
+        (self.drs, self.drs_handle) = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
         (self.default_hwm, self.default_utdv) = self._get_highest_hwm_utdv(self.ldb_dc1)
 
     def tearDown(self):
@@ -251,7 +251,7 @@ class DrsReplicaSyncTestCase(drs_base.DrsBaseTestCase):
                                nc_guid=misc.GUID("c2d2f745-1610-4e93-964b-d4ba73eb32f8"),
                                exop=drsuapi.DRSUAPI_EXOP_NONE)
 
-        (drs, drs_handle) = self._ds_bind(fsmo_owner["dns_name"])
+        (drs, drs_handle) = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
         try:
             (level, ctr) = drs.DsGetNCChanges(drs_handle, 8, req8)
         except WERRORError as e1:
@@ -269,7 +269,7 @@ class DrsReplicaSyncTestCase(drs_base.DrsBaseTestCase):
                                nc_guid=misc.GUID("c2d2f745-1610-4e93-964b-d4ba73eb32f8"),
                                exop=drsuapi.DRSUAPI_EXOP_REPL_OBJ)
 
-        (drs, drs_handle) = self._ds_bind(fsmo_owner["dns_name"])
+        (drs, drs_handle) = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
         try:
             (level, ctr) = drs.DsGetNCChanges(drs_handle, 8, req8)
         except WERRORError as e1:
@@ -702,7 +702,7 @@ class DrsReplicaPrefixMapTestCase(drs_base.DrsBaseTestCase):
 
         dc_guid_1 = self.ldb_dc1.get_invocation_id()
 
-        drs, drs_handle = self._ds_bind(self.dnsname_dc1)
+        drs, drs_handle = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
 
         req8 = self._exop_req8(dest_dsa=None,
                                invocation_id=dc_guid_1,
@@ -721,7 +721,7 @@ class DrsReplicaPrefixMapTestCase(drs_base.DrsBaseTestCase):
         partial_attribute_set = self.get_partial_attribute_set([99999])
 
         dc_guid_1 = self.ldb_dc1.get_invocation_id()
-        drs, drs_handle = self._ds_bind(self.dnsname_dc1)
+        drs, drs_handle = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
 
         try:
             pfm = self._samdb_fetch_pfm_and_schi()
@@ -754,7 +754,7 @@ class DrsReplicaPrefixMapTestCase(drs_base.DrsBaseTestCase):
         partial_attribute_set = self.get_partial_attribute_set([drsuapi.DRSUAPI_ATTID_unicodePwd])
 
         dc_guid_1 = self.ldb_dc1.get_invocation_id()
-        drs, drs_handle = self._ds_bind(self.dnsname_dc1)
+        drs, drs_handle = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
 
         try:
             pfm = self._samdb_fetch_pfm_and_schi()
@@ -828,7 +828,7 @@ class DrsReplicaPrefixMapTestCase(drs_base.DrsBaseTestCase):
         partial_attribute_set = self.get_partial_attribute_set([drsuapi.DRSUAPI_ATTID_name])
 
         dc_guid_1 = self.ldb_dc1.get_invocation_id()
-        drs, drs_handle = self._ds_bind(self.dnsname_dc1)
+        drs, drs_handle = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
 
         try:
             pfm = self._samdb_fetch_pfm_and_schi()
@@ -901,7 +901,7 @@ class DrsReplicaPrefixMapTestCase(drs_base.DrsBaseTestCase):
         partial_attribute_set_ex = self.get_partial_attribute_set([drsuapi.DRSUAPI_ATTID_unicodePwd])
 
         dc_guid_1 = self.ldb_dc1.get_invocation_id()
-        drs, drs_handle = self._ds_bind(self.dnsname_dc1)
+        drs, drs_handle = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
 
         try:
             pfm = self._samdb_fetch_pfm_and_schi()
@@ -1117,7 +1117,7 @@ class DrsReplicaSyncSortTestCase(drs_base.DrsBaseTestCase):
 
         dc_guid_1 = self.ldb_dc1.get_invocation_id()
 
-        drs, drs_handle = self._ds_bind(self.dnsname_dc1)
+        drs, drs_handle = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
 
         req8 = self._exop_req8(dest_dsa=None,
                                invocation_id=dc_guid_1,
@@ -1177,7 +1177,7 @@ class DrsReplicaSyncSortTestCase(drs_base.DrsBaseTestCase):
 
         dc_guid_1 = self.ldb_dc1.get_invocation_id()
 
-        drs, drs_handle = self._ds_bind(self.dnsname_dc1)
+        drs, drs_handle = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
 
         # Make sure the max objects count is high enough
         req8 = self._exop_req8(dest_dsa=None,
index 19389cdb8af642deaa57475f93e32f595af40245..3827c7cb39f9ce6e8f660cc9d4d91313fd9499e5 100644 (file)
@@ -48,13 +48,6 @@ from samba.dcerpc.drsuapi import *
 
 class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
 
-    def _ds_bind(self, server_name):
-        binding_str = "ncacn_ip_tcp:%s[print,seal]" % server_name
-
-        drs = drsuapi(binding_str, self.get_loadparm(), self.get_credentials())
-        (drs_handle, supported_extensions) = drs_DsBind(drs)
-        return (drs, drs_handle)
-
     def setUp(self):
         super(DrsMoveObjectTestCase, self).setUp()
         # disable automatic replication temporary
@@ -89,8 +82,8 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         self.dc1_guid = self.ldb_dc1.get_invocation_id()
         self.dc2_guid = self.ldb_dc2.get_invocation_id()
 
-        self.drs_dc1 = self._ds_bind(self.dnsname_dc1)
-        self.drs_dc2 = self._ds_bind(self.dnsname_dc2)
+        self.drs_dc1 = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
+        self.drs_dc2 = self._ds_bind(self.dnsname_dc2, ip=self.url_dc2)
 
     def tearDown(self):
         try:
index b46a87af51ed42cb4b4d0672fec0c426dc1b0fe3..44317ac881968c0737ad87b20cf2bb25d291659b 100644 (file)
@@ -52,13 +52,6 @@ class DrsReplSchemaTestCase(drs_base.DrsBaseTestCase):
     # current Class or Attribute object id
     obj_id = 0
 
-    def _ds_bind(self, server_name):
-        binding_str = "ncacn_ip_tcp:%s[seal]" % server_name
-
-        drs = drsuapi.drsuapi(binding_str, self.get_loadparm(), self.get_credentials())
-        (drs_handle, supported_extensions) = drs_DsBind(drs)
-        return (drs, drs_handle)
-
     def _exop_req8(self, dest_dsa, invocation_id, nc_dn_str, exop,
                    replica_flags=0, max_objects=0):
         req8 = drsuapi.DsGetNCChangesRequest8()
@@ -281,7 +274,7 @@ class DrsReplSchemaTestCase(drs_base.DrsBaseTestCase):
 
         dc_guid_1 = self.ldb_dc1.get_invocation_id()
 
-        drs, drs_handle = self._ds_bind(self.dnsname_dc1)
+        drs, drs_handle = self._ds_bind(self.dnsname_dc1, ip=self.url_dc1)
 
         req8 = self._exop_req8(dest_dsa=None,
                                invocation_id=dc_guid_1,