From b9fc5a330468f0927c477f136ae2e4e2ea58c5d6 Mon Sep 17 00:00:00 2001 From: Pavel Zuna Date: Wed, 14 Apr 2010 18:52:12 +0200 Subject: Fix ipa-dns-install. It was failing when DNS was reinstalling. --- ipaserver/install/bindinstance.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ipaserver/install/bindinstance.py b/ipaserver/install/bindinstance.py index 105cf4e2..e7289119 100644 --- a/ipaserver/install/bindinstance.py +++ b/ipaserver/install/bindinstance.py @@ -263,7 +263,12 @@ class BindInstance(service.Service): # Store the keytab on disk self.fstore.backup_file("/etc/named.keytab") installutils.create_keytab("/etc/named.keytab", dns_principal) - dns_principal = self.move_service(dns_principal) + p = self.move_service(dns_principal) + if p is None: + # the service has already been moved, perhaps we're doing a DNS reinstall + dns_principal = "krbprincipalname=%s,cn=services,cn=accounts,%s" % (dns_principal, self.suffix) + else: + dns_principal = p # Make sure access is strictly reserved to the named user pent = pwd.getpwnam(self.named_user) @@ -284,10 +289,14 @@ class BindInstance(service.Service): raise e dns_group = "cn=dnsserver,cn=rolegroups,cn=accounts,%s" % self.suffix + if isinstance(dns_principal, unicode): + dns_principal = dns_principal.encode('utf-8') mod = [(ldap.MOD_ADD, 'member', dns_principal)] try: conn.modify_s(dns_group, mod) + except ldap.TYPE_OR_VALUE_EXISTS: + pass except Exception, e: logging.critical("Could not modify principal's %s entry" % dns_principal) raise e -- cgit