domain_update: Allow the revision version to be set
authorGarming Sam <garming@catalyst.net.nz>
Wed, 13 Dec 2017 00:17:32 +0000 (13:17 +1300)
committerGarming Sam <garming@samba.org>
Wed, 20 Dec 2017 22:13:11 +0000 (23:13 +0100)
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/domain_update.py

index 11e4315ac86a29728e515844970a745e7b059545..7e99e55e064440d442254d2b3d6ea4d940e893df 100644 (file)
@@ -121,7 +121,8 @@ class DomainUpdate(object):
             raise DomainUpdateException("Failed to add revision object child")
 
     def check_updates_functional_level(self, functional_level,
-                                       old_functional_level=None):
+                                       old_functional_level=None,
+                                       update_revision=False):
         res = self.samdb.search(base=self.revision_object,
                                 attrs=["revision"], scope=ldb.SCOPE_BASE)
 
@@ -136,8 +137,12 @@ class DomainUpdate(object):
         self.check_updates_range(min_update, expected_update)
 
         expected_version = functional_level_to_version[functional_level]
-        if int(res[0]['revision'][0]) < expected_version:
-            pass
+        if update_revision and int(res[0]['revision'][0]) < expected_version:
+            self.samdb.modify_ldif("""dn: %s
+changetype: modify
+replace: revision
+revision: %d
+""" % (str(self.revision_object), expected_version))
 
     def check_updates_iterator(self, iterator):
         """