Performance: Find commands: do not process members by default

In all *-find commands, member attributes shouldn't be processed due
high amount fo ldpaserches cause serious performance issues. For this
reason --no-members option is set by default in CLI and API.

To get members in *-find command option --all in CLI is rquired or
'no_members=False' or 'all=True' must be set in API call.

For other commands processing of members stays unchanged. WebUI is not
affected by this change.

https://fedorahosted.org/freeipa/ticket/4995

Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
This commit is contained in:
Martin Basti
2016-05-19 13:50:38 +02:00
parent 91572afc60
commit 5f42b42bd4
28 changed files with 981 additions and 98 deletions

View File

@@ -291,9 +291,47 @@ class test_role(Declarative):
),
dict(
desc='Search for %r with members' % role1,
command=('role_find', [role1], {'no_members': False}),
expected=dict(
count=1,
truncated=False,
summary=u'1 role matched',
result=[
{
'dn': role1_dn,
'cn': [role1],
'description': [u'role desc 1'],
'member_group': [group1],
'memberof_privilege': [privilege1],
},
],
),
),
dict(
desc='Search for %r' % role1,
command=('role_find', [role1], {}),
expected=dict(
count=1,
truncated=False,
summary=u'1 role matched',
result=[
{
'dn': role1_dn,
'cn': [role1],
'description': [u'role desc 1'],
},
],
),
),
dict(
desc='Search for %r with members' % search,
command=('role_find', [search], {'no_members': False}),
expected=dict(
count=1,
truncated=False,
@@ -323,8 +361,6 @@ class test_role(Declarative):
'dn': role1_dn,
'cn': [role1],
'description': [u'role desc 1'],
'member_group': [group1],
'memberof_privilege': [privilege1],
},
],
),
@@ -350,8 +386,8 @@ class test_role(Declarative):
dict(
desc='Search for %r' % role1,
command=('role_find', [role1], {}),
desc='Search for %r with members' % role1,
command=('role_find', [role1], {'no_members': False}),
expected=dict(
count=1,
truncated=False,
@@ -370,8 +406,26 @@ class test_role(Declarative):
dict(
desc='Search for %r' % search,
command=('role_find', [search], {}),
desc='Search for %r' % role1,
command=('role_find', [role1], {}),
expected=dict(
count=1,
truncated=False,
summary=u'1 role matched',
result=[
{
'dn': role1_dn,
'cn': [role1],
'description': [u'role desc 1'],
},
],
),
),
dict(
desc='Search for %r with members' % search,
command=('role_find', [search], {'no_members': False}),
expected=dict(
count=2,
truncated=False,
@@ -394,6 +448,29 @@ class test_role(Declarative):
),
dict(
desc='Search for %r' % search,
command=('role_find', [search], {}),
expected=dict(
count=2,
truncated=False,
summary=u'2 roles matched',
result=[
{
'dn': role1_dn,
'cn': [role1],
'description': [u'role desc 1'],
},
{
'dn': role2_dn,
'cn': [role2],
'description': [u'role desc 2'],
},
],
),
),
dict(
desc='Update %r' % role1,
command=(