summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorWilliam Brown <william@blackhats.net.au>2018-05-19 12:19:58 +1000
committerAndrew Bartlett <abartlet@samba.org>2018-05-29 08:30:52 +0200
commit5b8620307edfd2897dd61c7e860d95662c547ecc (patch)
tree563a589bca9631b52f5e7025f62bf9f157848a8f /python
parent4b1a86235ba454b0e5e27ca621d87c8644b2a98c (diff)
downloadsamba-5b8620307edfd2897dd61c7e860d95662c547ecc.tar.gz
samba-5b8620307edfd2897dd61c7e860d95662c547ecc.tar.bz2
samba-5b8620307edfd2897dd61c7e860d95662c547ecc.zip
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 <william@blackhats.net.au> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Tue May 29 08:30:52 CEST 2018 on sn-devel-144
Diffstat (limited to 'python')
-rw-r--r--python/samba/netcmd/domain.py11
-rw-r--r--python/samba/netcmd/schema.py1
-rw-r--r--python/samba/samdb.py9
3 files changed, 11 insertions, 10 deletions
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)