diff options
author | Matthieu Patou <mat@matws.net> | 2011-11-28 20:48:59 +0100 |
---|---|---|
committer | Matthieu Patou <mat@matws.net> | 2011-12-05 18:23:07 +0100 |
commit | 093dac43312c97a90b68f18ccc80716db84c25f5 (patch) | |
tree | 96bf85c3ab54a6d94b04a218afa4d6f8e818adba /source4/scripting/python/samba/netcmd/drs.py | |
parent | 9e3ee2bf6acd919bd9efa057b3ebedc86f439259 (diff) | |
download | samba-093dac43312c97a90b68f18ccc80716db84c25f5.tar.gz samba-093dac43312c97a90b68f18ccc80716db84c25f5.tar.xz samba-093dac43312c97a90b68f18ccc80716db84c25f5.zip |
s4-python: externalize some function to the drs_utils module so that they can be reused
Diffstat (limited to 'source4/scripting/python/samba/netcmd/drs.py')
-rw-r--r-- | source4/scripting/python/samba/netcmd/drs.py | 34 |
1 files changed, 9 insertions, 25 deletions
diff --git a/source4/scripting/python/samba/netcmd/drs.py b/source4/scripting/python/samba/netcmd/drs.py index 056d3ee5b47..c508e2f331a 100644 --- a/source4/scripting/python/samba/netcmd/drs.py +++ b/source4/scripting/python/samba/netcmd/drs.py @@ -36,22 +36,13 @@ from samba import drs_utils, nttime2string, dsdb from samba.dcerpc import drsuapi, misc import common - - def drsuapi_connect(ctx): '''make a DRSUAPI connection to the server''' - binding_options = "seal" - if int(ctx.lp.get("log level")) >= 5: - binding_options += ",print" - binding_string = "ncacn_ip_tcp:%s[%s]" % (ctx.server, binding_options) try: - ctx.drsuapi = drsuapi.drsuapi(binding_string, ctx.lp, ctx.creds) - (ctx.drsuapi_handle, ctx.bind_supported_extensions) = drs_utils.drs_DsBind(ctx.drsuapi) + (ctx.drsuapi, ctx.drsuapi_handle, ctx.bind_supported_extensions) = drs_utils.drsuapi_connect(ctx.server, ctx.lp, ctx.creds) except Exception, e: raise CommandError("DRS connection to %s failed" % ctx.server, e) - - def samdb_connect(ctx): '''make a ldap connection to the server''' try: @@ -61,8 +52,6 @@ def samdb_connect(ctx): except Exception, e: raise CommandError("LDAP connection to %s failed" % ctx.server, e) - - def drs_errmsg(werr): '''return "was successful" or an error string''' (ecode, estring) = werr @@ -315,27 +304,22 @@ class cmd_drs_replicate(Command): source_dsa_guid = msg[0]['objectGUID'][0] dsa_options = int(attr_default(msg, 'options', 0)) - nc = drsuapi.DsReplicaObjectIdentifier() - nc.dn = NC - req1 = drsuapi.DsReplicaSyncRequest1() - req1.naming_context = nc; - req1.options = 0 + req_options = 0 if not (dsa_options & dsdb.DS_NTDSDSA_OPT_DISABLE_OUTBOUND_REPL): - req1.options |= drsuapi.DRSUAPI_DRS_WRIT_REP + req_options |= drsuapi.DRSUAPI_DRS_WRIT_REP if add_ref: - req1.options |= drsuapi.DRSUAPI_DRS_ADD_REF + req_options |= drsuapi.DRSUAPI_DRS_ADD_REF if sync_forced: - req1.options |= drsuapi.DRSUAPI_DRS_SYNC_FORCED + req_options |= drsuapi.DRSUAPI_DRS_SYNC_FORCED if sync_all: - req1.options |= drsuapi.DRSUAPI_DRS_SYNC_ALL + req_options |= drsuapi.DRSUAPI_DRS_SYNC_ALL if full_sync: - req1.options |= drsuapi.DRSUAPI_DRS_FULL_SYNC_NOW - req1.source_dsa_guid = misc.GUID(source_dsa_guid) + req_options |= drsuapi.DRSUAPI_DRS_FULL_SYNC_NOW try: - self.drsuapi.DsReplicaSync(self.drsuapi_handle, 1, req1) - except Exception, estr: + drs_utils.sendDsReplicaSync(self.drsuapi, self.drsuapi_handle, source_dsa_guid, NC, req_options) + except drs_utils.drsException, estr: raise CommandError("DsReplicaSync failed", estr) self.message("Replicate from %s to %s was successful." % (SOURCE_DC, DEST_DC)) |