From 57b6979ad034b50debd47979e05b925daa54b5a4 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 10 Jun 2010 08:58:44 +1000 Subject: s4:provision Allow both additional and override prefixmaps in Schema The idea here is to allow some callers to specify a new prefixMap that will override the values loaded from the prefixMap.txt. Andrew Bartlett --- source4/scripting/python/samba/provisionbackend.py | 2 +- source4/scripting/python/samba/schema.py | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/source4/scripting/python/samba/provisionbackend.py b/source4/scripting/python/samba/provisionbackend.py index 629bc28189..b8abc28eaa 100644 --- a/source4/scripting/python/samba/provisionbackend.py +++ b/source4/scripting/python/samba/provisionbackend.py @@ -604,7 +604,7 @@ class FDSBackend(LDAPBackend): schemadn=self.names.schemadn, serverdn=self.names.serverdn, files=[setup_path("schema_samba4.ldif"), self.samba3_ldif], - prefixmap=["1000:1.3.6.1.4.1.7165.2.1", "1001:1.3.6.1.4.1.7165.2.2"]) + additional_prefixmap=["1000:1.3.6.1.4.1.7165.2.1", "1001:1.3.6.1.4.1.7165.2.2"]) def provision(self): from samba.provision import ProvisioningError diff --git a/source4/scripting/python/samba/schema.py b/source4/scripting/python/samba/schema.py index fc4f131932..bdc09cfd3a 100644 --- a/source4/scripting/python/samba/schema.py +++ b/source4/scripting/python/samba/schema.py @@ -53,7 +53,7 @@ def get_schema_descriptor(domain_sid): class Schema(object): def __init__(self, setup_path, domain_sid, invocationid=None, schemadn=None, - serverdn=None, files=None, prefixmap=None, am_rodc=False): + serverdn=None, files=None, override_prefixmap=None, additional_prefixmap=None, am_rodc=False): """Load schema for the SamDB from the AD schema files and samba4_schema.ldif :param samdb: Load a schema into a SamDB. @@ -92,10 +92,13 @@ class Schema(object): setup_path("provision_schema_basedn.ldif"), {"SCHEMADN": schemadn, "DESCRIPTOR": descr}) - self.prefixmap_data = open(setup_path("prefixMap.txt"), 'r').read() + if override_prefixmap is not None: + self.prefixmap_data = override_prefixmap + else: + self.prefixmap_data = open(setup_path("prefixMap.txt"), 'r').read() - if prefixmap is not None: - for map in prefixmap: + if additional_prefixmap is not None: + for map in additional_prefixmap: self.prefixmap_data += "%s\n" % map self.prefixmap_data = b64encode(self.prefixmap_data) -- cgit