Exemple #1
0
    def setUp(self):
        super(ServerActionsControllerTest, self).setUp()

        CONF.set_override('glance_host', 'localhost')
        self.stubs.Set(
            db, 'instance_get_by_uuid',
            fakes.fake_instance_get(vm_state=vm_states.ACTIVE,
                                    host='fake_host'))
        self.stubs.Set(db, 'instance_update_and_get_original',
                       instance_update_and_get_original)

        fakes.stub_out_glance(self.stubs)
        fakes.stub_out_nw_api(self.stubs)
        fakes.stub_out_rate_limiting(self.stubs)
        fakes.stub_out_compute_api_snapshot(self.stubs)
        fake.stub_out_image_service(self.stubs)
        service_class = 'nova.image.glance.GlanceImageService'
        self.service = importutils.import_object(service_class)
        self.sent_to_glance = {}
        fakes.stub_out_glanceclient_create(self.stubs, self.sent_to_glance)
        self.flags(allow_instance_snapshots=True,
                   enable_instance_password=True)
        self.uuid = FAKE_UUID
        self.url = '/servers/%s/action' % self.uuid
        self._image_href = '155d900f-4e14-4e4c-a73d-069cbf4541e6'

        ext_info = plugins.LoadedExtensionInfo()
        self.controller = servers.ServersController(extension_info=ext_info)
    def test_create_instance_decide_format_legacy(self):
        ext_info = plugins.LoadedExtensionInfo()
        CONF.set_override(
            'extensions_blacklist',
            ['os-block-device-mapping', 'os-block-device-mapping-v1'],
            'osapi_v3')
        controller = servers_v3.ServersController(extension_info=ext_info)
        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 setUp(self):
        super(ServerActionsControllerTest, self).setUp()

        CONF.set_override('host', 'localhost', group='glance')
        self.stubs.Set(
            db, 'instance_get_by_uuid',
            fakes.fake_instance_get(vm_state=vm_states.ACTIVE,
                                    host='fake_host'))
        self.stubs.Set(db, 'instance_update_and_get_original',
                       instance_update_and_get_original)

        fakes.stub_out_nw_api(self.stubs)
        fakes.stub_out_compute_api_snapshot(self.stubs)
        fake.stub_out_image_service(self.stubs)
        self.flags(allow_instance_snapshots=True,
                   enable_instance_password=True)
        self.uuid = FAKE_UUID
        self.url = '/servers/%s/action' % self.uuid
        self._image_href = '155d900f-4e14-4e4c-a73d-069cbf4541e6'

        ext_info = plugins.LoadedExtensionInfo()
        self.controller = servers.ServersController(extension_info=ext_info)
        self.compute_api = self.controller.compute_api
        self.context = context.RequestContext('fake', 'fake')
        self.app = fakes.wsgi_app_v21(init_only=('servers', ),
                                      fake_auth_context=self.context)
Exemple #4
0
 def _setup_controller(self):
     ext_info = plugins.LoadedExtensionInfo()
     self.controller = servers_v3.ServersController(extension_info=ext_info)
     CONF.set_override('extensions_blacklist', 'os-block-device-mapping',
                       'osapi_v3')
     self.no_bdm_v2_controller = servers_v3.ServersController(
         extension_info=ext_info)
     CONF.set_override('extensions_blacklist', '', 'osapi_v3')
 def _set_up_controller(self):
     ext_info = plugins.LoadedExtensionInfo()
     self.controller = servers_v21.ServersController(
         extension_info=ext_info)
     CONF.set_override('extensions_blacklist', 'os-config-drive',
                       'osapi_v3')
     self.no_config_drive_controller = servers_v21.ServersController(
         extension_info=ext_info)
Exemple #6
0
 def setUp(self):
     super(ConfigDriveTest, self).setUp()
     ext_info = plugins.LoadedExtensionInfo()
     self.Controller = config_drive.ConfigDriveController(
         extension_info=ext_info)
     fakes.stub_out_networking(self.stubs)
     fakes.stub_out_rate_limiting(self.stubs)
     fake.stub_out_image_service(self.stubs)
 def _set_up_controller(self):
     ext_info = plugins.LoadedExtensionInfo()
     self.controller = servers_v21.ServersController(
         extension_info=ext_info)
     CONF.set_override('extensions_blacklist', 'os-availability-zone',
                       'osapi_v3')
     self.no_availability_zone_controller = servers_v21.ServersController(
         extension_info=ext_info)
 def test_create_instance_both_bdm_formats(self):
     ext_info = plugins.LoadedExtensionInfo()
     CONF.set_override('extensions_blacklist', '', 'osapi_v3')
     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)
Exemple #9
0
 def setUp(self):
     super(TestServerCreateRequestXMLDeserializer, self).setUp()
     ext_info = plugins.LoadedExtensionInfo()
     controller = servers.ServersController(extension_info=ext_info)
     self.create_deserializer = servers.CreateDeserializer(controller)
     self.deserializer = servers.ActionDeserializer(controller)
     CONF.set_override('extensions_blacklist', 'os-disk-config', 'osapi_v3')
     no_disk_config_controller = servers.ServersController(
         extension_info=ext_info)
     self.create_no_disk_config_deserializer =\
         servers.CreateDeserializer(no_disk_config_controller)
     self.no_disk_config_deserializer =\
         servers.ActionDeserializer(no_disk_config_controller)
    def setUp(self):
        super(AccessIPsExtAPIValidationTest, self).setUp()

        def fake_save(context, **kwargs):
            pass

        def fake_rebuild(*args, **kwargs):
            pass

        ext_info = plugins.LoadedExtensionInfo()
        self.controller = servers.ServersController(extension_info=ext_info)
        fake.stub_out_image_service(self.stubs)
        self.stubs.Set(db, 'instance_get_by_uuid', fakes.fake_instance_get())
        self.stubs.Set(instance_obj.Instance, 'save', fake_save)
        self.stubs.Set(compute_api.API, 'rebuild', fake_rebuild)
    def setUp(self):
        super(BlockDeviceMappingTest, self).setUp()

        ext_info = plugins.LoadedExtensionInfo()
        self.controller = servers.ServersController(extension_info=ext_info)

        CONF.set_override('extensions_blacklist', 'os-block-device-mapping',
                          'osapi_v3')
        self.no_volumes_controller = servers.ServersController(
            extension_info=ext_info)
        CONF.set_override('extensions_blacklist', '', 'osapi_v3')

        fake.stub_out_image_service(self.stubs)

        self.bdm = [{
            'no_device': None,
            'source_type': 'volume',
            'destination_type': 'volume',
            'uuid': 'fake',
            'device_name': 'vda',
            'delete_on_termination': False,
        }]
Exemple #12
0
 def setUp(self):
     super(TestServerRebuildRequestXMLDeserializer, self).setUp()
     ext_info = plugins.LoadedExtensionInfo()
     controller = servers.ServersController(extension_info=ext_info)
     self.deserializer = servers.ActionDeserializer(controller)
     self.create_deserializer = servers.CreateDeserializer(controller)
Exemple #13
0
 def test_check_bad_extension(self):
     extension_info = plugins.LoadedExtensionInfo()
     self.assertFalse(extension_info._check_extension(fake_bad_extension))
Exemple #14
0
 def setUp(self):
     super(ExtensionInfoTest, self).setUp()
     ext_info = plugins.LoadedExtensionInfo()
     ext_info.extensions = fake_extensions
     self.controller = extension_info.ExtensionInfoController(ext_info)
 def setUp(self):
     super(TestServerCreateRequestXMLDeserializer, self).setUp()
     ext_info = plugins.LoadedExtensionInfo()
     servers_controller = servers.ServersController(extension_info=ext_info)
     self.deserializer = servers.CreateDeserializer(servers_controller)
Exemple #16
0
 def _set_up_controller(self):
     ext_info = plugins.LoadedExtensionInfo()
     CONF.set_override('extensions_blacklist', 'os-scheduler-hints',
                       'osapi_v3')
     self.no_scheduler_hints_controller = servers_v21.ServersController(
         extension_info=ext_info)
 def setUp(self):
     super(ExtensionInfoV21Test, self).setUp()
     ext_info = plugins.LoadedExtensionInfo()
     ext_info.extensions = simulated_extension_list
     self.controller = extension_info.ExtensionInfoController(ext_info)
     self.stubs.Set(policy, 'enforce', fake_policy_enforce)
Exemple #18
0
 def setUp(self):
     super(ExtensionInfoPolicyEnforcementV21, self).setUp()
     ext_info = plugins.LoadedExtensionInfo()
     ext_info.extensions = fake_extensions
     self.controller = extension_info.ExtensionInfoController(ext_info)
     self.req = fakes.HTTPRequest.blank('')
Exemple #19
0
 def setUp(self):
     super(QuotaClassesPolicyEnforcementV21, self).setUp()
     ext_info = plugins.LoadedExtensionInfo()
     self.controller = quota_classes_v21.QuotaClassSetsController(
         extension_info=ext_info)
     self.req = fakes.HTTPRequest.blank('')
Exemple #20
0
    def setUp(self):
        """Shared implementation for tests below that create instance."""
        super(ServersControllerCreateTest, 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 = plugins.LoadedExtensionInfo()
        self.controller = servers.ServersController(extension_info=ext_info)
        CONF.set_override('extensions_blacklist', 'os-disk-config', 'osapi_v3')
        self.no_disk_config_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/v3/os-images/%s' % image_uuid
            self.instance_cache_num += 1
            instance = {
                'id': self.instance_cache_num,
                'display_name': inst['display_name'] or 'test',
                'uuid': MANUAL_INSTANCE_UUID,
                'instance_type': dict(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": None,
                "progress": 0,
                "fixed_ips": [],
                "task_state": "",
                "vm_state": "",
            }

            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 rpc_call_wrapper(context, topic, msg, timeout=None):
            """Stub out the scheduler creating the instance entry."""
            if (topic == CONF.scheduler_topic
                    and msg['method'] == 'run_instance'):
                request_spec = msg['args']['request_spec']
                num_instances = request_spec.get('num_instances', 1)
                instances = []
                for x in xrange(num_instances):
                    instances.append(
                        instance_create(context,
                                        request_spec['instance_properties']))
                return instances

        def fake_method(*args, **kwargs):
            pass

        def queue_get_for(context, *args):
            return 'network_topic'

        def return_security_group(context, instance_id, security_group_id):
            pass

        fakes.stub_out_rate_limiting(self.stubs)
        fakes.stub_out_key_pair_funcs(self.stubs)
        fake.stub_out_image_service(self.stubs)
        fakes.stub_out_nw_api(self.stubs)
        self.stubs.Set(db, 'instance_add_security_group',
                       return_security_group)
        self.stubs.Set(db, 'instance_system_metadata_update', fake_method)
        self.stubs.Set(db, 'instance_get', instance_get)
        self.stubs.Set(db, 'instance_update', instance_update)
        self.stubs.Set(nova.openstack.common.rpc, 'cast', fake_method)
        self.stubs.Set(nova.openstack.common.rpc, 'call', rpc_call_wrapper)

        return_server = fakes.fake_instance_get()
        return_servers = fakes.fake_instance_get_all_by_filters()
        self.stubs.Set(db, 'instance_get_all_by_filters', return_servers)
        self.stubs.Set(db, 'instance_get_by_uuid', return_server)
        self.stubs.Set(db, 'instance_add_security_group',
                       return_security_group)
Exemple #21
0
 def _get_controller(self):
     ext_info = plugins.LoadedExtensionInfo()
     return self.servers.ServersController(extension_info=ext_info)
Exemple #22
0
    def setUp(self):
        """Shared implementation for tests below that create instance."""
        super(ServersControllerCreateTest, 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 = plugins.LoadedExtensionInfo()
        self.controller = servers.ServersController(extension_info=ext_info)
        CONF.set_override('extensions_blacklist', 'os-personality', 'osapi_v3')
        self.no_personality_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': dict(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),
                    "config_drive": None,
                    "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):
            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 queue_get_for(context, *args):
            return 'network_topic'

        fakes.stub_out_rate_limiting(self.stubs)
        fakes.stub_out_key_pair_funcs(self.stubs)
        fake.stub_out_image_service(self.stubs)
        fakes.stub_out_nw_api(self.stubs)
        self.stubs.Set(uuid, 'uuid4', fake_gen_uuid)
        self.stubs.Set(db, 'instance_add_security_group',
                       return_security_group)
        self.stubs.Set(db, 'project_get_networks', project_get_networks)
        self.stubs.Set(db, 'instance_create', instance_create)
        self.stubs.Set(db, 'instance_system_metadata_update', fake_method)
        self.stubs.Set(db, 'instance_get', instance_get)
        self.stubs.Set(db, 'instance_update', instance_update)
        self.stubs.Set(rpc, 'cast', fake_method)
        self.stubs.Set(db, 'instance_update_and_get_original', server_update)
        self.stubs.Set(rpc, 'queue_get_for', queue_get_for)
        self.stubs.Set(manager.VlanManager, 'allocate_fixed_ip', fake_method)

        return_server = fakes.fake_instance_get()
        return_servers = fakes.fake_instance_get_all_by_filters()
        self.stubs.Set(db, 'instance_get_all_by_filters', return_servers)
        self.stubs.Set(db, 'instance_get_by_uuid', return_server)
        self.stubs.Set(db, 'instance_add_security_group',
                       return_security_group)
        self.stubs.Set(db, 'instance_update_and_get_original', instance_update)
Exemple #23
0
 def __init__(self, init_only=None):
     self._loaded_extension_info = plugins.LoadedExtensionInfo()
     super(APIRouterV3, self).__init__(init_only)
 def _set_up_controller(self):
     ext_info = plugins.LoadedExtensionInfo()
     self.controller = servers_v21.ServersController(
                         extension_info=ext_info)
Exemple #25
0
 def _setup(self):
     ext_info = plugins.LoadedExtensionInfo()
     self.controller = quota_classes_v21.QuotaClassSetsController(
         extension_info=ext_info)