s4-join: factorize code, add info
authorMatthieu Patou <mat@matws.net>
Sat, 29 Sep 2012 17:15:05 +0000 (10:15 -0700)
committerMatthieu Patou <mat@matws.net>
Mon, 8 Oct 2012 05:11:47 +0000 (22:11 -0700)
source4/scripting/python/samba/join.py

index 6d268b2820b9ad801a5273ed3acb1d99f58922f0..7b511f82c138816e4eea1b3db37cbb6b8fda9146 100644 (file)
@@ -115,6 +115,7 @@ class dc_join(object):
         ctx.dnsdomain = ctx.samdb.domain_dns_name()
         ctx.dnsforest = ctx.samdb.forest_dns_name()
         ctx.domaindns_zone = 'DC=DomainDnsZones,%s' % ctx.base_dn
+        ctx.forestdns_zone = 'DC=ForestDnsZones,%s' % ctx.base_dn
 
         res_domaindns = ctx.samdb.search(scope=ldb.SCOPE_ONELEVEL,
                                          attrs=[],
@@ -745,11 +746,14 @@ class dc_join(object):
                 repl.replicate(ctx.base_dn, source_dsa_invocation_id,
                                destination_dsa_guid, rodc=ctx.RODC,
                                replica_flags=ctx.domain_replica_flags)
+            print "Done with always replicated NC (base, config, schema)"
 
-            if ctx.domaindns_zone in ctx.nc_list:
-                repl.replicate(ctx.domaindns_zone, source_dsa_invocation_id,
-                               destination_dsa_guid, rodc=ctx.RODC,
-                               replica_flags=ctx.replica_flags)
+            for nc in (ctx.domaindns_zone, ctx.forestdns_zone):
+                if nc  in ctx.nc_list:
+                    print "Replicating %s" % (str(nc))
+                    repl.replicate(nc, source_dsa_invocation_id,
+                                    destination_dsa_guid, rodc=ctx.RODC,
+                                    replica_flags=ctx.replica_flags)
 
             if 'DC=ForestDnsZones,%s' % ctx.root_dn in ctx.nc_list:
                 repl.replicate('DC=ForestDnsZones,%s' % ctx.root_dn, source_dsa_invocation_id,
@@ -803,7 +807,7 @@ class dc_join(object):
         # DC we just replicated from then we don't need to send the updatereplicateref
         # as replication between sites is time based and on the initiative of the
         # requesting DC
-        print "Sending DsReplicateUpdateRefs for all the partitions"
+        print "Sending DsReplicateUpdateRefs for all the replicated partitions"
         for nc in ctx.full_nc_list:
             ctx.send_DsReplicaUpdateRefs(nc)