Merge "Detect MultiDict when generating json body"
This commit is contained in:
commit
49d3220d94
@ -39,6 +39,7 @@ import routes
|
||||
import routes.middleware
|
||||
import webob.dec
|
||||
import webob.exc
|
||||
from webob import multidict
|
||||
|
||||
from glance.common import exception
|
||||
from glance.common import utils
|
||||
@ -566,6 +567,8 @@ class JSONResponseSerializer(object):
|
||||
return obj.isoformat()
|
||||
if hasattr(obj, "to_dict"):
|
||||
return obj.to_dict()
|
||||
if isinstance(obj, multidict.MultiDict):
|
||||
return obj.mixed()
|
||||
return obj
|
||||
|
||||
def to_json(self, data):
|
||||
|
@ -75,6 +75,8 @@ class Server(object):
|
||||
self.property_protection_file = ''
|
||||
self.enable_v1_api = True
|
||||
self.enable_v2_api = True
|
||||
self.enable_v1_registry = True
|
||||
self.enable_v2_registry = True
|
||||
self.needs_database = False
|
||||
self.log_file = None
|
||||
self.sock = sock
|
||||
@ -485,6 +487,7 @@ sql_idle_timeout = 3600
|
||||
api_limit_max = 1000
|
||||
limit_param_default = 25
|
||||
owner_is_tenant = %(owner_is_tenant)s
|
||||
enable_v2_registry = %(enable_v2_registry)s
|
||||
workers = %(workers)s
|
||||
user_storage_quota = %(user_storage_quota)s
|
||||
[paste_deploy]
|
||||
@ -497,7 +500,7 @@ pipeline = unauthenticated-context registryapp
|
||||
pipeline = fakeauth context registryapp
|
||||
|
||||
[app:registryapp]
|
||||
paste.app_factory = glance.registry.api.v%(api_version)s:API.factory
|
||||
paste.app_factory = glance.registry.api:API.factory
|
||||
|
||||
[filter:context]
|
||||
paste.filter_factory = glance.api.middleware.context:ContextMiddleware.factory
|
||||
|
55
glance/tests/functional/db/test_rpc_endpoint.py
Normal file
55
glance/tests/functional/db/test_rpc_endpoint.py
Normal file
@ -0,0 +1,55 @@
|
||||
# Copyright 2014 Hewlett-Packard Development Company, L.P.
|
||||
# All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import requests
|
||||
|
||||
from glance.openstack.common import jsonutils
|
||||
from glance.tests import functional
|
||||
|
||||
|
||||
class TestRegistryURLVisibility(functional.FunctionalTest):
|
||||
|
||||
def setUp(self):
|
||||
super(TestRegistryURLVisibility, self).setUp()
|
||||
self.cleanup()
|
||||
self.registry_server.deployment_flavor = ''
|
||||
self.req_body = jsonutils.dumps([{"command": "image_get_all"}])
|
||||
|
||||
def _url(self, path):
|
||||
return 'http://127.0.0.1:%d%s' % (self.registry_port, path)
|
||||
|
||||
def _headers(self, custom_headers=None):
|
||||
base_headers = {
|
||||
}
|
||||
base_headers.update(custom_headers or {})
|
||||
return base_headers
|
||||
|
||||
def test_v2_not_enabled(self):
|
||||
self.registry_server.enable_v2_registry = False
|
||||
self.start_servers(**self.__dict__.copy())
|
||||
path = self._url('/rpc')
|
||||
response = requests.post(path, headers=self._headers(),
|
||||
data=self.req_body)
|
||||
self.assertEqual(404, response.status_code)
|
||||
self.stop_servers()
|
||||
|
||||
def test_v2_enabled(self):
|
||||
self.registry_server.enable_v2_registry = True
|
||||
self.start_servers(**self.__dict__.copy())
|
||||
path = self._url('/rpc')
|
||||
response = requests.post(path, headers=self._headers(),
|
||||
data=self.req_body)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.stop_servers()
|
Loading…
Reference in New Issue
Block a user