diff options
Diffstat (limited to 'source4/scripting/python')
| -rw-r--r-- | source4/scripting/python/samba/samdb.py | 19 | ||||
| -rwxr-xr-x | source4/scripting/python/samba/upgradehelpers.py | 3 | 
2 files changed, 20 insertions, 2 deletions
diff --git a/source4/scripting/python/samba/samdb.py b/source4/scripting/python/samba/samdb.py index f358747b51..1765a07b6b 100644 --- a/source4/scripting/python/samba/samdb.py +++ b/source4/scripting/python/samba/samdb.py @@ -536,7 +536,7 @@ accountExpires: %u          return None -    def set_attribute_replmetadata_version(self, dn, att, value): +    def set_attribute_replmetadata_version(self, dn, att, value, addifnotexist=False):          res = self.search(expression="dn=%s" % dn,                              scope=ldb.SCOPE_SUBTREE,                              controls=["search_options:1:2"], @@ -563,6 +563,23 @@ accountExpires: %u                  o.originating_invocation_id = misc.GUID(self.get_invocation_id())                  o.originating_usn = seq                  o.local_usn = seq + +        if not found and addifnotexist and len(ctr.array) >0: +            o2 = drsblobs.replPropertyMetaData1() +            o2.attid = 589914 +            att_oid = self.get_oid_from_attid(o2.attid) +            seq = self.sequence_number(ldb.SEQ_NEXT) +            o2.version = value +            o2.originating_change_time = now +            o2.originating_invocation_id = misc.GUID(self.get_invocation_id()) +            o2.originating_usn = seq +            o2.local_usn = seq +            found = True +            tab = ctr.array +            tab.append(o2) +            ctr.count = ctr.count + 1 +            ctr.array = tab +          if found :              replBlob = ndr_pack(repl)              msg = ldb.Message() diff --git a/source4/scripting/python/samba/upgradehelpers.py b/source4/scripting/python/samba/upgradehelpers.py index 2bc1795fbc..cc8322f361 100755 --- a/source4/scripting/python/samba/upgradehelpers.py +++ b/source4/scripting/python/samba/upgradehelpers.py @@ -732,6 +732,7 @@ def increment_calculated_keyversion_number(samdb, rootdn, hashDns):                           scope=SCOPE_SUBTREE, attrs=["msDs-KeyVersionNumber"],                           controls=["search_options:1:2"])      done = 0 +    hashDone = {}      if len(entry) == 0:          raise ProvisioningError("Unable to find msDs-KeyVersionNumber")      else: @@ -739,7 +740,7 @@ def increment_calculated_keyversion_number(samdb, rootdn, hashDns):              if hashDns.has_key(str(e.dn).lower()):                  val = e.get("msDs-KeyVersionNumber")                  if not val: -                    continue +                    val = "0"                  version = int(str(hashDns[str(e.dn).lower()]))                  if int(str(val)) < version:                      done = done + 1  | 
