def _setup_controller(self): self.ext_mgr = extensions.ExtensionManager() self.ext_mgr.extensions = {'os-volumes': 'fake'} self.controller = servers_v2.Controller(self.ext_mgr) self.ext_mgr_no_vols = extensions.ExtensionManager() self.ext_mgr_no_vols.extensions = {} self.no_volumes_controller = servers_v2.Controller( self.ext_mgr_no_vols)
def _setup_controller(self): self.ext_mgr = extensions.ExtensionManager() self.ext_mgr.extensions = {'os-volumes': 'fake', 'os-block-device-mapping-v2-boot': 'fake'} self.controller = servers_v2.Controller(self.ext_mgr) self.ext_mgr_bdm_v2 = extensions.ExtensionManager() self.ext_mgr_bdm_v2.extensions = {'os-volumes': 'fake'} self.no_bdm_v2_controller = servers_v2.Controller( self.ext_mgr_bdm_v2)
def test_create_instance_decide_format_legacy(self): ext_mgr = extensions.ExtensionManager() ext_mgr.extensions = { 'os-volumes': 'fake', 'os-block-device-mapping-v2-boot': 'fake' } controller = servers_v2.Controller(self.ext_mgr) bdm = [{ 'device_name': 'foo1', 'volume_id': 'fake_vol', 'delete_on_termination': 1 }] expected_legacy_flag = True old_create = compute_api.API.create def create(*args, **kwargs): legacy_bdm = kwargs.get('legacy_bdm', True) self.assertEqual(legacy_bdm, expected_legacy_flag) return old_create(*args, **kwargs) def _validate_bdm(*args, **kwargs): pass self.stubs.Set(compute_api.API, 'create', create) self.stubs.Set(compute_api.API, '_validate_bdm', _validate_bdm) self._test_create({}, override_controller=controller) params = {'block_device_mapping': bdm} self._test_create(params, override_controller=controller)
def test_add_extension(self): def mock_load(_s): return TestPluginClass() def mock_iter_entry_points(_t): return [MockEntrypoint("fake", "fake", ["fake"])] self.stubs.Set(pkg_resources, 'iter_entry_points', mock_iter_entry_points) global service_list service_list = [] # Marking out the default extension paths makes this test MUCH faster. self.flags(osapi_compute_extension=[]) found = False mgr = computeextensions.ExtensionManager() for res in mgr.get_resources(): # We have to use this weird 'dir' check because # the plugin framework muddies up the classname # such that 'isinstance' doesn't work right. if 'i_am_the_stub' in dir(res.controller): found = True self.assertTrue(found) self.assertEqual(len(service_list), 1) self.assertEqual(service_list[0], 'compute-extensions')
def test_invalid_extensions(self): # Don't need the serialization middleware here because we're # not testing any serialization app = compute.APIRouter() ext_mgr = compute_extensions.ExtensionManager() ext_mgr.register(InvalidExtension()) self.assertTrue('FOXNSOX' in ext_mgr.extensions) self.assertTrue('THIRD' not in ext_mgr.extensions)
def __init__(self, ext_mgr=None): if ext_mgr is None: ext_mgr = extensions.ExtensionManager() mapper = nova.api.openstack.ProjectMapper() self.resources = {} self._setup_routes(mapper) self._setup_ext_routes(mapper, ext_mgr) self._setup_extensions(ext_mgr) super(APIRouter, self).__init__(mapper)