Skip to content

Commit fc5c369

Browse files
author
Martin
committed
Add host:port concatenation and fallback block
1 parent 276963b commit fc5c369

File tree

1 file changed

+36
-19
lines changed

1 file changed

+36
-19
lines changed

imageroot/bin/discover-ldap

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,45 @@ for var in [
1515
]:
1616
agent.unset_env(var)
1717

18-
if ldap_domain:
18+
# ------------------------------------------------
19+
# Get domain info or fallback
20+
# ------------------------------------------------
21+
try:
1922
odom = Ldapproxy().get_domain(ldap_domain)
20-
base_dn = odom["base_dn"]
23+
assert "host" in odom
24+
except Exception:
25+
# Fallback during restore / missing domain
26+
odom = {
27+
"host": "127.0.0.1",
28+
"port": 20000,
29+
"schema": "rfc2307",
30+
"base_dn": "dc=semaphore,dc=invalid",
31+
"bind_dn": "cn=example,dc=semaphore,dc=invalid",
32+
"bind_password": "invalid",
33+
}
2134

22-
agent.set_env("LDAP_HOSTNAME", odom["host"])
23-
agent.set_env("LDAP_PORT", str(odom["port"]))
24-
agent.set_env("LDAP_SEARCH_BIND_DN", odom["bind_dn"])
25-
agent.set_env("LDAP_SEARCH_BIND_PASSWORD", odom["bind_password"])
35+
base_dn = odom["base_dn"]
36+
agent.set_env("LDAP_HOSTNAME", odom["host"])
37+
agent.set_env("LDAP_PORT", str(odom["port"]))
38+
agent.set_env("LDAP_SEARCH_BIND_DN", odom["bind_dn"])
39+
agent.set_env("LDAP_SEARCH_BIND_PASSWORD", odom["bind_password"])
2640

27-
if odom["schema"] == "rfc2307":
28-
agent.set_env("LDAP_USER_BASE_DN", f"ou=People,{base_dn}")
29-
agent.set_env("LDAP_GROUP_BASE_DN", f"ou=Groups,{base_dn}")
30-
agent.set_env("LDAP_MEMBER_ATTRIBUTE", "memberUid")
31-
agent.set_env("LDAP_MEMBER_ATTRIBUTE_TYPE", "uid")
41+
# Compose host:port for Semaphore
42+
agent.set_env("SEMAPHORE_LDAP_SERVER", f"{odom['host']}:{odom['port']}")
3243

33-
elif odom["schema"] == "ad":
34-
agent.set_env("LDAP_USER_BASE_DN", f"cn=Users,{base_dn}")
35-
agent.set_env("LDAP_GROUP_BASE_DN", f"cn=Users,{base_dn}")
36-
agent.set_env("LDAP_USERNAME_ATTRIBUTE", "samaccountname")
37-
agent.set_env("LDAP_USER_SEARCH_FILTER",
38-
"(&(objectClass=top)(objectClass=user)(objectClass=person)(objectClass=organizationalPerson))")
39-
agent.set_env("LDAP_GROUP_SEARCH_FILTER",
40-
"(&(objectClass=top)(objectClass=group))")
44+
# Schema-specific DN & search settings
45+
if odom["schema"] == "rfc2307":
46+
agent.set_env("LDAP_USER_BASE_DN", f"ou=People,{base_dn}")
47+
agent.set_env("LDAP_GROUP_BASE_DN", f"ou=Groups,{base_dn}")
48+
agent.set_env("LDAP_MEMBER_ATTRIBUTE", "memberUid")
49+
agent.set_env("LDAP_MEMBER_ATTRIBUTE_TYPE", "uid")
50+
elif odom["schema"] == "ad":
51+
agent.set_env("LDAP_USER_BASE_DN", f"cn=Users,{base_dn}")
52+
agent.set_env("LDAP_GROUP_BASE_DN", f"cn=Users,{base_dn}")
53+
agent.set_env("LDAP_USERNAME_ATTRIBUTE", "samaccountname")
54+
agent.set_env("LDAP_USER_SEARCH_FILTER",
55+
"(&(objectClass=top)(objectClass=user)(objectClass=person)(objectClass=organizationalPerson))")
56+
agent.set_env("LDAP_GROUP_SEARCH_FILTER",
57+
"(&(objectClass=top)(objectClass=group))")
4158

4259
agent.dump_env()

0 commit comments

Comments
 (0)