2020-11-10 16:52:52 +00:00
|
|
|
import logging
|
2021-04-02 13:47:46 +00:00
|
|
|
import slapd
|
2020-11-10 16:52:52 +00:00
|
|
|
|
|
|
|
|
2021-04-02 13:47:46 +00:00
|
|
|
slapd = slapd.Slapd(
|
2020-11-15 17:32:03 +00:00
|
|
|
suffix="dc=mydomain,dc=tld",
|
|
|
|
root_cn="admin",
|
|
|
|
root_pw="admin",
|
|
|
|
port=5389,
|
|
|
|
log_level=logging.INFO,
|
2021-04-02 13:47:46 +00:00
|
|
|
schemas=(
|
2020-11-10 16:52:52 +00:00
|
|
|
"core.ldif",
|
|
|
|
"cosine.ldif",
|
|
|
|
"nis.ldif",
|
|
|
|
"inetorgperson.ldif",
|
|
|
|
"../schemas/oauth2-openldap.ldif",
|
2020-11-15 17:32:03 +00:00
|
|
|
"ldif/memberof.ldif",
|
2020-12-11 10:52:37 +00:00
|
|
|
),
|
2020-11-15 17:32:03 +00:00
|
|
|
)
|
2020-11-10 16:52:52 +00:00
|
|
|
slapd.start()
|
|
|
|
|
|
|
|
try:
|
|
|
|
suffix_dc = slapd.suffix.split(",")[0][3:]
|
|
|
|
slapd.ldapadd(
|
|
|
|
"\n".join(
|
|
|
|
[
|
|
|
|
"dn: " + slapd.suffix,
|
|
|
|
"objectClass: dcObject",
|
|
|
|
"objectClass: organization",
|
|
|
|
"dc: " + suffix_dc,
|
|
|
|
"o: " + suffix_dc,
|
|
|
|
"",
|
|
|
|
"dn: " + slapd.root_dn,
|
|
|
|
"objectClass: applicationProcess",
|
|
|
|
"cn: " + slapd.root_cn,
|
|
|
|
]
|
|
|
|
)
|
|
|
|
+ "\n"
|
|
|
|
)
|
|
|
|
|
2021-10-20 10:28:10 +00:00
|
|
|
with open("ldif/bootstrap-tree.ldif") as fd:
|
|
|
|
try:
|
|
|
|
slapd.ldapadd(fd.read())
|
|
|
|
except RuntimeError:
|
|
|
|
pass
|
|
|
|
|
|
|
|
with open("ldif/bootstrap-data.ldif") as fd:
|
2020-12-31 11:41:19 +00:00
|
|
|
try:
|
|
|
|
slapd.ldapadd(fd.read())
|
|
|
|
except RuntimeError:
|
|
|
|
pass
|
2020-11-10 16:52:52 +00:00
|
|
|
|
|
|
|
slapd.wait()
|
|
|
|
finally:
|
|
|
|
slapd.stop()
|