samba-tool: Enable comparison of DNS naming contexts in ldapcmp
authorAmitay Isaacs <amitay@gmail.com>
Tue, 20 Sep 2011 07:31:24 +0000 (17:31 +1000)
committerAndrew Tridgell <tridge@samba.org>
Wed, 2 Nov 2011 04:26:54 +0000 (15:26 +1100)
Signed-off-by: Andrew Tridgell <tridge@samba.org>
source4/scripting/python/samba/netcmd/ldapcmp.py

index 78e6fd356bf59cd8774007943be4b71d84e0a958..a6db4b11b0272f4ab7f23adc6b28d0bd40f12ee3 100755 (executable)
@@ -73,6 +73,7 @@ class LDAPBase(object):
         self.verbose = verbose
         self.host = host
         self.base_dn = str(self.ldb.get_default_basedn())
+        self.root_dn = str(self.ldb.get_root_basedn())
         self.config_dn = str(self.ldb.get_config_basedn())
         self.schema_dn = str(self.ldb.get_schema_basedn())
         self.domain_netbios = self.find_netbios()
@@ -685,7 +686,7 @@ class LDAPBundel(object):
         self.filter_list = filter_list
         if dn_list:
             self.dn_list = dn_list
-        elif context.upper() in ["DOMAIN", "CONFIGURATION", "SCHEMA"]:
+        elif context.upper() in ["DOMAIN", "CONFIGURATION", "SCHEMA", "DNSDOMAIN", "DNSFOREST"]:
             self.context = context.upper()
             self.dn_list = self.get_dn_list(context)
         else:
@@ -809,6 +810,10 @@ class LDAPBundel(object):
             search_base = self.con.config_dn
         elif context.upper() == "SCHEMA":
             search_base = self.con.schema_dn
+        elif context.upper() == "DNSDOMAIN":
+            search_base = "DC=DomainDnsZones,%s" % self.con.base_dn
+        elif context.upper() == "DNSFOREST":
+            search_base = "DC=ForestDnsZones,%s" % self.con.root_dn
 
         dn_list = []
         if not self.search_base:
@@ -850,7 +855,7 @@ class LDAPBundel(object):
 
 class cmd_ldapcmp(Command):
     """compare two ldap databases"""
-    synopsis = "%prog <URL1> <URL2> (domain|configuration|schema) [options]"
+    synopsis = "%prog ldapcmp <URL1> <URL2> (domain|configuration|schema|dnsdomain|dnsforest) [options]"
 
     takes_optiongroups = {
         "sambaopts": options.SambaOptions,
@@ -920,7 +925,7 @@ class cmd_ldapcmp(Command):
             for c in [context1, context2, context3]:
                 if c is None:
                     continue
-                if not c.upper() in ["DOMAIN", "CONFIGURATION", "SCHEMA"]:
+                if not c.upper() in ["DOMAIN", "CONFIGURATION", "SCHEMA", "DNSDOMAIN", "DNSFOREST"]:
                     raise CommandError("Incorrect argument: %s" % c)
                 contexts.append(c.upper())