1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-20 22:50:26 +03:00

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
This commit is contained in:
Andrew Bartlett 2010-06-10 08:58:44 +10:00
parent 6336f24475
commit 57b6979ad0
2 changed files with 8 additions and 5 deletions

View File

@ -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

View File

@ -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)