diff options
author | Pavel Zuna <pzuna@redhat.com> | 2010-04-14 18:52:12 +0200 |
---|---|---|
committer | Martin Nagy <mnagy@redhat.com> | 2010-04-19 14:21:08 +0200 |
commit | b9fc5a330468f0927c477f136ae2e4e2ea58c5d6 (patch) | |
tree | ab4fe0b351945142150b14db541fbbe22ba637e2 | |
parent | aacd3724882a0c1eb1f9c67ff9311e40a48ac892 (diff) | |
download | freeipa-b9fc5a330468f0927c477f136ae2e4e2ea58c5d6.tar.gz freeipa-b9fc5a330468f0927c477f136ae2e4e2ea58c5d6.tar.xz freeipa-b9fc5a330468f0927c477f136ae2e4e2ea58c5d6.zip |
Fix ipa-dns-install. It was failing when DNS was reinstalling.
-rw-r--r-- | ipaserver/install/bindinstance.py | 11 |
1 files changed, 10 insertions, 1 deletions
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 |