Bug 2228181

Summary: Tests fail with "code":404:"Could not find role:" but same role id is being deleted successfully
Product: Red Hat OpenStack Reporter: MilanaLevy <millevy>
Component: openstack-keystoneAssignee: Douglas Mendizábal <dmendiza>
Status: CLOSED NOTABUG QA Contact: Jeremy Agee <jagee>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 17.1 (Wallaby)CC: dwilde, oblaut
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-02 12:34:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description MilanaLevy 2023-08-01 16:26:27 UTC
Description of problem:
Tests are failing with error "code":404,"message":"Could not find role: [role id].","title":"Not Found", but later the same role id is being deleted successfully.

Version-Release number of selected component (if applicable):


How reproducible:
Everytime.

Steps to Reproduce:
1.Run the test keystone_tempest_plugin.tests.rbac.v3.test_trust.DomainMemberTests.test_identity_create_trust	
2.See it is failing on line 200 with exception like that:
Traceback (most recent call last):                                                                                                                            │·······························
  File "/usr/lib/python3.9/site-packages/keystone_tempest_plugin/tests/rbac/v3/test_trust.py", line 200, in test_identity_create_trust                        │·······························    self.do_request('create_trust',                                                                                                                           │·······························
  File "/usr/lib/python3.9/site-packages/keystone_tempest_plugin/tests/rbac/v3/base.py", line 35, in do_request                                               │·······························
    self.assertRaises(expected_status,                                                                                                                        │·······························
  File "/usr/lib/python3.9/site-packages/testtools/testcase.py", line 465, in assertRaises                                                                    │·······························
    self.assertThat(our_callable, matcher)                                                                                                                    │·······························
  File "/usr/lib/python3.9/site-packages/testtools/testcase.py", line 476, in assertThat                                                                      │·······························
    mismatch_error = self._matchHelper(matchee, matcher, message, verbose)                                                                                    │·······························
  File "/usr/lib/python3.9/site-packages/testtools/testcase.py", line 527, in _matchHelper                                                                    │·······························
    mismatch = matcher.match(matchee)                                                                                                                         │·······························
  File "/usr/lib/python3.9/site-packages/testtools/matchers/_exception.py", line 108, in match                                                                │·······························
    mismatch = self.exception_matcher.match(exc_info)                                                                                                         │·······························  File "/usr/lib/python3.9/site-packages/testtools/matchers/_higherorder.py", line 62, in match                                                               │·······························
    mismatch = matcher.match(matchee)                                                                                                                         │·······························  File "/usr/lib/python3.9/site-packages/testtools/testcase.py", line 455, in match                                                                           │·······························
    reraise(*matchee)                                                                                                                                         │·······························
  File "/usr/lib/python3.9/site-packages/testtools/_compat3x.py", line 16, in reraise                                                                         │·······························
    raise exc_obj.with_traceback(exc_tb)                                                                                                                      │·······························
  File "/usr/lib/python3.9/site-packages/testtools/matchers/_exception.py", line 101, in match                                                                │·······························
    result = matchee()                                                                                                                                        │·······························
  File "/usr/lib/python3.9/site-packages/testtools/testcase.py", line 1029, in __call__                                                                       │·······························
    return self._callable_object(*self._args, **self._kwargs)                                                                                                 │·······························
  File "/usr/lib/python3.9/site-packages/tempest/lib/services/identity/v3/trusts_client.py", line 33, in create_trust                                         │·······························
    resp, body = self.post('OS-TRUST/trusts', post_body)                                                                                                      │·······························
  File "/usr/lib/python3.9/site-packages/tempest/lib/common/rest_client.py", line 299, in post                                                                │·······························
    return self.request('POST', url, extra_headers, headers, body, chunked)                                                                                   │·······························
  File "/usr/lib/python3.9/site-packages/tempest/lib/common/rest_client.py", line 720, in request                                                             │·······························
    self._error_checker(resp, resp_body)                                                                                                                      │·······························
  File "/usr/lib/python3.9/site-packages/tempest/lib/common/rest_client.py", line 826, in _error_checker                                                      │·······························
    raise exceptions.NotFound(resp_body, resp=resp)                                                                                                           │·······························
tempest.lib.exceptions.NotFound: Object not found                                                                                                             │·······························
Details: {'code': 404, 'message': 'Could not find role: 18c0ae6abdd8460b892fb2380cf3af8a.', 'title': 'Not Found'}                         

Actual results:
Role was not found but was deleted

Expected results:
Role should be found and deleted.

Additional info:
From Keystone log:
"2023-08-01 09:05:02.842 169 DEBUG keystone.common.rbac_enforcer.enforcer [req-b91c1a76-6c85-4ee5-b195-bc7259e4d49a 4eec60cffed541478a3b1f83cccf826f - 5415e4b4│·······························
84434086847a67193c5deef6 default -] RBAC: Authorization granted enforce_call /usr/lib/python3.9/site-packages/keystone/common/rbac_enforcer/enforcer.py:457   │·······························
2023-08-01 09:05:02.886 169 WARNING keystone.server.flask.application [req-b91c1a76-6c85-4ee5-b195-bc7259e4d49a 4eec60cffed541478a3b1f83cccf826f - 5415e4b4844│·······························
34086847a67193c5deef6 default -] Could not find role: 18c0ae6abdd8460b892fb2380cf3af8a.: keystone.exception.RoleNotFound: Could not find role: 18c0ae6abdd8460│·······························
b892fb2380cf3af8a.                                                                                                                                            │·······························
2023-08-01 09:05:02.895 168 DEBUG keystone.server.flask.request_processing.middleware.auth_context [req-733df5b5-51ac-4152-bfbd-1a80d7a78881 9e122df9a91b4459a│·······························
7d55e8b11c32aeb - - default -] Authenticating user token process_request /usr/lib/python3.9/site-packages/keystonemiddleware/auth_token/__init__.py:407       │·······························
2023-08-01 09:05:02.979 168 DEBUG keystone.server.flask.request_processing.middleware.auth_context [req-733df5b5-51ac-4152-bfbd-1a80d7a78881 9e122df9a91b4459a│·······························
7d55e8b11c32aeb - - default -] Validating token access rules against request validate_allowed_request /usr/lib/python3.9/site-packages/keystonemiddleware/auth│·······························_token/__init__.py:545                                                                                                                                        │·······························
2023-08-01 09:05:03.007 168 DEBUG keystone.server.flask.request_processing.middleware.auth_context [req-3d5a5199-52e4-4d49-9b35-5044053e537e 9e122df9a91b4459a│·······························7d55e8b11c32aeb - - default -] RBAC: auth_context: {'token': <TokenModel (audit_id=VT27-GozSuO-wdSu_ACzpg, audit_chain_id=['VT27-GozSuO-wdSu_ACzpg']) at 0x7f9│·······························
7c5693a30>, 'domain_id': None, 'trust_id': None, 'trustor_id': None, 'trustee_id': None, 'domain_name': None, 'group_ids': [], 'user_id': '9e122df9a91b4459a7d│·······························
55e8b11c32aeb', 'user_domain_id': 'default', 'system_scope': 'all', 'project_id': None, 'project_domain_id': None, 'roles': ['admin', 'swiftoperator', 'member│·······························
', 'reader'], 'is_admin_project': True, 'service_user_id': None, 'service_user_domain_id': None, 'service_project_id': None, 'service_project_domain_id': None│·······························
, 'service_roles': []} fill_context /usr/lib/python3.9/site-packages/keystone/server/flask/request_processing/middleware/auth_context.py:478                  │·······························
2023-08-01 09:05:03.008 168 DEBUG keystone.server.flask.request_processing.req_logging [req-3d5a5199-52e4-4d49-9b35-5044053e537e 9e122df9a91b4459a7d55e8b11c32│·······························
aeb - - default -] REQUEST_METHOD: `DELETE` log_request_info /usr/lib/python3.9/site-packages/keystone/server/flask/request_processing/req_logging.py:27      │·······························
2023-08-01 09:05:03.008 168 DEBUG keystone.server.flask.request_processing.req_logging [req-3d5a5199-52e4-4d49-9b35-5044053e537e 9e122df9a91b4459a7d55e8b11c32│·······························
aeb - - default -] SCRIPT_NAME: `` log_request_info /usr/lib/python3.9/site-packages/keystone/server/flask/request_processing/req_logging.py:28               │·······························
2023-08-01 09:05:03.008 168 DEBUG keystone.server.flask.request_processing.req_logging [req-3d5a5199-52e4-4d49-9b35-5044053e537e 9e122df9a91b4459a7d55e8b11c32│·······························
aeb - - default -] PATH_INFO: `/v3/roles/18c0ae6abdd8460b892fb2380cf3af8a` log_request_info /usr/lib/python3.9/site-packages/keystone/server/flask/request_pro│·······························
cessing/req_logging.py:29                                                                                                                                     │·······························
2023-08-01 09:05:03.009 168 DEBUG keystone.common.rbac_enforcer.enforcer [req-3d5a5199-52e4-4d49-9b35-5044053e537e 9e122df9a91b4459a7d55e8b11c32aeb - - defaul│·······························
t -] RBAC: Authorizing `identity:delete_role(role_id=18c0ae6abdd8460b892fb2380cf3af8a)` enforce_call /usr/lib/python3.9/site-packages/keystone/common/rbac_enf│·······························
orcer/enforcer.py:449                                                                                                                                         │·······························
2023-08-01 09:05:03.010 168 DEBUG keystone.common.rbac_enforcer.enforcer [req-3d5a5199-52e4-4d49-9b35-5044053e537e 9e122df9a91b4459a7d55e8b11c32aeb - - defaul│·······························
t -] RBAC: Authorization granted enforce_call /usr/lib/python3.9/site-packages/keystone/common/rbac_enforcer/enforcer.py:457                                  │·······························
2023-08-01 09:05:03.032 168 DEBUG keystone.notifications [req-3d5a5199-52e4-4d49-9b35-5044053e537e 9e122df9a91b4459a7d55e8b11c32aeb - - default -] Invalidatin│·······························
g the token cache because role 18c0ae6abdd8460b892fb2380cf3af8a has been removed. Role assignments for users will be recalculated and enforced accordingly the│·······························
 next time they authenticate or validate a token invalidate_token_cache_notification /usr/lib/python3.9/site-packages/keystone/notifications.py:230 "

Comment 1 MilanaLevy 2023-08-02 06:30:03 UTC
This happened also in test- keystone_tempest_plugin.tests.rbac.v3.test_trust.DomainReaderTests.test_identity_create_trust