diff options
author | Adam Misnyovszki <amisnyov@redhat.com> | 2014-03-25 14:47:03 +0100 |
---|---|---|
committer | Petr Viktorin <pviktori@redhat.com> | 2014-04-09 13:45:32 +0200 |
commit | 8b91d9a6e87412c36d4f1191abf15fcda0815c60 (patch) | |
tree | e6af0204d22bd2c79ca8108434a14e5ea06a65b2 /ipatests/test_xmlrpc | |
parent | c58d6b2689acbfa36aec362b7de1ec7512d5f82a (diff) | |
download | freeipa-8b91d9a6e87412c36d4f1191abf15fcda0815c60.tar.gz freeipa-8b91d9a6e87412c36d4f1191abf15fcda0815c60.tar.xz freeipa-8b91d9a6e87412c36d4f1191abf15fcda0815c60.zip |
automember rebuild nowait feature added
automember-rebuild uses asynchronous 389 task, and returned
success even if the task didn't run. this patch fixes this
issue adding a --nowait parameter to 'ipa automember-rebuild',
defaulting to False, thus when the script runs without it,
it waits for the 'nstaskexitcode' attribute, which means
the task has finished. Old usage can be enabled using --nowait,
and returns the DN of the task for further polling.
New tests added also.
https://fedorahosted.org/freeipa/ticket/4239
Reviewed-By: Petr Viktorin <pviktori@redhat.com>
Diffstat (limited to 'ipatests/test_xmlrpc')
-rw-r--r-- | ipatests/test_xmlrpc/test_automember_plugin.py | 67 | ||||
-rw-r--r-- | ipatests/test_xmlrpc/xmlrpc_test.py | 10 |
2 files changed, 68 insertions, 9 deletions
diff --git a/ipatests/test_xmlrpc/test_automember_plugin.py b/ipatests/test_xmlrpc/test_automember_plugin.py index 9453ebb5a..600d54890 100644 --- a/ipatests/test_xmlrpc/test_automember_plugin.py +++ b/ipatests/test_xmlrpc/test_automember_plugin.py @@ -24,7 +24,8 @@ Test the `ipalib/plugins/automember.py` module. from ipalib import api, errors from ipapython.dn import DN from ipatests.test_xmlrpc import objectclasses -from xmlrpc_test import Declarative, fuzzy_digits, fuzzy_uuid +from xmlrpc_test import Declarative, fuzzy_digits, fuzzy_uuid, \ + fuzzy_automember_dn, fuzzy_automember_message from ipatests.test_xmlrpc.test_user_plugin import get_user_result @@ -242,8 +243,20 @@ class test_automember(Declarative): command=('automember_rebuild', [], dict(type=u'hostgroup')), expected=dict( value=u'', - summary=u'Automember rebuild membership task completed', - result=True + summary=fuzzy_automember_message, + result=dict() + ), + ), + + dict( + desc='Rebuild membership for hostgroups asynchronously', + command=('automember_rebuild', [], dict(type=u'hostgroup',no_wait=True)), + expected=dict( + value=u'', + summary=u'Automember rebuild membership task started', + result=dict( + dn=fuzzy_automember_dn + ), ), ), @@ -349,8 +362,20 @@ class test_automember(Declarative): command=('automember_rebuild', [], dict(hosts=fqdn1)), expected=dict( value=u'', - summary=u'Automember rebuild membership task completed', - result=True + summary=fuzzy_automember_message, + result=dict() + ), + ), + + dict( + desc='Rebuild membership for host: %s asynchronously' % fqdn1, + command=('automember_rebuild', [], dict(hosts=fqdn1, no_wait=True)), + expected=dict( + value=u'', + summary=u'Automember rebuild membership task started', + result=dict( + dn=fuzzy_automember_dn + ), ), ), @@ -519,8 +544,20 @@ class test_automember(Declarative): command=('automember_rebuild', [], dict(type=u'group')), expected=dict( value=u'', - summary=u'Automember rebuild membership task completed', - result=True + summary=fuzzy_automember_message, + result=dict() + ), + ), + + dict( + desc='Rebuild membership for groups asynchronously', + command=('automember_rebuild', [], dict(type=u'group', no_wait=True)), + expected=dict( + value=u'', + summary=u'Automember rebuild membership task started', + result=dict( + dn=fuzzy_automember_dn + ), ), ), @@ -584,8 +621,20 @@ class test_automember(Declarative): command=('automember_rebuild', [], dict(users=user1)), expected=dict( value=u'', - summary=u'Automember rebuild membership task completed', - result=True + summary=fuzzy_automember_message, + result=dict() + ), + ), + + dict( + desc='Rebuild membership for user: %s asynchronously' % user1, + command=('automember_rebuild', [], dict(users=user1, no_wait=True)), + expected=dict( + value=u'', + summary=u'Automember rebuild membership task started', + result=dict( + dn=fuzzy_automember_dn + ), ), ), diff --git a/ipatests/test_xmlrpc/xmlrpc_test.py b/ipatests/test_xmlrpc/xmlrpc_test.py index 8f31a1ec0..a596cd69c 100644 --- a/ipatests/test_xmlrpc/xmlrpc_test.py +++ b/ipatests/test_xmlrpc/xmlrpc_test.py @@ -38,6 +38,16 @@ uuid_re = '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}' # Matches an ipauniqueid like u'784d85fd-eae7-11de-9d01-54520012478b' fuzzy_uuid = Fuzzy('^%s$' % uuid_re) +# Matches an automember task DN +fuzzy_automember_dn = Fuzzy( + '^cn=%s,cn=automember rebuild membership,cn=tasks,cn=config$' % uuid_re +) + +# Matches an automember task finish message +fuzzy_automember_message = Fuzzy( + '^Automember rebuild task finished\. Processed \(\d+\) entries\.$' +) + # Matches trusted domain GUID, like u'463bf2be-3456-4a57-979e-120304f2a0eb' fuzzy_guid = fuzzy_uuid |