def replicate(self, dn, source_dsa_invocation_id, destination_dsa_guid,
schema=False, exop=drsuapi.DRSUAPI_EXOP_NONE, rodc=False,
- replica_flags=None, full_sync=True):
+ replica_flags=None, full_sync=True, sync_forced=False):
'''replicate a single DN'''
# setup for a GetNCChanges call
drsuapi.DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING)
else:
req8.replica_flags |= drsuapi.DRSUAPI_DRS_WRIT_REP
+
+ if sync_forced:
+ req8.replica_flags |= drsuapi.DRSUAPI_DRS_SYNC_FORCED
+
req8.max_object_count = 402
req8.max_ndr_size = 402116
req8.extended_op = exop
-def drs_local_replicate(self, SOURCE_DC, NC, full_sync=False, single_object=False):
+def drs_local_replicate(self, SOURCE_DC, NC, full_sync=False, single_object=False,
+ sync_forced=False):
'''replicate from a source DC to the local SAM'''
self.server = SOURCE_DC
(num_objects, num_links) = repl.replicate(NC,
source_dsa_invocation_id, destination_dsa_guid,
rodc=rodc, full_sync=full_sync,
- exop=exop)
+ exop=exop, sync_forced=sync_forced)
except Exception, e:
raise CommandError("Error replicating DN %s" % NC, e)
self.samdb.transaction_commit()
self.creds = credopts.get_credentials(self.lp, fallback_machine=True)
if local:
- drs_local_replicate(self, SOURCE_DC, NC, full_sync=full_sync, single_object=single_object)
+ drs_local_replicate(self, SOURCE_DC, NC, full_sync=full_sync,
+ single_object=single_object,
+ sync_forced=sync_forced)
return
if local_online: