Remove core extension list
core extension comes from V2 API and we don't need that now so this patch removes the code related to the extension. Partially implements blueprint remove-legacy-v2-api-code Change-Id: Idd3e54f757713d3bdb5f817a6cd34c04e6c681ab
This commit is contained in:
parent
6e2e1dc912
commit
38e2c9c459
|
@ -39,21 +39,6 @@ from nova import wsgi as base_wsgi
|
|||
LOG = logging.getLogger(__name__)
|
||||
CONF = nova.conf.CONF
|
||||
|
||||
# List of v21 API extensions which are considered to form
|
||||
# the core API and so must be present
|
||||
# TODO(cyeoh): Expand this list as the core APIs are ported to v21
|
||||
API_V21_CORE_EXTENSIONS = set(['os-consoles',
|
||||
'extensions',
|
||||
'os-flavor-extra-specs',
|
||||
'os-flavor-manage',
|
||||
'flavors',
|
||||
'ips',
|
||||
'os-keypairs',
|
||||
'os-flavor-access',
|
||||
'server-metadata',
|
||||
'servers',
|
||||
'versions'])
|
||||
|
||||
|
||||
class FaultWrapper(base_wsgi.Middleware):
|
||||
"""Calls down the middleware stack, making exceptions into faults."""
|
||||
|
@ -285,12 +270,6 @@ class APIRouterV21(base_wsgi.Router):
|
|||
self._register_resources_list(ext_no_inherits, mapper)
|
||||
self._register_resources_list(ext_has_inherits, mapper)
|
||||
|
||||
@staticmethod
|
||||
def get_missing_core_extensions(extensions_loaded):
|
||||
extensions_loaded = set(extensions_loaded)
|
||||
missing_extensions = API_V21_CORE_EXTENSIONS - extensions_loaded
|
||||
return list(missing_extensions)
|
||||
|
||||
@property
|
||||
def loaded_extension_info(self):
|
||||
raise NotImplementedError()
|
||||
|
|
|
@ -16,7 +16,6 @@ import os
|
|||
|
||||
import testscenarios
|
||||
|
||||
from nova.api.openstack import API_V21_CORE_EXTENSIONS # noqa
|
||||
import nova.conf
|
||||
from nova import test
|
||||
from nova.tests.functional import api_paste_fixture
|
||||
|
|
|
@ -15,10 +15,8 @@
|
|||
|
||||
import mock
|
||||
from oslo_config import cfg
|
||||
import stevedore
|
||||
import webob.exc
|
||||
|
||||
from nova.api import openstack
|
||||
from nova.api.openstack import compute
|
||||
from nova.api.openstack.compute import extension_info
|
||||
from nova.api.openstack import extensions
|
||||
|
@ -33,35 +31,8 @@ class fake_bad_extension(object):
|
|||
alias = "fake-bad"
|
||||
|
||||
|
||||
class fake_stevedore_enabled_extensions(object):
|
||||
def __init__(self, namespace, check_func, invoke_on_load=False,
|
||||
invoke_args=(), invoke_kwds=None):
|
||||
self.extensions = []
|
||||
|
||||
def map(self, func, *args, **kwds):
|
||||
pass
|
||||
|
||||
def __iter__(self):
|
||||
return iter(self.extensions)
|
||||
|
||||
|
||||
class fake_loaded_extension_info(object):
|
||||
def __init__(self):
|
||||
self.extensions = {}
|
||||
|
||||
def register_extension(self, ext):
|
||||
self.extensions[ext] = ext
|
||||
return True
|
||||
|
||||
def get_extensions(self):
|
||||
return {'core1': None, 'core2': None, 'noncore1': None}
|
||||
|
||||
|
||||
class ExtensionLoadingTestCase(test.NoDBTestCase):
|
||||
|
||||
def _set_v21_core(self, core_extensions):
|
||||
openstack.API_V21_CORE_EXTENSIONS = core_extensions
|
||||
|
||||
def test_extensions_loaded(self):
|
||||
app = compute.APIRouterV21()
|
||||
self.assertIn('servers', app._loaded_extension_info.extensions)
|
||||
|
@ -85,53 +56,6 @@ class ExtensionLoadingTestCase(test.NoDBTestCase):
|
|||
name_list = [ext.obj.alias for ext in ext_no_inherits]
|
||||
self.assertIn('servers', name_list)
|
||||
|
||||
def test_extensions_whitelist_accept(self):
|
||||
# NOTE(maurosr): just to avoid to get an exception raised for not
|
||||
# loading all core api.
|
||||
v21_core = openstack.API_V21_CORE_EXTENSIONS
|
||||
openstack.API_V21_CORE_EXTENSIONS = set(['servers'])
|
||||
self.addCleanup(self._set_v21_core, v21_core)
|
||||
|
||||
app = compute.APIRouterV21()
|
||||
self.assertIn('os-hosts', app._loaded_extension_info.extensions)
|
||||
CONF.set_override('extensions_whitelist', ['servers', 'os-hosts'],
|
||||
'osapi_v21')
|
||||
app = compute.APIRouterV21()
|
||||
self.assertIn('os-hosts', app._loaded_extension_info.extensions)
|
||||
|
||||
def test_get_missing_core_extensions(self):
|
||||
v21_core = openstack.API_V21_CORE_EXTENSIONS
|
||||
openstack.API_V21_CORE_EXTENSIONS = set(['core1', 'core2'])
|
||||
self.addCleanup(self._set_v21_core, v21_core)
|
||||
self.assertEqual(0, len(
|
||||
compute.APIRouterV21.get_missing_core_extensions(
|
||||
['core1', 'core2', 'noncore1'])))
|
||||
missing_core = compute.APIRouterV21.get_missing_core_extensions(
|
||||
['core1'])
|
||||
self.assertEqual(1, len(missing_core))
|
||||
self.assertIn('core2', missing_core)
|
||||
missing_core = compute.APIRouterV21.get_missing_core_extensions([])
|
||||
self.assertEqual(2, len(missing_core))
|
||||
self.assertIn('core1', missing_core)
|
||||
self.assertIn('core2', missing_core)
|
||||
missing_core = compute.APIRouterV21.get_missing_core_extensions(
|
||||
['noncore1'])
|
||||
self.assertEqual(2, len(missing_core))
|
||||
self.assertIn('core1', missing_core)
|
||||
self.assertIn('core2', missing_core)
|
||||
|
||||
def test_core_extensions_present(self):
|
||||
self.stubs.Set(stevedore.enabled, 'EnabledExtensionManager',
|
||||
fake_stevedore_enabled_extensions)
|
||||
self.stubs.Set(extension_info, 'LoadedExtensionInfo',
|
||||
fake_loaded_extension_info)
|
||||
v21_core = openstack.API_V21_CORE_EXTENSIONS
|
||||
openstack.API_V21_CORE_EXTENSIONS = set(['core1', 'core2'])
|
||||
self.addCleanup(self._set_v21_core, v21_core)
|
||||
# if no core API extensions are missing then an exception will
|
||||
# not be raised when creating an instance of compute.APIRouterV21
|
||||
compute.APIRouterV21()
|
||||
|
||||
def test_extensions_expected_error(self):
|
||||
@extensions.expected_errors(404)
|
||||
def fake_func():
|
||||
|
|
Loading…
Reference in New Issue