s4/scripting/demodirsync: fix syntax error
[samba.git] / source4 / scripting / devel / demodirsync.py
index 41dac6ff5172e4a3c8460eed2bc08e4257426a1d..260104cc198625e75e300e9871a8a42afdd7cb67 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/python
 
 
+from __future__ import print_function
 import optparse
 import sys
 import base64
@@ -27,20 +28,22 @@ creds = credopts.get_credentials(lp)
 
 opts = parser.parse_args()[0]
 
+
 def printdirsync(ctl):
         arr = ctl.split(':')
         if arr[0] == 'dirsync':
-            print "Need to continue: %s" % arr[1]
+            print("Need to continue: %s" % arr[1])
             cookie = ndr_unpack(drsblobs.ldapControlDirSyncCookie, base64.b64decode(arr[3]))
-            print "DC's NTDS guid: %s " % cookie.blob.guid1
-            print "highest usn %s" % cookie.blob.highwatermark.highest_usn
-            print "tmp higest usn %s" % cookie.blob.highwatermark.tmp_highest_usn
-            print "reserved usn %s" % cookie.blob.highwatermark.reserved_usn
-            if cookie.blob.extra_length >0:
-                print "highest usn in extra %s" % cookie.blob.extra.ctr.cursors[0].highest_usn
+            print("DC's NTDS guid: %s " % cookie.blob.guid1)
+            print("highest usn %s" % cookie.blob.highwatermark.highest_usn)
+            print("tmp higest usn %s" % cookie.blob.highwatermark.tmp_highest_usn)
+            print("reserved usn %s" % cookie.blob.highwatermark.reserved_usn)
+            if cookie.blob.extra_length > 0:
+                print("highest usn in extra %s" % cookie.blob.extra.ctr.cursors[0].highest_usn)
         return cookie
 
-remote_ldb= Ldb("ldap://" + opts.host + ":389", credentials=creds, lp=lp)
+
+remote_ldb = Ldb("ldap://" + opts.host + ":389", credentials=creds, lp=lp)
 tab = []
 if opts.b:
     base = opts.b
@@ -57,45 +60,45 @@ if (len(ctrls)):
             guid = cookie.blob.guid1
             pass
 if not guid:
-    print "No dirsync control ... strange"
+    print("No dirsync control ... strange")
     sys.exit(1)
 
-print ""
-print "Getting first guest without any cookie"
+print("")
+print("Getting first guest without any cookie")
 (msgs, ctrls) = remote_ldb.searchex(expression="(samaccountname=guest)", base=base, attrs=["objectClass"], controls=["dirsync:1:1:50"])
 cookie = None
 if (len(ctrls)):
     for ctl in ctrls:
         cookie = printdirsync(ctl)
-    print "Returned %d entries" % len(msgs)
+    print("Returned %d entries" % len(msgs))
 
 savedcookie = cookie
 
-print ""
-print "Getting allusers with cookie"
-controls=["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie))]
+print("")
+print("Getting allusers with cookie")
+controls = ["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie)).decode('utf8')]
 (msgs, ctrls) = remote_ldb.searchex(expression="(samaccountname=*)", base=base, attrs=["objectClass"], controls=controls)
 if (len(ctrls)):
     for ctl in ctrls:
         cookie = printdirsync(ctl)
-    print "Returned %d entries" % len(msgs)
+    print("Returned %d entries" % len(msgs))
 
 cookie = savedcookie
 cookie.blob.guid1 = misc.GUID("128a99bf-e2df-4832-ac0a-1fb625e530db")
 if cookie.blob.extra_length > 0:
     cookie.blob.extra.ctr.cursors[0].source_dsa_invocation_id = misc.GUID("128a99bf-e2df-4832-ac0a-1fb625e530db")
 
-print ""
-print "Getting all the entries"
-controls=["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie))]
+print("")
+print("Getting all the entries")
+controls = ["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie)).decode('utf8')]
 (msgs, ctrls) = remote_ldb.searchex(expression="(objectclass=*)", base=base, controls=controls)
 cont = 0
 if (len(ctrls)):
     for ctl in ctrls:
         cookie = printdirsync(ctl)
-    if cookie != None:
+    if cookie is not None:
         cont = (ctl.split(':'))[1]
-    print "Returned %d entries" % len(msgs)
+    print("Returned %d entries" % len(msgs))
 
 usn = cookie.blob.highwatermark.tmp_highest_usn
 if cookie.blob.extra_length > 0:
@@ -103,54 +106,54 @@ if cookie.blob.extra_length > 0:
 else:
     bigusn  = usn + 1000
 while (cont == "1"):
-    print ""
-    controls=["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie))]
+    print("")
+    controls = ["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie)).decode('utf8')]
     (msgs, ctrls) = remote_ldb.searchex(expression="(objectclass=*)", base=base, controls=controls)
     if (len(ctrls)):
         for ctl in ctrls:
             cookie = printdirsync(ctl)
-        if cookie != None:
+        if cookie is not None:
             cont = (ctl.split(':'))[1]
-        print "Returned %d entries" % len(msgs)
+        print("Returned %d entries" % len(msgs))
 
-print ""
-print "Getting with cookie but usn changed to %d we should use the one in extra" % (bigusn - 1)
+print("")
+print("Getting with cookie but usn changed to %d we should use the one in extra" % (bigusn - 1))
 cookie.blob.highwatermark.highest_usn = 0
 cookie.blob.highwatermark.tmp_highest_usn = usn - 2
 if cookie.blob.extra_length > 0:
-    print "here"
+    print("here")
     cookie.blob.extra.ctr.cursors[0].highest_usn = bigusn - 1
-controls=["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie))]
+controls = ["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie)).decode('utf8')]
 (msgs, ctrls) = remote_ldb.searchex(expression="(objectclass=*)", base=base, controls=controls)
 if (len(ctrls)):
     for ctl in ctrls:
         cookie = printdirsync(ctl)
-    print "Returned %d entries" % len(msgs)
+    print("Returned %d entries" % len(msgs))
 
-print ""
-print "Getting with cookie but usn %d changed and extra/cursor GUID too" % (usn - 2)
-print " so that it's (tmp)highest_usn that drives the limit"
+print("")
+print("Getting with cookie but usn %d changed and extra/cursor GUID too" % (usn - 2))
+print(" so that it's (tmp)highest_usn that drives the limit")
 cookie.blob.highwatermark.highest_usn = 0
 cookie.blob.highwatermark.tmp_highest_usn = usn - 2
 if cookie.blob.extra_length > 0:
     cookie.blob.extra.ctr.cursors[0].source_dsa_invocation_id = misc.GUID("128a99bf-e2df-4832-ac0a-1fb625e530db")
     cookie.blob.extra.ctr.cursors[0].highest_usn = bigusn - 1
-controls=["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie))]
+controls = ["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie)).decode('utf8')]
 (msgs, ctrls) = remote_ldb.searchex(expression="(objectclass=*)", base=base, controls=controls)
 if (len(ctrls)):
     for ctl in ctrls:
         cookie = printdirsync(ctl)
-    print "Returned %d entries" % len(msgs)
+    print("Returned %d entries" % len(msgs))
 
-print ""
-print "Getting with cookie but usn changed to %d" % (usn - 2)
+print("")
+print("Getting with cookie but usn changed to %d" % (usn - 2))
 cookie.blob.highwatermark.highest_usn = 0
 cookie.blob.highwatermark.tmp_highest_usn = (usn - 2)
 if cookie.blob.extra_length > 0:
     cookie.blob.extra.ctr.cursors[0].highest_usn = (usn - 2)
-controls=["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie))]
+controls = ["dirsync:1:1:50:%s" % base64.b64encode(ndr_pack(cookie)).decode('utf8')]
 (msgs, ctrls) = remote_ldb.searchex(expression="(objectclass=*)", base=base, controls=controls)
 if (len(ctrls)):
     for ctl in ctrls:
         cookie = printdirsync(ctl)
-    print "Returned %d entries" % len(msgs)
+    print("Returned %d entries" % len(msgs))