mirror of
https://github.com/samba-team/samba.git
synced 2025-03-09 08:58:35 +03:00
s4:provision - Added constructors for FDSBackend and OpenLDAPBackend.
This commit is contained in:
parent
1564067fbc
commit
55bb60a5db
@ -1239,13 +1239,13 @@ def provision(setup_dir, message, session_info,
|
||||
lp=lp, credentials=credentials,
|
||||
names=names,
|
||||
message=message, hostname=hostname,
|
||||
root=root, schema=schema,
|
||||
schema=schema,
|
||||
ldapadminpass=ldapadminpass,
|
||||
ldap_backend_extra_port=ldap_backend_extra_port,
|
||||
ol_mmr_urls=ol_mmr_urls,
|
||||
slapd_path=slapd_path,
|
||||
setup_ds_path=setup_ds_path,
|
||||
ldap_backend_extra_port=ldap_backend_extra_port,
|
||||
ldap_dryrun_mode=ldap_dryrun_mode,
|
||||
root=root,
|
||||
setup_ds_path=setup_ds_path,
|
||||
domainsid=domainsid)
|
||||
elif backend_type == "openldap":
|
||||
provision_backend = OpenLDAPBackend(backend_type,
|
||||
@ -1253,28 +1253,19 @@ def provision(setup_dir, message, session_info,
|
||||
lp=lp, credentials=credentials,
|
||||
names=names,
|
||||
message=message, hostname=hostname,
|
||||
root=root, schema=schema,
|
||||
schema=schema,
|
||||
ldapadminpass=ldapadminpass,
|
||||
ldap_backend_extra_port=ldap_backend_extra_port,
|
||||
ol_mmr_urls=ol_mmr_urls,
|
||||
slapd_path=slapd_path,
|
||||
setup_ds_path=setup_ds_path,
|
||||
ldap_backend_extra_port=ldap_backend_extra_port,
|
||||
ldap_dryrun_mode=ldap_dryrun_mode,
|
||||
domainsid=domainsid)
|
||||
ol_mmr_urls=ol_mmr_urls,
|
||||
nosync=nosync)
|
||||
elif backend_type == "ldb" or backend_type == "existing":
|
||||
provision_backend = ProvisionBackend(backend_type,
|
||||
paths=paths, setup_path=setup_path,
|
||||
lp=lp, credentials=credentials,
|
||||
names=names,
|
||||
message=message, hostname=hostname,
|
||||
root=root, schema=schema,
|
||||
ldapadminpass=ldapadminpass,
|
||||
ldap_backend_extra_port=ldap_backend_extra_port,
|
||||
ol_mmr_urls=ol_mmr_urls,
|
||||
slapd_path=slapd_path,
|
||||
setup_ds_path=setup_ds_path,
|
||||
ldap_dryrun_mode=ldap_dryrun_mode,
|
||||
domainsid=domainsid)
|
||||
message=message)
|
||||
else:
|
||||
raise ProvisioningError("Unknown LDAP backend type selected")
|
||||
|
||||
|
@ -56,36 +56,13 @@ def setup_db_config(setup_path, dbdir):
|
||||
|
||||
class ProvisionBackend(object):
|
||||
def __init__(self, backend_type, paths=None, setup_path=None, lp=None, credentials=None,
|
||||
names=None, message=None,
|
||||
hostname=None, root=None,
|
||||
schema=None, ldapadminpass=None,
|
||||
ldap_backend_extra_port=None,
|
||||
ol_mmr_urls=None,
|
||||
setup_ds_path=None, slapd_path=None,
|
||||
nosync=False, ldap_dryrun_mode=False,
|
||||
domainsid=None):
|
||||
"""Provision an LDAP backend for samba4
|
||||
|
||||
This works for OpenLDAP and Fedora DS
|
||||
"""
|
||||
names=None, message=None):
|
||||
"""Provision a backend for samba4"""
|
||||
self.paths = paths
|
||||
self.setup_path = setup_path
|
||||
self.slapd_command = None
|
||||
self.slapd_command_escaped = None
|
||||
self.lp = lp
|
||||
self.names = names
|
||||
self.message = message
|
||||
self.hostname = hostname
|
||||
self.root = root
|
||||
self.schema = schema
|
||||
self.ldapadminpass = ldapadminpass
|
||||
self.ldap_backend_extra_port = ldap_backend_extra_port
|
||||
self.ol_mmr_urls = ol_mmr_urls
|
||||
self.setup_ds_path = setup_ds_path
|
||||
self.slapd_path = slapd_path
|
||||
self.nosync = nosync
|
||||
self.ldap_dryrun_mode = ldap_dryrun_mode
|
||||
self.domainsid = domainsid
|
||||
|
||||
self.type = backend_type
|
||||
|
||||
@ -130,6 +107,34 @@ class ProvisionBackend(object):
|
||||
|
||||
|
||||
class LDAPBackend(ProvisionBackend):
|
||||
def __init__(self, backend_type, paths=None, setup_path=None, lp=None, credentials=None,
|
||||
names=None, message=None,
|
||||
hostname=None,
|
||||
schema=None,
|
||||
ldapadminpass=None,
|
||||
slapd_path=None,
|
||||
ldap_backend_extra_port=None,
|
||||
ldap_dryrun_mode=False):
|
||||
|
||||
super(LDAPBackend, self).__init__(
|
||||
backend_type=backend_type,
|
||||
paths=paths, setup_path=setup_path,
|
||||
lp=lp, credentials=credentials,
|
||||
names=names,
|
||||
message=message)
|
||||
|
||||
self.hostname = hostname
|
||||
self.schema = schema
|
||||
|
||||
self.ldapadminpass = ldapadminpass
|
||||
|
||||
self.slapd_path = slapd_path
|
||||
self.slapd_command = None
|
||||
self.slapd_command_escaped = None
|
||||
|
||||
self.ldap_backend_extra_port = ldap_backend_extra_port
|
||||
self.ldap_dryrun_mode = ldap_dryrun_mode
|
||||
|
||||
def setup(self):
|
||||
# we will shortly start slapd with ldapi for final provisioning. first check with ldapsearch -> rootDSE via self.ldapi_uri
|
||||
# if another instance of slapd is already running
|
||||
@ -230,6 +235,33 @@ class LDAPBackend(ProvisionBackend):
|
||||
|
||||
|
||||
class OpenLDAPBackend(LDAPBackend):
|
||||
def __init__(self, backend_type, paths=None, setup_path=None, lp=None, credentials=None,
|
||||
names=None, message=None,
|
||||
hostname=None,
|
||||
schema=None,
|
||||
ldapadminpass=None,
|
||||
slapd_path=None,
|
||||
ldap_backend_extra_port=None,
|
||||
ldap_dryrun_mode=False,
|
||||
ol_mmr_urls=None,
|
||||
nosync=False):
|
||||
|
||||
super(OpenLDAPBackend, self).__init__(
|
||||
backend_type=backend_type,
|
||||
paths=paths, setup_path=setup_path,
|
||||
lp=lp, credentials=credentials,
|
||||
names=names,
|
||||
message=message,
|
||||
hostname=hostname,
|
||||
schema=schema,
|
||||
ldapadminpass=ldapadminpass,
|
||||
slapd_path=slapd_path,
|
||||
ldap_backend_extra_port=ldap_backend_extra_port,
|
||||
ldap_dryrun_mode=ldap_dryrun_mode)
|
||||
|
||||
self.ol_mmr_urls = ol_mmr_urls
|
||||
self.nosync = nosync
|
||||
|
||||
def provision(self):
|
||||
# Wipe the directories so we can start
|
||||
shutil.rmtree(os.path.join(self.paths.ldapdir, "db"), True)
|
||||
@ -455,6 +487,35 @@ class OpenLDAPBackend(LDAPBackend):
|
||||
|
||||
|
||||
class FDSBackend(LDAPBackend):
|
||||
def __init__(self, backend_type, paths=None, setup_path=None, lp=None, credentials=None,
|
||||
names=None, message=None,
|
||||
hostname=None,
|
||||
schema=None,
|
||||
ldapadminpass=None,
|
||||
slapd_path=None,
|
||||
ldap_backend_extra_port=None,
|
||||
ldap_dryrun_mode=False,
|
||||
root=None,
|
||||
setup_ds_path=None,
|
||||
domainsid=None):
|
||||
|
||||
super(FDSBackend, self).__init__(
|
||||
backend_type=backend_type,
|
||||
paths=paths, setup_path=setup_path,
|
||||
lp=lp, credentials=credentials,
|
||||
names=names,
|
||||
message=message,
|
||||
hostname=hostname,
|
||||
schema=schema,
|
||||
ldapadminpass=ldapadminpass,
|
||||
slapd_path=slapd_path,
|
||||
ldap_backend_extra_port=ldap_backend_extra_port,
|
||||
ldap_dryrun_mode=ldap_dryrun_mode)
|
||||
|
||||
self.root = root
|
||||
self.setup_ds_path = setup_ds_path
|
||||
self.domainsid = domainsid
|
||||
|
||||
def provision(self):
|
||||
if self.ldap_backend_extra_port is not None:
|
||||
serverport = "ServerPort=%d" % self.ldap_backend_extra_port
|
||||
|
Loading…
x
Reference in New Issue
Block a user