[SCM] Samba Shared Repository - branch v4-0-test updated -
release-4-0-0alpha5-89-gd2a527a
Andrew Bartlett
abartlet at samba.org
Fri Jul 18 09:01:06 GMT 2008
The branch, v4-0-test has been updated
via d2a527acc5ee6fe9b943657dc9c3ace920b2d619 (commit)
via 6d6e03834a1a77a8ceba41fbe8c9d49680065ba3 (commit)
from 370bb39cd79fe49efd36a1ceb3e896d386e6d3ce (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test
- Log -----------------------------------------------------------------
commit d2a527acc5ee6fe9b943657dc9c3ace920b2d619
Author: Andrew Bartlett <abartlet at samba.org>
Date: Fri Jul 18 18:58:56 2008 +1000
Make a seperate template for the refint configuration too
commit 6d6e03834a1a77a8ceba41fbe8c9d49680065ba3
Author: Andrew Bartlett <abartlet at samba.org>
Date: Fri Jul 18 18:44:07 2008 +1000
Put the memberof template into a seperate setup/ file.
Set a memberof-dn in a fruitless attempt to fix the ACL problem I'm
having with OpenLDAP
Andrew Bartlett
-----------------------------------------------------------------------
Summary of changes:
source/scripting/python/samba/provision.py | 63 +++++++++++++---------------
source/setup/memberof.conf | 9 ++++
source/setup/refint.conf | 3 +
source/setup/slapd.conf | 5 ++
4 files changed, 46 insertions(+), 34 deletions(-)
create mode 100644 source/setup/memberof.conf
create mode 100644 source/setup/refint.conf
Changeset truncated at 500 lines:
diff --git a/source/scripting/python/samba/provision.py b/source/scripting/python/samba/provision.py
index 17e7e0f..6eb47c8 100644
--- a/source/scripting/python/samba/provision.py
+++ b/source/scripting/python/samba/provision.py
@@ -153,6 +153,19 @@ def open_ldb(session_info, credentials, lp, dbname):
lp=lp)
+def read_and_sub_file(file, subst_vars):
+ """Read a file and sub in variables found in it
+
+ :param file: File to be read (typically from setup directory)
+ param subst_vars: Optional variables to subsitute in the file.
+ """
+ data = open(file, 'r').read()
+ if subst_vars is not None:
+ data = substitute_var(data, subst_vars)
+ check_all_substituted(data)
+ return data
+
+
def setup_add_ldif(ldb, ldif_path, subst_vars=None):
"""Setup a ldb in the private dir.
@@ -162,27 +175,18 @@ def setup_add_ldif(ldb, ldif_path, subst_vars=None):
"""
assert isinstance(ldif_path, str)
- data = open(ldif_path, 'r').read()
- if subst_vars is not None:
- data = substitute_var(data, subst_vars)
-
- check_all_substituted(data)
-
+ data = read_and_sub_file(ldif_path, subst_vars)
ldb.add_ldif(data)
-def setup_modify_ldif(ldb, ldif_path, substvars=None):
+def setup_modify_ldif(ldb, ldif_path, subst_vars=None):
"""Modify a ldb in the private dir.
:param ldb: LDB object.
:param ldif_path: LDIF file path.
- :param substvars: Optional dictionary with substitution variables.
+ :param subst_vars: Optional dictionary with substitution variables.
"""
- data = open(ldif_path, 'r').read()
- if substvars is not None:
- data = substitute_var(data, substvars)
-
- check_all_substituted(data)
+ data = read_and_sub_file(ldif_path, subst_vars)
ldb.modify_ldif(data)
@@ -206,23 +210,19 @@ def setup_ldb(ldb, ldif_path, subst_vars):
ldb.transaction_commit()
-def setup_file(template, fname, substvars):
+def setup_file(template, fname, subst_vars):
"""Setup a file in the private dir.
:param template: Path of the template file.
:param fname: Path of the file to create.
- :param substvars: Substitution variables.
+ :param subst_vars: Substitution variables.
"""
f = fname
if os.path.exists(f):
os.unlink(f)
- data = open(template, 'r').read()
- if substvars:
- data = substitute_var(data, substvars)
- check_all_substituted(data)
-
+ data = read_and_sub_file(template, subst_vars)
open(f, 'w').write(data)
@@ -1259,19 +1259,13 @@ def provision_backend(setup_dir=None, message=None,
scope=SCOPE_SUBTREE)
if target is not None:
refint_attributes = refint_attributes + " " + target + " " + res[i]["lDAPDisplayName"][0]
- memberof_config += """overlay memberof
-memberof-dangling error
-memberof-refint TRUE
-memberof-group-oc top
-memberof-member-ad """ + res[i]["lDAPDisplayName"][0] + """
-memberof-memberof-ad """ + target + """
-memberof-dangling-error 32
-"""
-
- memberof_config += """overlay refint
-refint_attributes""" + refint_attributes + """
-
-"""
+
+ memberof_config += read_and_sub_file(setup_path("memberof.conf"),
+ { "MEMBER_ATTR" : str(res[i]["lDAPDisplayName"][0]),
+ "MEMBEROF_ATTR" : str(target) })
+
+ refint_config = read_and_sub_file(setup_path("refint.conf"),
+ { "LINK_ATTRS" : refint_attributes})
setup_file(setup_path("slapd.conf"), paths.slapdconf,
{"DNSDOMAIN": names.dnsdomain,
@@ -1279,7 +1273,8 @@ refint_attributes""" + refint_attributes + """
"DOMAINDN": names.domaindn,
"CONFIGDN": names.configdn,
"SCHEMADN": names.schemadn,
- "MEMBEROF_CONFIG": memberof_config})
+ "MEMBEROF_CONFIG": memberof_config,
+ "REFINT_CONFIG": refint_config})
setup_file(setup_path("modules.conf"), paths.modulesconf,
{"REALM": names.realm})
diff --git a/source/setup/memberof.conf b/source/setup/memberof.conf
new file mode 100644
index 0000000..77e57c8
--- /dev/null
+++ b/source/setup/memberof.conf
@@ -0,0 +1,9 @@
+overlay memberof
+memberof-dn cn=samba-admin,cn=samba
+memberof-dangling error
+memberof-refint TRUE
+memberof-group-oc top
+memberof-member-ad ${MEMBER_ATTR}
+memberof-memberof-ad ${MEMBEROF_ATTR}
+memberof-dangling-error 32
+
diff --git a/source/setup/refint.conf b/source/setup/refint.conf
new file mode 100644
index 0000000..a3a7d3e
--- /dev/null
+++ b/source/setup/refint.conf
@@ -0,0 +1,3 @@
+overlay refint
+refint_modifiersName cn=samba-admin,cn=samba
+refint_attributes ${LINK_ATTRS}
diff --git a/source/setup/slapd.conf b/source/setup/slapd.conf
index 1dda752..495847f 100644
--- a/source/setup/slapd.conf
+++ b/source/setup/slapd.conf
@@ -40,6 +40,8 @@ include ${LDAPDIR}/modules.conf
defaultsearchbase ${DOMAINDN}
+${REFINT_CONFIG}
+
${MEMBEROF_CONFIG}
database ldif
@@ -49,6 +51,7 @@ directory ${LDAPDIR}/db/samba
database hdb
suffix ${SCHEMADN}
+rootdn cn=Manager,${SCHEMADN}
directory ${LDAPDIR}/db/schema
index objectClass eq
index samAccountName eq
@@ -66,6 +69,7 @@ syncprov-sessionlog 100
database hdb
suffix ${CONFIGDN}
+rootdn cn=Manager,${CONFIGDN}
directory ${LDAPDIR}/db/config
index objectClass eq
index samAccountName eq
@@ -86,6 +90,7 @@ syncprov-sessionlog 100
database hdb
suffix ${DOMAINDN}
+rootdn cn=Manager,${DOMAINDN}
directory ${LDAPDIR}/db/user
index objectClass eq
index samAccountName eq
--
Samba Shared Repository
More information about the samba-cvs
mailing list