← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1217679] Re: there is an Unexpected API Error when call remove_tenant_access action in nova v3 flavor_access api as an unadmin user

 

** Changed in: nova
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1217679

Title:
  there is an  Unexpected API Error when call remove_tenant_access
  action in nova v3 flavor_access api as an unadmin user

Status in OpenStack Compute (Nova):
  Fix Released

Bug description:
  When port flavor_access tempest tests into v3, I found if the
  remove_tenant_access and add_tenant_access called as non admin user an
  Unexpected API Error arose.

  I look into code, find out the issue is that flavors.add_flavor_access
  and flavors.remove_flavor_access require admin privilege in DB level
  but the policy doesn't require it. and the exception is not catched. I
  think there is the same issue in nova v2 api.

  I also think we should remove the privilege check in DB level, but it
  need more tests, and can be remove in another patch or blue-print.

  the tempest log is:
  2013-08-28 11:56:08.154 2220 INFO tempest.common.rest_client [-] Request: POST http://192.168.1.101:8774/v3/flavors/155214353/action
  2013-08-28 11:56:08.154 2220 DEBUG tempest.common.rest_client [-] Request Headers: {'Content-Type': 'application/json', 'Accept': 'application/json', 'X-Auth-Token': '<Token omitted>'} _log_request /opt/stack/tempest/tempest/common/rest_client.py:295
  2013-08-28 11:56:08.154 2220 DEBUG tempest.common.rest_client [-] Request Body: {"add_tenant_access": {"tenant_id": "9bfa07133a42464a8701e3cf367bbb4d"}} _log_request /opt/stack/tempest/tempest/common/rest_client.py:299
  2013-08-28 11:56:08.169 2220 INFO tempest.common.rest_client [-] Response Status: 500
  2013-08-28 11:56:08.169 2220 DEBUG tempest.common.rest_client [-] Response Headers: {'date': 'Wed, 28 Aug 2013 03:56:08 GMT', 'content-length': '202', 'content-type': 'application/json; charset=UTF-8', 'x-compute-request-id': 'req-17649b30-e3a7-489f-98ab-8cf0ccb0e0ab'} _log_response /opt/stack/tempest/tempest/common/rest_client.py:310
  2013-08-28 11:56:08.169 2220 DEBUG tempest.common.rest_client [-] Response Body: {"computeFault": {"message": "Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.\n<class 'nova.exception.AdminRequired'>", "code": 500}} _log_response /opt/stack/tempest/tempest/common/rest_client.py:314

  the nova log is:
  2013-08-28 11:56:08.165 DEBUG routes.middleware [-] Matched POST /flavors/155214353/action from (pid=12748) __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:100
  2013-08-28 11:56:08.166 DEBUG routes.middleware [-] Route path: '/flavors/:(id)/action', defaults: {'action': u'action', 'controller': <nova.api.openstack.wsgi.Resource object at 0x4e72050>} from (pid=12748) __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:102
  2013-08-28 11:56:08.166 DEBUG routes.middleware [-] Match dict: {'action': u'action', 'controller': <nova.api.openstack.wsgi.Resource object at 0x4e72050>, 'id': u'155214353'} from (pid=12748) __call__ /usr/lib/python2.7/dist-packages/routes/middleware.py:103
  2013-08-28 11:56:08.166 DEBUG nova.api.openstack.wsgi [req-17649b30-e3a7-489f-98ab-8cf0ccb0e0ab demo demo] Action: 'action', body: {"add_tenant_access": {"tenant_id": "9bfa07133a42464a8701e3cf367bbb4d"}} from (pid=12748) _process_stack /opt/stack/nova/nova/api/openstack/wsgi.py:927
  2013-08-28 11:56:08.166 DEBUG nova.api.openstack.wsgi [req-17649b30-e3a7-489f-98ab-8cf0ccb0e0ab demo demo] Calling method <bound method FlavorActionController._add_tenant_access of <nova.api.openstack.compute.plugins.v3.flavor_access.FlavorActionController object at 0x50f5f50>> from (pid=12748) _process_stack /opt/stack/nova/nova/api/openstack/wsgi.py:928
  2013-08-28 11:56:08.167 ERROR nova.api.openstack.extensions [req-17649b30-e3a7-489f-98ab-8cf0ccb0e0ab demo demo] Unexpected exception in API method
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions Traceback (most recent call last):
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions   File "/opt/stack/nova/nova/api/openstack/extensions.py", line 469, in wrapped
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions     return f(*args, **kwargs)
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions   File "/opt/stack/nova/nova/api/openstack/compute/plugins/v3/flavor_access.py", line 176, in _add_tenant_access
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions     flavors.add_flavor_access(id, tenant, context)
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions   File "/opt/stack/nova/nova/compute/flavors.py", line 245, in add_flavor_access
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions     return db.flavor_access_add(ctxt, flavorid, projectid)
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions   File "/opt/stack/nova/nova/db/api.py", line 1424, in flavor_access_add
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions     return IMPL.flavor_access_add(context, flavor_id, project_id)
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions   File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 106, in wrapper
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions     nova.context.require_admin_context(args[0])
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions   File "/opt/stack/nova/nova/context.py", line 195, in require_admin_context
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions     raise exception.AdminRequired()
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions AdminRequired: User does not have admin privileges
  2013-08-28 11:56:08.167 TRACE nova.api.openstack.extensions
  2013-08-28 11:56:08.167 INFO nova.api.openstack.wsgi [req-17649b30-e3a7-489f-98ab-8cf0ccb0e0ab demo demo] HTTP exception thrown: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
  <class 'nova.exception.AdminRequired'>
  2013-08-28 11:56:08.168 DEBUG nova.api.openstack.wsgi [req-17649b30-e3a7-489f-98ab-8cf0ccb0e0ab demo demo] Returning 500 to user: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
  <class 'nova.exception.AdminRequired'> from (pid=12748) __call__ /opt/stack/nova/nova/api/openstack/wsgi.py:1188
  2013-08-28 11:56:08.168 INFO nova.osapi_compute.wsgi.server [req-17649b30-e3a7-489f-98ab-8cf0ccb0e0ab demo demo] 192.168.1.101 "POST /v3/flavors/155214353/action HTTP/1.1" status: 500 len: 409 time: 0.0126910

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1217679/+subscriptions