Bug 2189954

Summary: RFE Improve reponse time to filters containing 'nsrole'
Product: Red Hat Enterprise Linux 9 Reporter: thierry bordaz <tbordaz>
Component: 389-ds-baseAssignee: thierry bordaz <tbordaz>
Status: VERIFIED --- QA Contact: LDAP QA Team <idm-ds-qe-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 9.3CC: bsmejkal, idm-ds-dev-bugs, mreynolds, vashirov
Target Milestone: rcKeywords: FutureFeature, Triaged
Target Release: 9.3   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: sync-to-jira
Fixed In Version: 389-ds-base-2.3.4-3.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Enhancement
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Deadline: 2023-07-31   

Description thierry bordaz 2023-04-26 14:54:44 UTC
Description of problem:

'nsrole' is a virtual attribute and is not indexed. With a poorly selective filter like below the search may be not indexed
     "(&(nsrole=cn=managed_role,cn=suffix)(objectclass=posixAccount)))"
    
The RFE is to rewrite the filter component containing 'nsrole' attribute type and assertion that are managed roles and filter roles

Comment 3 bsmejkal 2023-07-25 14:53:48 UTC
============================================================================================================ test session starts =============================================================================================================
platform linux -- Python 3.9.17, pytest-7.4.0, pluggy-0.13.1 -- /usr/bin/python3
cachedir: .pytest_cache
metadata: {'Python': '3.9.17', 'Platform': 'Linux-5.14.0-339.el9.x86_64-x86_64-with-glibc2.34', 'Packages': {'pytest': '7.4.0', 'pluggy': '0.13.1'}, 'Plugins': {'metadata': '3.0.0', 'html': '3.2.0', 'libfaketime': '0.1.2', 'flaky': '3.7.0'}}
389-ds-base: 2.3.4-3.el9
nss: 3.90.0-2.el9_2
nspr: 4.35.0-2.el9_2
openldap: 2.6.3-1.el9
cyrus-sasl: 2.1.27-21.el9
FIPS: disabled
rootdir: /mnt/tests/rhds/tests/upstream/ds/dirsrvtests
configfile: pytest.ini
plugins: metadata-3.0.0, html-3.2.0, libfaketime-0.1.2, flaky-3.7.0
collected 8 items / 6 deselected / 2 selected                                                                                                                                                                                                

dirsrvtests/tests/suites/roles/basic_test.py::test_managed_and_filtered_role_rewrite PASSED                                                                                                                                            [ 50%]
dirsrvtests/tests/suites/roles/basic_test.py::test_not_such_entry_role_rewrite PASSED                                                                                                                                                  [100%]

========================================================================================== 2 passed, 6 deselected, 18 warnings in 127.66s (0:02:07) ==========================================================================================

Tests pass, however, we might need to adjust the wait time for import task in bdb . On slower machines it causes failure as the import task is still not done in the time limit.
It failed in gating but passes in 1mt.

Comment 6 bsmejkal 2023-07-26 09:46:38 UTC
As per comment #c3 marking as VERIFIED.