def _set_up_controller(self): ext_info = extension_info.LoadedExtensionInfo() self.controller = servers_v21.ServersController( extension_info=ext_info) CONF.set_override('extensions_blacklist', 'os-availability-zone', 'osapi_v21') self.no_availability_zone_controller = servers_v21.ServersController( extension_info=ext_info)
def _set_up_controller(self): ext_info = extension_info.LoadedExtensionInfo() self.controller = servers_v21.ServersController( extension_info=ext_info) CONF.set_override('extensions_blacklist', 'os-config-drive', 'osapi_v21') self.no_config_drive_controller = servers_v21.ServersController( extension_info=ext_info)
def _setup_controller(self): ext_info = extension_info.LoadedExtensionInfo() self.controller = servers_v21.ServersController( extension_info=ext_info) CONF.set_override('extensions_blacklist', 'os-block-device-mapping', 'osapi_v21') self.no_bdm_v2_controller = servers_v21.ServersController( extension_info=ext_info) CONF.set_override('extensions_blacklist', '', 'osapi_v21')
def test_create_instance_decide_format_legacy(self): ext_info = extension_info.LoadedExtensionInfo() CONF.set_override( 'extensions_blacklist', ['os-block-device-mapping', 'os-block-device-mapping-v1'], 'osapi_v21') controller = servers_v21.ServersController(extension_info=ext_info) bdm = [{ 'device_name': 'foo1', 'volume_id': fakes.FAKE_UUID, 'delete_on_termination': True }] 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_show_with_details_information_non_existing_instance(self): req = self._get_request('/v2/fake/servers/%s' % NON_EXISTING_UUID, 'GET') ext_info = extension_info.LoadedExtensionInfo() servers_controller = servers.ServersController(extension_info=ext_info) self.assertRaises(exc.HTTPNotFound, servers_controller.show, req, NON_EXISTING_UUID)
def test_show_with_details_information_non_existing_instance(self): req = self._get_request( '/v2/%s/servers/%s' % (fakes.FAKE_PROJECT_ID, NON_EXISTING_UUID), 'GET') servers_controller = servers.ServersController() self.assertRaises(exc.HTTPNotFound, servers_controller.show, req, NON_EXISTING_UUID)
def setUp(self): """Shared implementation for tests below that create instance.""" super(MultiCreateExtensionTestV21, self).setUp() self.flags(enable_instance_password=True, group='api') self.instance_cache_num = 0 self.instance_cache_by_id = {} self.instance_cache_by_uuid = {} # Network API needs to be stubbed out before creating the controllers. fakes.stub_out_nw_api(self) self.controller = servers_v21.ServersController() def instance_get(context, instance_id): """Stub for compute/api create() pulling in instance after scheduling """ return self.instance_cache_by_id[instance_id] def instance_update(context, uuid, values): instance = self.instance_cache_by_uuid[uuid] instance.update(values) return instance def server_update(context, instance_uuid, params, columns_to_join=None): inst = self.instance_cache_by_uuid[instance_uuid] inst.update(params) return (inst, inst) def fake_method(*args, **kwargs): pass def project_get_networks(context, user_id): return dict(id='1', host='localhost') def create_db_entry_for_new_instance(*args, **kwargs): instance = args[4] self.instance_cache_by_uuid[instance.uuid] = instance return instance fakes.stub_out_key_pair_funcs(self) fake.stub_out_image_service(self) self.stub_out('nova.db.api.instance_add_security_group', return_security_group) self.stub_out('nova.db.api.project_get_networks', project_get_networks) self.stub_out('nova.compute.api.API.create_db_entry_for_new_instance', create_db_entry_for_new_instance) self.stub_out('nova.db.api.instance_system_metadata_update', fake_method) self.stub_out('nova.db.api.instance_get', instance_get) self.stub_out('nova.db.api.instance_update', instance_update) self.stub_out('nova.db.api.instance_update_and_get_original', server_update) self.stub_out('nova.network.manager.VlanManager.allocate_fixed_ip', fake_method) self.req = fakes.HTTPRequest.blank('')
def setUp(self): super(ServerStartStopPolicyEnforcementV21, self).setUp() self.controller = server_v21.ServersController() self.req = fakes.HTTPRequest.blank('') self.useFixture(nova_fixtures.SingleCellSimple()) self.stub_out( 'nova.db.api.instance_get_by_uuid', fakes.fake_instance_get( project_id=self.req.environ['nova.context'].project_id))
def setUp(self): super(ServerStartStopPolicyEnforcementV21, self).setUp() ext_info = extension_info.LoadedExtensionInfo() self.controller = server_v21.ServersController( extension_info=ext_info) self.req = fakes.HTTPRequest.blank('') self.stub_out( 'nova.db.instance_get_by_uuid', fakes.fake_instance_get( project_id=self.req.environ['nova.context'].project_id))
def test_create_instance_both_bdm_formats(self): ext_info = extension_info.LoadedExtensionInfo() CONF.set_override('extensions_blacklist', '', 'osapi_v21') both_controllers = servers_v21.ServersController( extension_info=ext_info) bdm = [{'device_name': 'foo'}] bdm_v2 = [{'source_type': 'volume', 'uuid': 'fake_vol'}] params = {'block_device_mapping': bdm, 'block_device_mapping_v2': bdm_v2} self.assertRaises(exc.HTTPBadRequest, self._test_create, params, override_controller=both_controllers)
def _setup_controller(self): ext_info = extension_info.LoadedExtensionInfo() self.controller = server_v21.ServersController(extension_info=ext_info)
def _set_up_controller(self): ext_info = extension_info.LoadedExtensionInfo() CONF.set_override('extensions_blacklist', 'os-scheduler-hints', 'osapi_v21') self.no_scheduler_hints_controller = servers_v21.ServersController( extension_info=ext_info)
def setUp(self): super(FlavorExtraSpecsPolicyTest, self).setUp() self.controller = flavors_extraspecs.FlavorExtraSpecsController() self.flavor_ctrl = flavors.FlavorsController() self.fm_ctrl = flavor_manage.FlavorManageController() self.server_ctrl = servers.ServersController() self.req = fakes.HTTPRequest.blank('') self.server_ctrl._view_builder._add_security_grps = mock.MagicMock() self.server_ctrl._view_builder._get_metadata = mock.MagicMock() self.server_ctrl._view_builder._get_addresses = mock.MagicMock() self.server_ctrl._view_builder._get_host_id = mock.MagicMock() self.server_ctrl._view_builder._get_fault = mock.MagicMock() self.server_ctrl._view_builder._add_host_status = mock.MagicMock() self.instance = fake_instance.fake_instance_obj( self.project_member_context, id=1, uuid=uuids.fake_id, project_id=self.project_id, vm_state=vm_states.ACTIVE) self.mock_get = self.useFixture( fixtures.MockPatch('nova.api.openstack.common.get_instance')).mock self.mock_get.return_value = self.instance fakes.stub_out_secgroup_api(self, security_groups=[{ 'name': 'default' }]) self.mock_get_all = self.useFixture( fixtures.MockPatchObject(self.server_ctrl.compute_api, 'get_all')).mock self.mock_get_all.return_value = objects.InstanceList( objects=[self.instance]) def get_flavor_extra_specs(context, flavor_id): return fake_flavor.fake_flavor_obj( self.project_member_context, id=1, uuid=uuids.fake_id, project_id=self.project_id, is_public=False, extra_specs={'hw:cpu_policy': 'shared'}, expected_attrs='extra_specs') self.stub_out('nova.api.openstack.common.get_flavor', get_flavor_extra_specs) # Check that all are able to get flavor extra specs. self.all_authorized_contexts = [ self.legacy_admin_context, self.system_admin_context, self.project_admin_context, self.project_member_context, self.project_reader_context, self.project_foo_context, self.system_member_context, self.system_reader_context, self.system_foo_context, self.other_project_member_context, self.other_project_reader_context ] self.all_unauthorized_contexts = [] # Check that all system scoped are able to get flavor extra specs. self.all_system_authorized_contexts = [ self.legacy_admin_context, self.system_admin_context, self.project_admin_context, self.project_member_context, self.project_reader_context, self.project_foo_context, self.system_member_context, self.system_reader_context, self.system_foo_context, self.other_project_member_context, self.other_project_reader_context ] self.all_system_unauthorized_contexts = [] # Check that admin is able to create, update and delete flavor # extra specs. self.admin_authorized_contexts = [ self.legacy_admin_context, self.system_admin_context, self.project_admin_context ] # Check that non-admin is not able to create, update and # delete flavor extra specs. self.admin_unauthorized_contexts = [ self.system_member_context, self.system_reader_context, self.system_foo_context, self.project_member_context, self.project_reader_context, self.project_foo_context, self.other_project_member_context, self.other_project_reader_context ]
def setUp(self): """Shared implementation for tests below that create instance.""" super(MultiCreateExtensionTestV21, self).setUp() self.flags(verbose=True, enable_instance_password=True) self.instance_cache_num = 0 self.instance_cache_by_id = {} self.instance_cache_by_uuid = {} ext_info = extension_info.LoadedExtensionInfo() self.controller = servers_v21.ServersController( extension_info=ext_info) CONF.set_override('extensions_blacklist', 'os-multiple-create', 'osapi_v21') self.no_mult_create_controller = servers_v21.ServersController( extension_info=ext_info) def instance_create(context, inst): inst_type = flavors.get_flavor_by_flavor_id(3) image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' def_image_ref = 'http://localhost/images/%s' % image_uuid self.instance_cache_num += 1 instance = fake_instance.fake_db_instance(**{ 'id': self.instance_cache_num, 'display_name': inst['display_name'] or 'test', 'uuid': inst['uuid'], 'instance_type': inst_type, 'access_ip_v4': '1.2.3.4', 'access_ip_v6': 'fead::1234', 'image_ref': inst.get('image_ref', def_image_ref), 'user_id': 'fake', 'project_id': 'fake', 'reservation_id': inst['reservation_id'], "created_at": datetime.datetime(2010, 10, 10, 12, 0, 0), "updated_at": datetime.datetime(2010, 11, 11, 11, 0, 0), "progress": 0, "fixed_ips": [], "task_state": "", "vm_state": "", "security_groups": inst['security_groups'], }) self.instance_cache_by_id[instance['id']] = instance self.instance_cache_by_uuid[instance['uuid']] = instance return instance def instance_get(context, instance_id): """Stub for compute/api create() pulling in instance after scheduling """ return self.instance_cache_by_id[instance_id] def instance_update(context, uuid, values): instance = self.instance_cache_by_uuid[uuid] instance.update(values) return instance def server_update(context, instance_uuid, params, columns_to_join=None): inst = self.instance_cache_by_uuid[instance_uuid] inst.update(params) return (inst, inst) def fake_method(*args, **kwargs): pass def project_get_networks(context, user_id): return dict(id='1', host='localhost') fakes.stub_out_rate_limiting(self.stubs) fakes.stub_out_key_pair_funcs(self.stubs) fake.stub_out_image_service(self) fakes.stub_out_nw_api(self) self.stub_out('nova.db.instance_add_security_group', return_security_group) self.stub_out('nova.db.project_get_networks', project_get_networks) self.stub_out('nova.db.instance_create', instance_create) self.stub_out('nova.db.instance_system_metadata_update', fake_method) self.stub_out('nova.db.instance_get', instance_get) self.stub_out('nova.db.instance_update', instance_update) self.stub_out('nova.db.instance_update_and_get_original', server_update) self.stubs.Set(manager.VlanManager, 'allocate_fixed_ip', fake_method) self.req = fakes.HTTPRequest.blank('')
def _set_up_controller(self): self.controller = servers_v21.ServersController()
def setUp(self): """Shared implementation for tests below that create instance.""" super(ServersControllerCreateTest, self).setUp() self.flags(enable_instance_password=True, group='api') self.instance_cache_num = 0 self.instance_cache_by_id = {} self.instance_cache_by_uuid = {} # Network API needs to be stubbed out before creating the controllers. fakes.stub_out_nw_api(self) ext_info = extension_info.LoadedExtensionInfo() self.controller = servers.ServersController(extension_info=ext_info) CONF.set_override('extensions_blacklist', 'os-user-data', 'osapi_v21') self.no_user_data_controller = servers.ServersController( extension_info=ext_info) def instance_create(context, inst): inst_type = flavors.get_flavor_by_flavor_id(3) image_uuid = '76fa36fc-c930-4bf3-8c8a-ea2a2420deb6' def_image_ref = 'http://localhost/images/%s' % image_uuid self.instance_cache_num += 1 instance = fake_instance.fake_db_instance( **{ 'id': self.instance_cache_num, 'display_name': inst['display_name'] or 'test', 'uuid': FAKE_UUID, 'instance_type': inst_type, 'access_ip_v4': '1.2.3.4', 'access_ip_v6': 'fead::1234', 'image_ref': inst.get('image_ref', def_image_ref), 'user_id': 'fake', 'project_id': 'fake', 'reservation_id': inst['reservation_id'], "created_at": datetime.datetime(2010, 10, 10, 12, 0, 0), "updated_at": datetime.datetime(2010, 11, 11, 11, 0, 0), user_data.ATTRIBUTE_NAME: None, "progress": 0, "fixed_ips": [], "task_state": "", "vm_state": "", "root_device_name": inst.get('root_device_name', 'vda'), }) self.instance_cache_by_id[instance['id']] = instance self.instance_cache_by_uuid[instance['uuid']] = instance return instance def instance_get(context, instance_id): """Stub for compute/api create() pulling in instance after scheduling """ return self.instance_cache_by_id[instance_id] def instance_update(context, uuid, values): instance = self.instance_cache_by_uuid[uuid] instance.update(values) return instance def server_update(context, instance_uuid, params): inst = self.instance_cache_by_uuid[instance_uuid] inst.update(params) return (inst, inst) def fake_method(*args, **kwargs): pass def project_get_networks(context, user_id): return dict(id='1', host='localhost') fakes.stub_out_key_pair_funcs(self) fake.stub_out_image_service(self) self.stubs.Set(uuid, 'uuid4', fake_gen_uuid) self.stub_out('nova.db.instance_add_security_group', return_security_group) self.stub_out('nova.db.project_get_networks', project_get_networks) self.stub_out('nova.db.instance_create', instance_create) self.stub_out('nova.db.instance_system_metadata_update', fake_method) self.stub_out('nova.db.instance_get', instance_get) self.stub_out('nova.db.instance_update', instance_update) self.stub_out('nova.db.instance_update_and_get_original', server_update) self.stubs.Set(manager.VlanManager, 'allocate_fixed_ip', fake_method)
def _setup_controller(self): self.controller = servers.ServersController()