** 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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to