Patch attached -- Martin^2 Basti
>From a1a671cedda22c616b373bcb8df04e439f820bcb Mon Sep 17 00:00:00 2001 From: Martin Basti <mba...@redhat.com> Date: Thu, 3 Jul 2014 09:00:08 +0200 Subject: [PATCH] Fix incompatible permission name *zone-del
Fixes ticket: https://fedorahosted.org/freeipa/ticket/4383 --- ipalib/plugins/dns.py | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/ipalib/plugins/dns.py b/ipalib/plugins/dns.py index e8e4e33a17c935f81c66cb029af6bfdfd0a5a8e1..c3a09e9d9d36f3bedc06407bf05d6ad47290a9b8 100644 --- a/ipalib/plugins/dns.py +++ b/ipalib/plugins/dns.py @@ -1801,6 +1801,21 @@ class DNSZoneBase(LDAPObject): return None + def _remove_permission(self, zone): + permission_name = self.permission_name(zone) + try: + api.Command['permission_del'](permission_name, force=True) + except errors.NotFound, e: + # compatibility, older IPA versions which allows to create zone + # without absolute zone name + permission_name_rel = self.permission_name( + zone.relativize(DNSName.root) + ) + try: + api.Command['permission_del'](permission_name_rel, force=True) + except errors.NotFound: + raise e # re-raise original exception + class DNSZoneBase_add(LDAPCreate): @@ -1838,8 +1853,7 @@ class DNSZoneBase_del(LDAPDelete): def post_callback(self, ldap, dn, *keys, **options): try: - api.Command['permission_del'](self.obj.permission_name(keys[-1]), - force=True) + self.obj._remove_permission(keys[-1]) except errors.NotFound: pass @@ -2017,18 +2031,9 @@ class DNSZoneBase_remove_permission(LDAPQuery): permission_name = self.obj.permission_name(keys[-1]) try: - api.Command['permission_del'](permission_name, force=True) - except errors.NotFound, e: - # compatibility, older IPA versions which allows to create zone - # without absolute zone name - permission_name_rel = self.obj.permission_name( - keys[-1].relativize(DNSName.root) - ) - try: - api.Command['permission_del'](permission_name_rel, force=True) - except errors.NotFound: - raise e # re-raise original exception - + self.obj._remove_permission(keys[-1]) + except errors.NotFound: + pass return dict( result=True, -- 1.8.3.1
_______________________________________________ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel