diff options
author | Simo Sorce <ssorce@redhat.com> | 2008-12-03 09:00:23 -0500 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2008-12-03 11:17:55 -0500 |
commit | 80cc2c371538ba3be9c33ac2baa5fe57685e5ab0 (patch) | |
tree | 9aea19b8ce641516d80269108e67ec3ef628d6a1 /ipa-server | |
parent | b3b4435d0e9ac2c47d9b4f39e65672123e000cae (diff) | |
download | freeipa-80cc2c371538ba3be9c33ac2baa5fe57685e5ab0.tar.gz freeipa-80cc2c371538ba3be9c33ac2baa5fe57685e5ab0.tar.xz freeipa-80cc2c371538ba3be9c33ac2baa5fe57685e5ab0.zip |
Change ipa-compat-manage to work on older python versions too. Break try,except,finally into a try,try,finally,except Add also checks for LDAPError, errors.
Diffstat (limited to 'ipa-server')
-rwxr-xr-x | ipa-server/ipa-compat-manage | 86 |
1 files changed, 50 insertions, 36 deletions
diff --git a/ipa-server/ipa-compat-manage b/ipa-server/ipa-compat-manage index 048d6fd2f..f105f1cd1 100755 --- a/ipa-server/ipa-compat-manage +++ b/ipa-server/ipa-compat-manage @@ -94,46 +94,57 @@ def main(): else: dirman_password = get_dirman_password() - if args[0] == "enable": + try: try: conn = ipaldap.IPAdmin(installutils.get_fqdn()) conn.do_simple_bind(bindpw=dirman_password) - conn.getEntry("cn=Schema Compatibility,cn=plugins,cn=config", - ldap.SCOPE_BASE, "(objectclass=*)") - print "Plugin already Enabled" - retval = 2 - except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND): - print "Enabling plugin" - finally: - if conn: - conn.unbind() - - if retval == 0: - ld = LDAPUpdate(dm_password=dirman_password, sub_dict={}) - retval = ld.update(files) - if retval == 0: - print "This setting will not take effect until you restart Directory Server." - - elif args[0] == "disable": - # Make a quick hack foir now, directly delete the entries by name, - # In future we should add delete capabilites to LDAPUpdate - try: - conn = ipaldap.IPAdmin(installutils.get_fqdn()) - conn.do_simple_bind(bindpw=dirman_password) - conn.getEntry("cn=Schema Compatibility,cn=plugins,cn=config", - ldap.SCOPE_BASE, "(objectclass=*)") - conn.deleteEntry("cn=groups,cn=Schema Compatibility,cn=plugins,cn=config") - conn.deleteEntry("cn=users,cn=Schema Compatibility,cn=plugins,cn=config") - conn.deleteEntry("cn=Schema Compatibility,cn=plugins,cn=config") - except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND): - print "Plugin is already disabled" - retval = 2 - finally: - if conn: - conn.unbind() + except ldap.LDAPError, e: + print "An error occurred while connecting to the server." + print "%s" % e[0]['desc'] + return 1 + + if args[0] == "enable": + try: + conn.getEntry("cn=Schema Compatibility,cn=plugins,cn=config", + ldap.SCOPE_BASE, "(objectclass=*)") + print "Plugin already Enabled" + retval = 2 + except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND): + print "Enabling plugin" + except ldap.LDAPError, e: + print "An error occurred while talking to the server." + print "%s" % e[0]['desc'] + retval = 1 - else: - retval = 1 + if retval == 0: + ld = LDAPUpdate(dm_password=dirman_password, sub_dict={}) + retval = ld.update(files) + if retval == 0: + print "This setting will not take effect until you restart Directory Server." + + elif args[0] == "disable": + # Make a quick hack foir now, directly delete the entries by name, + # In future we should add delete capabilites to LDAPUpdate + try: + conn.getEntry("cn=Schema Compatibility,cn=plugins,cn=config", + ldap.SCOPE_BASE, "(objectclass=*)") + conn.deleteEntry("cn=groups,cn=Schema Compatibility,cn=plugins,cn=config") + conn.deleteEntry("cn=users,cn=Schema Compatibility,cn=plugins,cn=config") + conn.deleteEntry("cn=Schema Compatibility,cn=plugins,cn=config") + except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND): + print "Plugin is already disabled" + retval = 2 + except ldap.LDAPError, e: + print "An error occurred while talking to the server." + print "%s" % e[0]['desc'] + retval = 1 + + else: + retval = 1 + + finally: + if conn: + conn.unbind() return retval @@ -155,3 +166,6 @@ except config.IPAConfigError, e: print "An IPA server to update cannot be found. Has one been configured yet?" print "The error was: %s" % e sys.exit(1) +except ipaerror, e: + print "An error occurred while performing operations: %s" % e + sys.exit(1) |