diff options
author | David Kupka <dkupka@redhat.com> | 2014-10-21 18:12:23 -0400 |
---|---|---|
committer | Tomas Babej <tbabej@redhat.com> | 2014-11-24 16:04:57 +0100 |
commit | 56ca47d535156122b2578ff19bc0b1a7642af40c (patch) | |
tree | f9d8b57fcf62f02f7fe439bdc25db04f53bf6c5b | |
parent | b42b1755dcd0a681709525b4d574e12b77bbce13 (diff) | |
download | freeipa-56ca47d535156122b2578ff19bc0b1a7642af40c.tar.gz freeipa-56ca47d535156122b2578ff19bc0b1a7642af40c.tar.xz freeipa-56ca47d535156122b2578ff19bc0b1a7642af40c.zip |
Fix error message for nonexistent members and add tests.
https://fedorahosted.org/freeipa/ticket/4643
Reviewed-By: Tomas Babej <tbabej@redhat.com>
-rw-r--r-- | ipalib/plugins/automember.py | 5 | ||||
-rw-r--r-- | ipatests/test_xmlrpc/test_automember_plugin.py | 35 |
2 files changed, 39 insertions, 1 deletions
diff --git a/ipalib/plugins/automember.py b/ipalib/plugins/automember.py index 0f4739316..0c2a246e1 100644 --- a/ipalib/plugins/automember.py +++ b/ipalib/plugins/automember.py @@ -735,7 +735,10 @@ class automember_rebuild(Command): names = options.get(opt_name) if names: for name in names: - obj.get_dn_if_exists(name) + try: + obj.get_dn_if_exists(name) + except errors.NotFound: + obj.handle_not_found(name) search_filter = ldap.make_filter_from_attr( obj.primary_key.name, names, diff --git a/ipatests/test_xmlrpc/test_automember_plugin.py b/ipatests/test_xmlrpc/test_automember_plugin.py index 6618ac605..88ed33423 100644 --- a/ipatests/test_xmlrpc/test_automember_plugin.py +++ b/ipatests/test_xmlrpc/test_automember_plugin.py @@ -30,6 +30,7 @@ from ipatests.test_xmlrpc.test_user_plugin import get_user_result user1 = u'tuser1' +user_does_not_exist = u'does_not_exist' manager1 = u'mscott' fqdn1 = u'web1.%s' % api.env.domain short1 = u'web1' @@ -41,6 +42,7 @@ fqdn4 = u'www5.%s' % api.env.domain short4 = u'www5' fqdn5 = u'webserver5.%s' % api.env.domain short5 = u'webserver5' +fqdn_does_not_exist = u'does_not_exist.%s' % api.env.domain group1 = u'group1' group1_dn = DN(('cn', group1), ('cn', 'groups'), @@ -1625,4 +1627,37 @@ class test_automember(Declarative): ), ), + dict( + desc='Rebuild membership with type hostgroup and --hosts', + command=('automember_rebuild', [], {u'type': u'hostgroup', u'hosts': fqdn1}), + expected=dict( + value=None, + summary=u'Automember rebuild task finished. Processed (1) entries.', + result={ + } + ), + ), + + dict( + desc='Rebuild membership with type group and --users', + command=('automember_rebuild', [], {u'type': u'group', u'users': user1}), + expected=dict( + value=None, + summary=u'Automember rebuild task finished. Processed (1) entries.', + result={ + } + ), + ), + + dict( + desc='Try to rebuild membership with invalid host in --hosts', + command=('automember_rebuild', [], {u'type': u'hostgroup', u'hosts': fqdn_does_not_exist}), + expected=errors.NotFound(reason='%s: host not found' % fqdn_does_not_exist), + ), + + dict( + desc='Try to rebuild membership with invalid user in --users', + command=('automember_rebuild', [], {u'type': u'group', u'users': user_does_not_exist}), + expected=errors.NotFound(reason='%s: user not found' % user_does_not_exist), + ), ] |