If we try to create share group type with wrong value for "group_specs", for example - sting instead of dict, then we get error code 500:
2017-03-16 15:34:42.58 INFO manila.api.openstack.wsgi [req-3f3344d9-c575-4dac-9d86-4f3ab1ea6e22 bf54b5c24e754c29b2557fc9940de0ab 96c537dad4b245aa8e655d45b2602611] POST http://172.18.198.54:8786/v2/96c537dad4b245aa8e655d45b2602611/share-group-types
2017-03-16 15:34:42.58 DEBUG manila.api.openstack.wsgi [req-3f3344d9-c575-4dac-9d86-4f3ab1ea6e22 bf54b5c24e754c29b2557fc9940de0ab 96c537dad4b245aa8e655d45b2602611] Action: 'create', calling method: <function _create at 0x7f86bdb3eb18>, body: {"share_group_type":
{"group_specs": "fake", "share_types": ["d9d897f3-bd80-443c-bfe3-7f2ef42e6649"], "name": "test_sg"}} from (pid=5782) _process_stack /opt/stack/manila/manila/api/openstack/wsgi.py:785
2017-03-16 15:34:42.65 ERROR manila.share_group.share_group_types [req-3f3344d9-c575-4dac-9d86-4f3ab1ea6e22 bf54b5c24e754c29b2557fc9940de0ab 96c537dad4b245aa8e655d45b2602611] DB error
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types Traceback (most recent call last):
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types File "/opt/stack/manila/manila/share_group/share_group_types.py", line 39, in create
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types projects=projects)
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types File "/opt/stack/manila/manila/db/api.py", line 1184, in share_group_type_create
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types return IMPL.share_group_type_create(context, values, projects)
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types File "/opt/stack/manila/manila/db/sqlalchemy/api.py", line 146, in wrapper
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types return f(*args, **kwargs)
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types File "/opt/stack/manila/manila/db/sqlalchemy/api.py", line 4242, in share_group_type_create
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types raise db_exception.DBError(e)
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types DBError: 'unicode' object has no attribute 'items'
2017-03-16 15:34:42.65 TRACE manila.share_group.share_group_types
2017-03-16 15:34:42.68 ERROR manila.api.middleware.fault [req-3f3344d9-c575-4dac-9d86-4f3ab1ea6e22 bf54b5c24e754c29b2557fc9940de0ab 96c537dad4b245aa8e655d45b2602611] Caught error: Cannot create share group type with name test_sg and specs fake.
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault Traceback (most recent call last):
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/middleware/fault.py", line 72, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return req.get_response(self.application)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in send
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault application, catch_exc_info=False)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in call_application
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault app_iter = application(self.environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault resp = self.call_func(req, *args, **self.kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return self.func(req, *args, **kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/oslo_middleware/base.py", line 126, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault response = req.get_response(self.application)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in send
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault application, catch_exc_info=False)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in call_application
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault app_iter = application(self.environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return resp(environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault resp = self.call_func(req, *args, **self.kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return self.func(req, *args, **kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token/__init__.py", line 335, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault response = req.get_response(self._app)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in send
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault application, catch_exc_info=False)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in call_application
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault app_iter = application(self.environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return resp(environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return resp(environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/routes/middleware.py", line 141, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault response = self.app(environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return resp(environ, start_response)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault resp = self.call_func(req, *args, **self.kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return self.func(req, *args, **kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/openstack/wsgi.py", line 761, in __call__
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault content_type, body, accept)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/openstack/wsgi.py", line 819, in _process_stack
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault action_result = self.dispatch(meth, request, action_args)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/openstack/wsgi.py", line 909, in dispatch
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return method(req=request, **action_args)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/openstack/wsgi.py", line 1051, in version_select
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return func.func(self, *args, **kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/openstack/wsgi.py", line 1145, in wrapper
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault return f(self, req, *args, **kwargs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/api/v2/share_group_types.py", line 136, in _create
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault context, name, share_types, specs, is_public)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault File "/opt/stack/manila/manila/share_group/share_group_types.py", line 43, in create
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault name=name, group_specs=group_specs)
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault ShareGroupTypeCreateFailed: Cannot create share group type with name test_sg and specs fake.
2017-03-16 15:34:42.68 TRACE manila.api.middleware.fault
2017-03-16 15:34:42.291 INFO manila.api.middleware.fault [req-3f3344d9-c575-4dac-9d86-4f3ab1ea6e22 bf54b5c24e754c29b2557fc9940de0ab 96c537dad4b245aa8e655d45b2602611] http://172.18.198.54:8786/v2/96c537dad4b245aa8e655d45b2602611/share-group-types returned with HTTP 500
Fix proposed to branch: master /review. openstack. org/446583
Review: https:/