コード例 #1
0
 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)
コード例 #2
0
 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)
コード例 #3
0
    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)
コード例 #4
0
    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')
コード例 #5
0
 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)
コード例 #6
0
    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)