Bug 1557847 - Can not delete OpenStack trust if session has been invalidated
Summary: Can not delete OpenStack trust if session has been invalidated
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Beaker
Classification: Retired
Component: general
Version: develop
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: 25.1
Assignee: Roman Joost
QA Contact: Matt Tyson 🤬
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-03-19 04:35 UTC by Roman Joost
Modified: 2018-04-11 05:20 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-04-11 05:20:00 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Beaker Project Gerrit 6045 0 None MERGED Allow to remove the keystone trust in Beaker 2020-02-27 07:25:52 UTC

Description Roman Joost 2018-03-19 04:35:16 UTC
Description of problem:

If a user tries to remove the OpenStack trust from his preferences, he will face a 500 server error if the underlying keystone_session is invalid.

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

How reproducible:
100%

Steps to Reproduce:
1. Setup Beaker to communicate with OpenStack. Make sure it creates a keystone_session
2. Create a trust for your user.
3. Invalidate the keystone session. In reality it happened because we moved from RHOS7 to RHOS10
4. Try to remove your trust.

Traceback:

Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]: bkr.server ERROR Exception on /users/rjoost/keystone-trust [DELETE]
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:  Traceback (most recent call last):
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/flask/app.py", line 1817, in wsgi_app
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      response = self.full_dispatch_request()
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/flask/app.py", line 1477, in full_dispatch_request
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      rv = self.handle_user_exception(e)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/flask/app.py", line 1381, in handle_user_exception
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      reraise(exc_type, exc_value, tb)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/flask/app.py", line 1475, in full_dispatch_request
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      rv = self.dispatch_request()
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/flask/app.py", line 1461, in dispatch_request
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      return self.view_functions[rule.endpoint](**req.view_args)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/bkr/server/flask_util.py", line 219, in wrapper
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      return f(*args, **kwds)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/bkr/server/user.py", line 543, in delete_keystone_trust
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      manager = dynamic_virt.VirtManager(user)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/bkr/server/dynamic_virt.py", line 43, in __init__
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      keystone_session = self._create_keystone_session()
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/bkr/server/dynamic_virt.py", line 82, in _create_keystone_session
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      auth.get_token(session)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/keystoneclient/auth/identity/base.py", line 91, in get_token
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      return self.get_access(session).auth_token
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/keystoneclient/auth/identity/base.py", line 126, in get_access
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      self.auth_ref = self.get_auth_ref(session)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/keystoneclient/auth/identity/v3.py", line 119, in get_auth_ref
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      authenticated=False, log=False, **rkwargs)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/keystoneclient/session.py", line 438, in post
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      return self.request(url, 'POST', **kwargs)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/keystoneclient/utils.py", line 318, in inner
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      return func(*args, **kwargs)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:    File "/usr/lib/python2.6/site-packages/keystoneclient/session.py", line 354, in request
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:      raise exceptions.from_response(resp, method, url)
Mar 19 00:24:40 beaker-devel.app.eng.bos.redhat.com beaker-server[17278]:  Unauthorized: The request you have made requires authentication. (HTTP 401) (Request-ID: req-5206cbf2-f948-4a3c-a459-fa6004435b45)

Actual results:
500 Error

Expected results:
Removed trust

Additional info:

Comment 1 Roman Joost 2018-03-22 02:10:05 UTC
Implementation detail: In case there are errors with OpenStack during the deletion of the trust, we simply assume that the trust has been invalidated by other means and allow the string to be removed from the Beaker database.

Comment 3 Matt Tyson 🤬 2018-03-28 06:49:50 UTC
I've tested this by inserting some junk into the openstack_trust_id column of the tg_user table.  The invalid keystone trust showed up in the user interface.

Clicking delete on this invalid trust succeeded without any issues.

Marking bug as VERIFIED.

Comment 4 Roman Joost 2018-04-11 05:20:00 UTC
Beaker 25.1 has been released:

https://beaker-project.org/docs/whats-new/release-25.html#beaker-25-1


Note You need to log in before you can comment on or make changes to this bug.