Merge "Fix multiple image imports if boolean input passed as string"
This commit is contained in:
commit
b66342a3d8
|
@ -1115,6 +1115,17 @@ class RequestDeserializer(wsgi.JSONRequestDeserializer):
|
||||||
msg = _("Unknown import method name '%s'.") % method_name
|
msg = _("Unknown import method name '%s'.") % method_name
|
||||||
raise webob.exc.HTTPBadRequest(explanation=msg)
|
raise webob.exc.HTTPBadRequest(explanation=msg)
|
||||||
|
|
||||||
|
# Validate 'all_stores_must_succeed' and 'all_stores'
|
||||||
|
all_stores_must_succeed = body.get('all_stores_must_succeed', True)
|
||||||
|
if not isinstance(all_stores_must_succeed, bool):
|
||||||
|
msg = (_("'all_stores_must_succeed' must be boolean value only"))
|
||||||
|
raise webob.exc.HTTPBadRequest(explanation=msg)
|
||||||
|
|
||||||
|
all_stores = body.get('all_stores', False)
|
||||||
|
if not isinstance(all_stores, bool):
|
||||||
|
msg = (_("'all_stores' must be boolean value only"))
|
||||||
|
raise webob.exc.HTTPBadRequest(explanation=msg)
|
||||||
|
|
||||||
def import_image(self, request):
|
def import_image(self, request):
|
||||||
body = self._get_request_body(request)
|
body = self._get_request_body(request)
|
||||||
self._validate_import_body(body)
|
self._validate_import_body(body)
|
||||||
|
|
|
@ -4127,6 +4127,32 @@ class TestImagesDeserializer(test_utils.BaseTestCase):
|
||||||
self.deserializer.import_image,
|
self.deserializer.import_image,
|
||||||
request)
|
request)
|
||||||
|
|
||||||
|
def test_import_image_with_all_stores_not_boolean(self):
|
||||||
|
request = unit_test_utils.get_fake_request()
|
||||||
|
import_body = {
|
||||||
|
'method': {
|
||||||
|
'name': 'glance-direct'
|
||||||
|
},
|
||||||
|
'all_stores': "true"
|
||||||
|
}
|
||||||
|
request.body = jsonutils.dump_as_bytes(import_body)
|
||||||
|
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||||
|
self.deserializer.import_image,
|
||||||
|
request)
|
||||||
|
|
||||||
|
def test_import_image_with_allow_failure_not_boolean(self):
|
||||||
|
request = unit_test_utils.get_fake_request()
|
||||||
|
import_body = {
|
||||||
|
'method': {
|
||||||
|
'name': 'glance-direct'
|
||||||
|
},
|
||||||
|
'all_stores_must_succeed': "true"
|
||||||
|
}
|
||||||
|
request.body = jsonutils.dump_as_bytes(import_body)
|
||||||
|
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||||
|
self.deserializer.import_image,
|
||||||
|
request)
|
||||||
|
|
||||||
def _get_request_for_method(self, method_name):
|
def _get_request_for_method(self, method_name):
|
||||||
request = unit_test_utils.get_fake_request()
|
request = unit_test_utils.get_fake_request()
|
||||||
import_body = {
|
import_body = {
|
||||||
|
|
Loading…
Reference in New Issue