To reproduce: start deleting an environment, navigate to environment datails page.
observed result: error message
expected result: details page
logs contain
Recoverable error: {"title": "Internal Server Error", "error": {"type": "AttributeError", "message": "'NoneType' object has no attribute 'pop'", "traceback": "Traceback (most recent call last):\n File \"/Users/teferi/murano/murano/murano/api/middleware/fault.py\", line 127, in process_request\n return req.get_response(self.application)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **self.kwargs)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/keystonemiddleware/auth_token/__init__.py\", line 434, in __call__\n response = req.get_response(self._app)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **self.kwargs)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/Users/teferi/murano/murano/murano/common/wsgi.py\", line 197, in __call__\n response = req.get_response(self.application)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/request.py\", line 1317, in send\n application, catch_exc_info=False)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/request.py\", line 1281, in call_application\n app_iter = application(self.environ, start_response)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/paste/urlmap.py\", line 216, in __call__\n return app(environ, start_response)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/dec.py\", line 144, in __call__\n return resp(environ, start_response)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/routes/middleware.py\", line 136, in __call__\n response = self.app(environ, start_response)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/dec.py\", line 144, in __call__\n return resp(environ, start_response)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/dec.py\", line 130, in __call__\n resp = self.call_func(req, *args, **self.kwargs)\n File \"/Users/teferi/murano/murano/.tox/venv/lib/python2.7/site-packages/webob/dec.py\", line 195, in call_func\n return self.func(req, *args, **kwargs)\n File \"/Users/teferi/murano/murano/murano/common/wsgi.py\", line 377, in __call__\n action_result = self.execute_action(action, request, **action_args)\n File \"/Users/teferi/murano/murano/murano/common/wsgi.py\", line 391, in execute_action\n return self.dispatch(self.controller, action, request, **action_args)\n File \"/Users/teferi/murano/murano/murano/common/wsgi.py\", line 400, in dispatch\n return method(*args, **kwargs)\n File \"/Users/teferi/murano/murano/murano/api/v1/request_statistics.py\", line 57, in wrap\n result = func(*args, **kwargs)\n File \"/Users/teferi/murano/murano/murano/utils.py\", line 51, in __inner\n return func(self, request, environment_id, *args, **kwargs)\n File \"/Users/teferi/murano/murano/murano/api/v1/deployments.py\", line 47, in index\n in result]\n File \"/Users/teferi/murano/murano/murano/api/v1/deployments.py\", line 128, in set_dep_state\n deployment.description = _patch_description(deployment.description)\n File \"/Users/teferi/murano/murano/murano/api/v1/deployments.py\", line 81, in _patch_description\n description['services'] = description.pop('applications', [])\nAttributeError: 'NoneType' object has no attribute 'pop'\n"}, "explanation": "The server has either erred or is incapable of performing the requested operation.", "code": 500} (HTTP 500)
Fix proposed to branch: master /review. openstack. org/209593
Review: https:/