From fcf3cbbe8b70b889c7949273f878d69e03e48b58 Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Thu, 4 Nov 2010 15:23:25 -0400 Subject: Fix NotFound exception in ipa-nis-manage. The signature of ldap2.get_entry() changed so normalize wasn't being handled properly so the basedn was always being appended causing our entry in cn=config to be not found. ticket 414 --- install/tools/ipa-nis-manage | 6 ++++-- ipaserver/plugins/ldap2.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/install/tools/ipa-nis-manage b/install/tools/ipa-nis-manage index 706b0e63..6448d173 100755 --- a/install/tools/ipa-nis-manage +++ b/install/tools/ipa-nis-manage @@ -37,7 +37,7 @@ error was: """ % sys.exc_value sys.exit(1) -nis_config_dn = "cn=NIS Server, cn=plugins, cn=config" +nis_config_dn = "cn=NIS Server,cn=plugins,cn=config" compat_dn = "cn=Schema Compatibility,cn=plugins,cn=config" def parse_options(): @@ -115,6 +115,8 @@ def main(): conn.connect( bind_dn='cn=directory manager', bind_pw=dirman_password ) + except errors.ACIError: + sys.exit("Incorrect password") except errors.LDAPError, lde: print "An error occurred while connecting to the server." print lde @@ -205,7 +207,7 @@ def main(): print "The %s service may need to be started." % servicemsg finally: - if conn: + if conn and conn.isconnected(): conn.disconnect() return retval diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py index b5efc428..cbb8ddb6 100644 --- a/ipaserver/plugins/ldap2.py +++ b/ipaserver/plugins/ldap2.py @@ -702,7 +702,7 @@ class ldap2(CrudBackend, Encoder): def _generate_modlist(self, dn, entry_attrs, normalize): # get original entry - (dn, entry_attrs_old) = self.get_entry(dn, entry_attrs.keys(), normalize) + (dn, entry_attrs_old) = self.get_entry(dn, entry_attrs.keys(), normalize=normalize) # get_entry returns a decoded entry, encode it back # we could call search_s directly, but this saves a lot of code at # the expense of a little bit of performace -- cgit