Exception while creating environment without input json

Bug #1491788 reported by Ekaterina Chernova
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Murano
Fix Released
Medium
Lin Yang

Bug Description

Try to create environment, but do not provide environment name (input json)

Output is the following:

curl -i http://localhost:8082/v1/environments -X GET -H 'X-Auth-Token: 3ac71e0c939344819764eb9e1b7ffea4'
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 253
X-Openstack-Request-Id: req-60869204-cf93-44c8-a172-e9b0ee61a031
Date: Thu, 03 Sep 2015 09:46:51 GMT

{"environments": [{"status": "ready", "updated": "2015-08-28T15:04:06", "networking": {}, "created": "2015-08-28T15:02:29", "tenant_id": "10f4ae20294e47cb9ca4499965575c2a", "version": 1, "id": "d57e9a1dd6784333811da3356e6a3b32", "name": "TestRunner1"}]}(venv)fervent@fervent-Mirantis:~/Projects/murano$ curl -i http://localhost:8082/v1/environmen2/v1/environments -X GET -H 'X-Auth-Token: 3ac71e0c939344819764eb9e1b7ffea4'^C
(venv)fervent@fervent-Mirantis:~/Projects/murano$ curl -i http://localhost:8082/v1/environments -X POST -H 'X-Auth-Token: 3ac71e0c939344819764eb9e1b7ffea4'
HTTP/1.1 500 Internal Server Error
Content-Type: text/html; charset=UTF-8
Content-Length: 4186
X-Openstack-Request-Id: req-7ec7d8c8-47a9-4dc1-bd2e-1bf88c3ad39a
Date: Thu, 03 Sep 2015 09:47:11 GMT

{"explanation": "The server has either erred or is incapable of performing the requested operation.", "code": 500, "error": {"message": "create() takes exactly 3 arguments (2 given)", "traceback": "Traceback (most recent call last):\n File \"/home/fervent/Projects/murano/murano/api/middleware/fault.py\", line 127, in process_request\n return req.get_response(self.application)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **self.kwargs)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py\", line 434, in __call__\n response = req.get_response(self._app)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **self.kwargs)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/home/fervent/Projects/murano/murano/common/wsgi.py\", line 197, in __call__\n response = req.get_response(self.application)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/paste/urlmap.py\", line 216, in __call__\n return app(environ, start_response)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/dec.py\", line 144, in __call__\n return resp(environ, start_response)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/routes/middleware.py\", line 136, in __call__\n response = self.app(environ, start_response)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/dec.py\", line 144, in __call__\n return resp(environ, start_response)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **self.kwargs)\n File \"/home/fervent/Projects/murano/.tox/venv/local/lib/python2.7/site-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/home/fervent/Projects/murano/murano/common/wsgi.py\", line 379, in __call__\n action_result = self.execute_action(action, request, **action_args)\n File \"/home/fervent/Projects/murano/murano/common/wsgi.py\", line 393, in execute_action\n return self.dispatch(self.controller, action, request, **action_args)\n File \"/home/fervent/Projects/murano/murano/common/wsgi.py\", line 402, in dispatch\n return method(*args, **kwargs)\n File \"/home/fervent/Projects/murano/murano/api/v1/request_statistics.py\", line 57, in wrap\n result = func(*args, **kwargs)\nTypeError: create() takes exactly 3 arguments (2 given)\n", "type": "TypeError"}, "title": "Internal Server Error"}(venv)fervent@fervent-Mirantis:~/Projects/murano$ curl -i http://localhost:8082/v1/environments -X POST -H 'X-Auth-Token: 3ac71e0c9393448192/v1/environments -X GET -H 'X-Auth-Token: f6d6020f873560d3658daebe4c50574e1f3ac861'

Tags: api
Lin Yang (lin-a-yang)
Changed in murano:
assignee: nobody → Lin Yang (lin-a-yang)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to murano (master)

Fix proposed to branch: master
Review: https://review.openstack.org/220786

Changed in murano:
status: Confirmed → In Progress
Changed in murano:
milestone: 2015.1.1 → liberty-3
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to murano (master)

Reviewed: https://review.openstack.org/220786
Committed: https://git.openstack.org/cgit/openstack/murano/commit/?id=ef6a7e7b4ccedb61815c2bf2ccb1980cad648304
Submitter: Jenkins
Branch: master

commit ef6a7e7b4ccedb61815c2bf2ccb1980cad648304
Author: Lin Yang <email address hidden>
Date: Sun Sep 6 15:34:19 2015 +0800

    Convert api internal TypeError to HTTPBadRequest

    Previously, when created environment without environment name provided, it
    return meaningless HTTP 500 with internal TypeError exception traceback. So
    add ResourceExceptionHandler to convert these exceptions generated by API
    implementation methods to webob exception.

    Change-Id: I221a6e0d36afb04b4d0c12f6a9c0d1f1da6f9bdb
    Closes-Bug: #1491788

Changed in murano:
status: In Progress → Fix Committed
Changed in murano:
status: Fix Committed → Fix Released
Changed in murano:
milestone: liberty-3 → 1.0.0
Changed in murano:
milestone: 1.0.0 → 1.0.1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.