URL: https://github.com/freeipa/freeipa/pull/104 Author: martbab Title: #104: Backport XMLRPC test fixes to ipa-4-3 branch Action: opened
PR body: """ https://fedorahosted.org/freeipa/ticket/6316 https://fedorahosted.org/freeipa/ticket/6317 """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/104/head:pr104 git checkout pr104
From 68f049a1d7830726f1f74267d33dda26ca33f837 Mon Sep 17 00:00:00 2001 From: Martin Basti <mba...@redhat.com> Date: Fri, 19 Aug 2016 10:39:40 +0200 Subject: [PATCH 1/2] Raise DuplicatedEnrty error when user exists in delete_container We do not have right to write to users delete_container. In case that user already exists in that container and we tried to add entry, we receive ACIError. This must be checked and DuplicationEntry error must be raised before. https://fedorahosted.org/freeipa/ticket/6199 Reviewed-By: Jan Cholasta <jchol...@redhat.com> --- ipalib/plugins/user.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/ipalib/plugins/user.py b/ipalib/plugins/user.py index 2b792af..a207809 100644 --- a/ipalib/plugins/user.py +++ b/ipalib/plugins/user.py @@ -356,6 +356,10 @@ class user(baseuser): ), ) + def get_delete_dn(self, *keys, **options): + active_dn = self.get_dn(*keys, **options) + return DN(active_dn[0], self.delete_container_dn, api.env.basedn) + def get_either_dn(self, *keys, **options): ''' Returns the DN of a user @@ -372,7 +376,7 @@ def get_either_dn(self, *keys, **options): dn = active_dn except errors.NotFound: # Check that this value is a Delete user - delete_dn = DN(active_dn[0], self.delete_container_dn, api.env.basedn) + delete_dn = self.get_delete_dn(*keys, **options) try: ldap.get_entry(delete_dn, ['dn']) @@ -416,7 +420,14 @@ class user_add(baseuser_add): ) def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options): - dn = self.obj.get_either_dn(*keys, **options) + delete_dn = self.obj.get_delete_dn(*keys, **options) + try: + ldap.get_entry(delete_dn, ['']) + except errors.NotFound: + pass + else: + raise self.obj.handle_duplicate_entry(*keys) + if not options.get('noprivate', False): try: # The Managed Entries plugin will allow a user to be created From 51ba0797ba92e83208061bb3346ffd80dc71fd69 Mon Sep 17 00:00:00 2001 From: Petr Spacek <pspa...@redhat.com> Date: Fri, 12 Aug 2016 19:49:33 +0200 Subject: [PATCH 2/2] Tests: fix test_forward_zones in test_xmlrpc/test_dns_plugin Class test_forward_zones in ipatests/test_xmlrpc/test_dns_plugin was using DNS zone 'fwzone2.test.' and expected to get warning 'Forwarding policy conflicts with some automatic empty zones.' (aka 'DNSForwardPolicyConflictWithEmptyZone'). This does not make sense because 'test.' zone is not listed in IANA registry 'Locally-Served DNS Zones': http://www.iana.org/assignments/locally-served-dns-zones/locally-served-dns-zones.xhtml To fix this I simply removed the warning from set of expected results. https://fedorahosted.org/freeipa/ticket/6213 Reviewed-By: Martin Basti <mba...@redhat.com> Reviewed-By: Stanislav Laznicka <slazn...@redhat.com> --- ipatests/test_xmlrpc/test_dns_plugin.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/ipatests/test_xmlrpc/test_dns_plugin.py b/ipatests/test_xmlrpc/test_dns_plugin.py index 7c2450f..810c7c3 100644 --- a/ipatests/test_xmlrpc/test_dns_plugin.py +++ b/ipatests/test_xmlrpc/test_dns_plugin.py @@ -3417,15 +3417,7 @@ def setup_class(cls): expected={ 'value': fwzone2_dnsname, 'summary': None, - u'messages': ( - {u'message': lambda x: x.startswith( - u"Forwarding policy conflicts with some " - "automatic empty zones."), - u'code': 13021, - u'type': u'warning', - u'name': u'DNSForwardPolicyConflictWithEmptyZone', - }, - {u'message': lambda x: x.startswith( + u'messages': ({u'message': lambda x: x.startswith( u"DNS server %s: query '%s SOA':" % (forwarder1, fwzone2)), u'code': 13006,
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code