mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
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>
This commit is contained in:
committed by
Petr Viktorin
parent
c58d6b2689
commit
8b91d9a6e8
@@ -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
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user