From: William Brown Date: Sat, 19 May 2018 02:19:58 +0000 (+1000) Subject: python/samba/netcmd/schema.py: samdb schema update now X-Git-Tag: ldb-1.4.0~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b8620307edfd2897dd61c7e860d95662c547ecc;p=thirdparty%2Fsamba.git python/samba/netcmd/schema.py: samdb schema update now When we change schema values, we should trigger a schema update to refresh the changes applied. This is called after a change is made. A helper to samdb is added so that it's easier for other locations to call additionally. Signed-off-by: William Brown Reviewed-by: Andrew Bartlett Reviewed-by: Garming Sam Autobuild-User(master): Andrew Bartlett Autobuild-Date(master): Tue May 29 08:30:52 CEST 2018 on sn-devel-144 --- diff --git a/python/samba/netcmd/domain.py b/python/samba/netcmd/domain.py index 6698fc9583a..819ddd680be 100644 --- a/python/samba/netcmd/domain.py +++ b/python/samba/netcmd/domain.py @@ -3909,15 +3909,6 @@ class ldif_schema_update: self.dn = None self.ldif = "" - def _ldap_schemaUpdateNow(self, samdb): - ldif = """ -dn: -changetype: modify -add: schemaUpdateNow -schemaUpdateNow: 1 -""" - samdb.modify_ldif(ldif) - def can_ignore_failure(self, error): """Checks if we can safely ignore failure to apply an LDIF update""" (num, errstr) = error.args @@ -3946,7 +3937,7 @@ schemaUpdateNow: 1 # Otherwise the OID-to-attribute mapping in # _apply_updates_in_file() won't work, because it # can't lookup the new OID in the schema - self._ldap_schemaUpdateNow(samdb) + samdb.set_schema_update_now() samdb.modify_ldif(self.ldif, controls=['relax:0']) else: diff --git a/python/samba/netcmd/schema.py b/python/samba/netcmd/schema.py index 6579cc9cdcc..9a356a43b8e 100644 --- a/python/samba/netcmd/schema.py +++ b/python/samba/netcmd/schema.py @@ -125,6 +125,7 @@ class cmd_schema_attribute_modify(Command): str(searchflags_int), ldb.FLAG_MOD_REPLACE, 'searchFlags') samdb.modify(m) + samdb.set_schema_update_now() self.outf.write("modified %s" % attr_dn) class cmd_schema_attribute_show(Command): diff --git a/python/samba/samdb.py b/python/samba/samdb.py index 2b5c43faa54..7184fcfa4b0 100644 --- a/python/samba/samdb.py +++ b/python/samba/samdb.py @@ -762,6 +762,15 @@ accountExpires: %u def set_schema_from_ldb(self, ldb_conn, write_indices_and_attributes=True): dsdb._dsdb_set_schema_from_ldb(self, ldb_conn, write_indices_and_attributes) + def set_schema_update_now(self): + ldif = """ +dn: +changetype: modify +add: schemaUpdateNow +schemaUpdateNow: 1 +""" + self.modify_ldif(ldif) + def dsdb_DsReplicaAttribute(self, ldb, ldap_display_name, ldif_elements): '''convert a list of attribute values to a DRSUAPI DsReplicaAttribute''' return dsdb._dsdb_DsReplicaAttribute(ldb, ldap_display_name, ldif_elements)