summaryrefslogtreecommitdiffstats
path: root/ipa-client/ipaclient/ipadiscovery.py
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2007-08-30 19:40:54 -0400
committerSimo Sorce <ssorce@redhat.com>2007-08-30 19:40:54 -0400
commit12b46527c69fcf137962d62fc4062aba73c6225b (patch)
tree2df302b175e872c4c5b49b8133fe33d6689029d4 /ipa-client/ipaclient/ipadiscovery.py
parenta9b9a5539252c3a17988a338943615a08925b383 (diff)
downloadfreeipa-12b46527c69fcf137962d62fc4062aba73c6225b.tar.gz
freeipa-12b46527c69fcf137962d62fc4062aba73c6225b.tar.xz
freeipa-12b46527c69fcf137962d62fc4062aba73c6225b.zip
Complete autodiscovery with autoconfiguration
The code is still not perfect and rely on a yet unreleased nss_ldap package that fix dns discovery problems within nss_ldap itself. Also the manipulation of krb5.conf need to be improved
Diffstat (limited to 'ipa-client/ipaclient/ipadiscovery.py')
-rw-r--r--ipa-client/ipaclient/ipadiscovery.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/ipa-client/ipaclient/ipadiscovery.py b/ipa-client/ipaclient/ipadiscovery.py
index 312c8ba4..6f44ffd1 100644
--- a/ipa-client/ipaclient/ipadiscovery.py
+++ b/ipa-client/ipaclient/ipadiscovery.py
@@ -30,6 +30,7 @@ class IPADiscovery:
self.realm = None
self.domain = None
self.server = None
+ self.basedn = None
def getServerName(self):
return str(self.server)
@@ -40,6 +41,9 @@ class IPADiscovery:
def getRealmName(self):
return str(self.realm)
+ def getBaseDN(self):
+ return str(self.basedn)
+
def search(self, domain = "", server = ""):
hostname = ""
qname = ""
@@ -127,10 +131,10 @@ class IPADiscovery:
lret = lh.search_s("", ldap.SCOPE_BASE, "(objectClass=*)")
for lattr in lret[0][1]:
if lattr.lower() == "namingcontexts":
- lbase = lret[0][1][lattr][0]
+ self.basedn = lret[0][1][lattr][0]
- logging.debug("Search for (info=*) in "+lbase+"(base)")
- lret = lh.search_s(lbase, ldap.SCOPE_BASE, "(info=IPA*)")
+ logging.debug("Search for (info=*) in "+self.basedn+"(base)")
+ lret = lh.search_s(self.basedn, ldap.SCOPE_BASE, "(info=IPA*)")
if not lret:
return []
logging.debug("Found: "+str(lret))
@@ -144,8 +148,8 @@ class IPADiscovery:
return []
#search and return known realms
- logging.debug("Search for (objectClass=krbRealmContainer) in "+lbase+"(sub)")
- lret = lh.search_s("cn=kerberos,"+lbase, ldap.SCOPE_SUBTREE, "(objectClass=krbRealmContainer)")
+ logging.debug("Search for (objectClass=krbRealmContainer) in "+self.basedn+"(sub)")
+ lret = lh.search_s("cn=kerberos,"+self.basedn, ldap.SCOPE_SUBTREE, "(objectClass=krbRealmContainer)")
if not lret:
#something very wrong
return []
@@ -235,5 +239,4 @@ class IPADiscovery:
else:
kdc = qname
- print "["+realm+", "+kdc+"]"
return [realm, kdc]