Example #1
0
    def test_get_hosts(self):
        instance1 = tests_utils.get_test_instance(self.context,
                flavor=flavors.get_default_flavor(), obj=True)
        instance1.host = 'hostA'
        instance1.save()
        instance2 = tests_utils.get_test_instance(self.context,
                flavor=flavors.get_default_flavor(), obj=True)
        instance2.host = 'hostB'
        instance2.save()
        instance3 = tests_utils.get_test_instance(self.context,
                flavor=flavors.get_default_flavor(), obj=True)
        instance3.host = 'hostB'
        instance3.save()

        instance_ids = [instance1.uuid, instance2.uuid, instance3.uuid]
        values = self._get_default_values()
        group = self._create_instance_group(self.context, values)
        instance_group.InstanceGroup.add_members(self.context, group.uuid,
                instance_ids)

        group = instance_group.InstanceGroup.get_by_uuid(self.context,
                group.uuid)
        hosts = group.get_hosts(self.context)
        self.assertEqual(2, len(hosts))
        self.assertIn('hostA', hosts)
        self.assertIn('hostB', hosts)
        hosts = group.get_hosts(self.context, exclude=[instance1.uuid])
        self.assertEqual(1, len(hosts))
        self.assertIn('hostB', hosts)
Example #2
0
    def test_count_members_by_user(self):
        instance1 = tests_utils.get_test_instance(self.context,
                flavor=flavors.get_default_flavor(), obj=True)
        instance1.user_id = 'user1'
        instance1.save()
        instance2 = tests_utils.get_test_instance(self.context,
                flavor=flavors.get_default_flavor(), obj=True)
        instance2.user_id = 'user2'
        instance2.save()
        instance3 = tests_utils.get_test_instance(self.context,
                flavor=flavors.get_default_flavor(), obj=True)
        instance3.user_id = 'user2'
        instance3.save()

        instance_ids = [instance1.uuid, instance2.uuid, instance3.uuid]
        values = self._get_default_values()
        group = self._create_instance_group(self.context, values)
        instance_group.InstanceGroup.add_members(self.context, group.uuid,
                instance_ids)

        group = instance_group.InstanceGroup.get_by_uuid(self.context,
                group.uuid)
        count_user1 = group.count_members_by_user(self.context, 'user1')
        count_user2 = group.count_members_by_user(self.context, 'user2')
        count_user3 = group.count_members_by_user(self.context, 'user3')
        self.assertEqual(1, count_user1)
        self.assertEqual(2, count_user2)
        self.assertEqual(0, count_user3)
    def test_count_members_by_user(self):
        instance1 = tests_utils.get_test_instance(
            self.context, flavor=flavors.get_default_flavor(), obj=True)
        instance1.user_id = 'user1'
        instance1.save()
        instance2 = tests_utils.get_test_instance(
            self.context, flavor=flavors.get_default_flavor(), obj=True)
        instance2.user_id = 'user2'
        instance2.save()
        instance3 = tests_utils.get_test_instance(
            self.context, flavor=flavors.get_default_flavor(), obj=True)
        instance3.user_id = 'user2'
        instance3.save()

        instance_ids = [instance1.uuid, instance2.uuid, instance3.uuid]
        values = self._get_default_values()
        group = self._create_instance_group(self.context, values)
        instance_group.InstanceGroup.add_members(self.context, group.uuid,
                                                 instance_ids)

        group = instance_group.InstanceGroup.get_by_uuid(
            self.context, group.uuid)
        count_user1 = group.count_members_by_user(self.context, 'user1')
        count_user2 = group.count_members_by_user(self.context, 'user2')
        count_user3 = group.count_members_by_user(self.context, 'user3')
        self.assertEqual(1, count_user1)
        self.assertEqual(2, count_user2)
        self.assertEqual(0, count_user3)
Example #4
0
    def test_get_hosts(self):
        instance1 = tests_utils.get_test_instance(self.context,
                flavor=flavors.get_default_flavor(), obj=True)
        instance1.host = 'hostA'
        instance1.save()
        instance2 = tests_utils.get_test_instance(self.context,
                flavor=flavors.get_default_flavor(), obj=True)
        instance2.host = 'hostB'
        instance2.save()
        instance3 = tests_utils.get_test_instance(self.context,
                flavor=flavors.get_default_flavor(), obj=True)
        instance3.host = 'hostB'
        instance3.save()

        instance_ids = [instance1.uuid, instance2.uuid, instance3.uuid]
        values = self._get_default_values()
        group = self._create_instance_group(self.context, values)
        instance_group.InstanceGroup.add_members(self.context, group.uuid,
                instance_ids)

        group = instance_group.InstanceGroup.get_by_uuid(self.context,
                group.uuid)
        hosts = group.get_hosts(self.context)
        self.assertEqual(2, len(hosts))
        self.assertIn('hostA', hosts)
        self.assertIn('hostB', hosts)
        hosts = group.get_hosts(self.context, exclude=[instance1.uuid])
        self.assertEqual(1, len(hosts))
        self.assertIn('hostB', hosts)
Example #5
0
    def _create_node(self, node_info=None, nic_info=None, ephemeral=True):
        result = {}
        if node_info is None:
            node_info = bm_db_utils.new_bm_node(
                id=123,
                service_host='test_host',
                cpus=2,
                memory_mb=2048,
            )
        if nic_info is None:
            nic_info = [
                {
                    'address': '01:23:45:67:89:01',
                    'datapath_id': '0x1',
                    'port_no': 1
                },
                {
                    'address': '01:23:45:67:89:02',
                    'datapath_id': '0x2',
                    'port_no': 2
                },
            ]
        result['node_info'] = node_info
        result['nic_info'] = nic_info
        result['node'] = db.bm_node_create(self.context, node_info)

        for nic in nic_info:
            db.bm_interface_create(
                self.context,
                result['node']['id'],
                nic['address'],
                nic['datapath_id'],
                nic['port_no'],
            )
        if ephemeral:
            result['instance'] = utils.get_test_instance()
        else:
            flavor = utils.get_test_flavor(options={'ephemeral_gb': 0})
            result['instance'] = utils.get_test_instance(flavor=flavor)
        result['instance']['node'] = result['node']['uuid']
        result['spawn_params'] = dict(
            admin_password='******',
            block_device_info=None,
            context=self.context,
            image_meta=utils.get_test_image_info(None, result['instance']),
            injected_files=[('/fake/path', 'hello world')],
            instance=result['instance'],
            network_info=utils.get_test_network_info(),
        )
        result['destroy_params'] = dict(
            context=self.context,
            instance=result['instance'],
            network_info=result['spawn_params']['network_info'],
            block_device_info=result['spawn_params']['block_device_info'],
        )

        return result
Example #6
0
    def _create_node(self, node_info=None, nic_info=None, ephemeral=True):
        result = {}
        if node_info is None:
            node_info = bm_db_utils.new_bm_node(
                            id=123,
                            service_host='test_host',
                            cpus=2,
                            memory_mb=2048,
                        )
        if nic_info is None:
            nic_info = [
                    {'address': '01:23:45:67:89:01', 'datapath_id': '0x1',
                        'port_no': 1},
                    {'address': '01:23:45:67:89:02', 'datapath_id': '0x2',
                        'port_no': 2},
                ]
        result['node_info'] = node_info
        result['nic_info'] = nic_info
        result['node'] = db.bm_node_create(self.context, node_info)

        for nic in nic_info:
            db.bm_interface_create(
                                    self.context,
                                    result['node']['id'],
                                    nic['address'],
                                    nic['datapath_id'],
                                    nic['port_no'],
                )
        if ephemeral:
            result['instance'] = utils.get_test_instance()
        else:
            flavor = utils.get_test_instance_type(options={'ephemeral_gb': 0})
            result['instance'] = utils.get_test_instance(instance_type=flavor)
        result['instance']['node'] = result['node']['uuid']
        result['spawn_params'] = dict(
                admin_password='******',
                block_device_info=None,
                context=self.context,
                image_meta=utils.get_test_image_info(
                                None, result['instance']),
                injected_files=[('/fake/path', 'hello world')],
                instance=result['instance'],
                network_info=utils.get_test_network_info(),
            )
        result['destroy_params'] = dict(
                context=self.context,
                instance=result['instance'],
                network_info=result['spawn_params']['network_info'],
                block_device_info=result['spawn_params']['block_device_info'],
            )

        return result
 def test_create_container(self, image_info=None, instance_href=None):
     if instance_href is None:
         instance_href = utils.get_test_instance()
     instance_href = utils.get_test_instance()
     if image_info is None:
         image_info = utils.get_test_image_info(None, instance_href)
         image_info['disk_format'] = 'raw'
         image_info['container_format'] = 'docker'
     self.connection.spawn(self.context, instance_href, image_info,
                           'fake_files', 'fake_password')
     self._assert_cpu_shares(instance_href)
     self.assertEqual(self.mock_client.name,
                      "nova-{0}".format(instance_href['uuid']))
Example #8
0
 def test_create_container(self, image_info=None, instance_href=None):
     if instance_href is None:
         instance_href = utils.get_test_instance()
     instance_href = utils.get_test_instance()
     if image_info is None:
         image_info = utils.get_test_image_info(None, instance_href)
         image_info['disk_format'] = 'raw'
         image_info['container_format'] = 'docker'
     self.connection.spawn(self.context, instance_href, image_info,
                           'fake_files', 'fake_password')
     self._assert_cpu_shares(instance_href)
     self.assertEqual(self.mock_client.name, "nova-{0}".format(
         instance_href['uuid']))
Example #9
0
    def test_destroy_container(self):
        def fake_find_container_by_name(container_name):
            return {"id": "fake_id"}

        self.stubs.Set(self.connection, "find_container_by_name", fake_find_container_by_name)
        instance_href = utils.get_test_instance()
        self.connection.destroy(self.context, instance_href, "fake_networkinfo")
Example #10
0
    def setUp(self):
        super(ServerActionsSampleJsonTest, self).setUp()
        self.actions = fake_server_actions.FAKE_ACTIONS
        self.events = fake_server_actions.FAKE_EVENTS
        self.instance = test_utils.get_test_instance()

        def fake_instance_action_get_by_request_id(context, uuid, request_id):
            return copy.deepcopy(self.actions[uuid][request_id])

        def fake_server_actions_get(context, uuid):
            return [
                copy.deepcopy(value)
                for value in self.actions[uuid].itervalues()
            ]

        def fake_instance_action_events_get(context, action_id):
            return copy.deepcopy(self.events[action_id])

        def fake_instance_get_by_uuid(context, instance_id):
            return self.instance

        def fake_get(self, context, instance_uuid, **kwargs):
            return {'uuid': instance_uuid}

        self.stubs.Set(db, 'action_get_by_request_id',
                       fake_instance_action_get_by_request_id)
        self.stubs.Set(db, 'actions_get', fake_server_actions_get)
        self.stubs.Set(db, 'action_events_get',
                       fake_instance_action_events_get)
        self.stubs.Set(db, 'instance_get_by_uuid', fake_instance_get_by_uuid)
        self.stubs.Set(compute_api.API, 'get', fake_get)
Example #11
0
 def test_create_container(self, image_info=None):
     instance_href = utils.get_test_instance()
     if image_info is None:
         image_info = utils.get_test_image_info(None, instance_href)
         image_info["disk_format"] = "raw"
         image_info["container_format"] = "docker"
     self.connection.spawn(self.context, instance_href, image_info, "fake_files", "fake_password")
Example #12
0
 def test_snapshot_not_running(self):
     instance_ref = test_utils.get_test_instance()
     img_ref = self.image_service.create(self.ctxt, {'name': 'snap-1'})
     self.assertRaises(exception.InstanceNotRunning,
                       self.connection.snapshot,
                       self.ctxt, instance_ref, img_ref['id'],
                       lambda *args, **kwargs: None)
Example #13
0
 def test_inject_file(self):
     instance_ref = test_utils.get_test_instance()
     network_info = test_utils.get_test_network_info()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     self.connection.inject_file(instance_ref,
                                 base64.b64encode('/testfile'),
                                 base64.b64encode('testcontents'))
Example #14
0
    def setUp(self):
        super(InstanceActionsSampleJsonTest, self).setUp()
        self.actions = fake_instance_actions.FAKE_ACTIONS
        self.events = fake_instance_actions.FAKE_EVENTS
        self.instance = test_utils.get_test_instance()

        def fake_instance_action_get_by_request_id(context, uuid, request_id):
            return copy.deepcopy(self.actions[uuid][request_id])

        def fake_instance_actions_get(context, uuid):
            return [copy.deepcopy(value) for value in
                    self.actions[uuid].itervalues()]

        def fake_instance_action_events_get(context, action_id):
            return copy.deepcopy(self.events[action_id])

        def fake_instance_get_by_uuid(context, instance_id):
            return self.instance

        def fake_get(self, context, instance_uuid):
            return {'uuid': instance_uuid}

        self.stubs.Set(db, 'action_get_by_request_id',
                       fake_instance_action_get_by_request_id)
        self.stubs.Set(db, 'actions_get', fake_instance_actions_get)
        self.stubs.Set(db, 'action_events_get',
                       fake_instance_action_events_get)
        self.stubs.Set(db, 'instance_get_by_uuid', fake_instance_get_by_uuid)
        self.stubs.Set(compute_api.API, 'get', fake_get)
Example #15
0
    def _create_node(self, node_info=None, nic_info=None):
        result = {}
        if node_info is None:
            node_info = bm_db_utils.new_bm_node(id=123, service_host="test_host", cpus=2, memory_mb=2048)
        if nic_info is None:
            nic_info = [
                {"address": "01:23:45:67:89:01", "datapath_id": "0x1", "port_no": 1},
                {"address": "01:23:45:67:89:02", "datapath_id": "0x2", "port_no": 2},
            ]
        result["node_info"] = node_info
        result["nic_info"] = nic_info
        result["node"] = db.bm_node_create(self.context, node_info)

        for nic in nic_info:
            db.bm_interface_create(
                self.context, result["node"]["id"], nic["address"], nic["datapath_id"], nic["port_no"]
            )
        result["instance"] = utils.get_test_instance()
        result["instance"]["node"] = result["node"]["uuid"]
        result["spawn_params"] = dict(
            admin_password="******",
            block_device_info=None,
            context=self.context,
            image_meta=utils.get_test_image_info(None, result["instance"]),
            injected_files=[("/fake/path", "hello world")],
            instance=result["instance"],
            network_info=utils.get_test_network_info(),
        )
        result["destroy_params"] = dict(
            instance=result["instance"],
            network_info=result["spawn_params"]["network_info"],
            block_device_info=result["spawn_params"]["block_device_info"],
        )

        return result
Example #16
0
 def test_unrescue_rescued_instance(self):
     instance_ref = test_utils.get_test_instance()
     network_info = test_utils.get_test_network_info()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     self.connection.rescue(self.ctxt, instance_ref,
                            lambda x: None, network_info)
     self.connection.unrescue(instance_ref, lambda x: None, network_info)
 def test_create_container_empty_cmd(self, image_info=None,
                                     instance_href=None,
                                     network_info=None):
     if instance_href is None:
         instance_href = utils.get_test_instance()
     instance_href = utils.get_test_instance()
     if image_info is None:
         image_info = utils.get_test_image_info(None, instance_href)
         image_info['disk_format'] = 'raw'
         image_info['container_format'] = 'docker'
     with mock.patch.object(self.mock_client, 'create_container') as mc:
         self.connection.spawn(self.context, instance_href, image_info,
                               'fake_files', 'fake_password',
                               network_info=network_info)
         command = mc.call_args[1]['command']
         self.assertEqual(['sh'], command)
Example #18
0
 def test_inject_file(self):
     instance_ref = test_utils.get_test_instance()
     network_info = test_utils.get_test_network_info()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     self.connection.inject_file(instance_ref,
                                 base64.b64encode('/testfile'),
                                 base64.b64encode('testcontents'))
Example #19
0
 def _get_running_instance(self):
     instance_ref = test_utils.get_test_instance()
     network_info = test_utils.get_test_network_info()
     network_info[0]["network"]["subnets"][0]["meta"]["dhcp_server"] = "1.1.1.1"
     image_info = test_utils.get_test_image_info(None, instance_ref)
     self.connection.spawn(self.ctxt, instance_ref, image_info, [], "herp", network_info=network_info)
     return instance_ref, network_info
Example #20
0
 def _get_running_instance(self):
     instance_ref = test_utils.get_test_instance()
     network_info = test_utils.get_test_network_info()
     image_info = test_utils.get_test_image_info(None, instance_ref)
     self.connection.spawn(self.ctxt, instance_ref, image_info,
                           [], 'herp', network_info=network_info)
     return instance_ref, network_info
Example #21
0
 def test_unrescue_rescued_instance(self):
     instance_ref = test_utils.get_test_instance()
     network_info = test_utils.get_test_network_info()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     self.connection.rescue(self.ctxt, instance_ref, lambda x: None,
                            network_info)
     self.connection.unrescue(instance_ref, lambda x: None, network_info)
Example #22
0
 def _get_running_instance(self):
     instance_ref = test_utils.get_test_instance()
     network_info = test_utils.get_test_network_info()
     image_info = test_utils.get_test_image_info(None, instance_ref)
     self.connection.spawn(self.ctxt, instance_ref, image_info,
                           [], 'herp', network_info=network_info)
     return instance_ref, network_info
Example #23
0
 def test_snapshot_not_running(self):
     instance_ref = test_utils.get_test_instance()
     img_ref = self.image_service.create(self.ctxt, {'name': 'snap-1'})
     self.assertRaises(exception.InstanceNotRunning,
                       self.connection.snapshot,
                       self.ctxt, instance_ref, img_ref['id'],
                       lambda *args, **kwargs: None)
    def setUp(self):
        super(BareMetalVPDTestCase, self).setUp()
        self.flags(**COMMON_FLAGS)
        self.flags(**BAREMETAL_FLAGS)

        fake_image.stub_out_image_service(self.stubs)
        self.context = utils.get_test_admin_context()
        self.test_block_device_info = None,
        self.instance = utils.get_test_instance()
        self.test_network_info = utils.get_test_network_info(),
        self.node_info = bm_db_utils.new_bm_node(
            id=123,
            service_host='test_host',
            cpus=2,
            memory_mb=2048,
            prov_mac_address='aa:bb:cc:dd:ee:ff',
        )
        self.nic_info = [
            {
                'address': '11:11:11:11:11:11',
                'datapath_id': '0x1',
                'port_no': 1
            },
            {
                'address': '22:22:22:22:22:22',
                'datapath_id': '0x2',
                'port_no': 2
            },
        ]
        self.addCleanup(fake_image.FakeImageService_reset)
Example #25
0
    def setUp(self):
        super(BareMetalPXETestCase, self).setUp()
        self.flags(**COMMON_FLAGS)
        self.flags(**BAREMETAL_FLAGS)
        self.driver = pxe.PXE()

        fake_image.stub_out_image_service(self.stubs)
        self.addCleanup(fake_image.FakeImageService_reset)
        self.context = utils.get_test_admin_context()
        self.test_block_device_info = None,
        self.instance = utils.get_test_instance()
        self.test_network_info = utils.get_test_network_info(),
        self.node_info = bm_db_utils.new_bm_node(
                id=123,
                service_host='test_host',
                cpus=2,
                memory_mb=2048,
                prov_mac_address='11:11:11:11:11:11',
            )
        self.nic_info = [
                {'address': '22:22:22:22:22:22', 'datapath_id': '0x1',
                    'port_no': 1},
                {'address': '33:33:33:33:33:33', 'datapath_id': '0x2',
                    'port_no': 2},
            ]
Example #26
0
 def test_create_container_wrong_image(self):
     instance_href = utils.get_test_instance()
     image_info = utils.get_test_image_info(None, instance_href)
     image_info['disk_format'] = 'raw'
     image_info['container_format'] = 'invalid_format'
     self.assertRaises(exception.InstanceDeployFailure,
                       self.test_create_container, image_info)
Example #27
0
    def setUp(self):
        super(BareMetalTileraTestCase, self).setUp()
        self.flags(**COMMON_FLAGS)
        self.flags(**BAREMETAL_FLAGS)
        self.driver = tilera.Tilera(fake_virt.FakeVirtAPI())

        fake_image.stub_out_image_service(self.stubs)
        self.addCleanup(fake_image.FakeImageService_reset)
        self.context = utils.get_test_admin_context()
        self.test_block_device_info = None,
        self.instance = utils.get_test_instance()
        self.test_network_info = utils.get_test_network_info()
        self.node_info = bm_db_utils.new_bm_node(
            service_host='test_host',
            cpus=4,
            memory_mb=2048,
        )
        self.nic_info = [
            {
                'address': '22:22:22:22:22:22',
                'datapath_id': '0x1',
                'port_no': 1
            },
            {
                'address': '33:33:33:33:33:33',
                'datapath_id': '0x2',
                'port_no': 2
            },
        ]
Example #28
0
 def test_destroy_instance(self):
     instance_ref = test_utils.get_test_instance()
     network_info = test_utils.get_test_network_info()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     self.assertIn(instance_ref['name'], self.connection.list_instances())
     self.connection.destroy(instance_ref, network_info)
     self.assertNotIn(instance_ref['name'],
                      self.connection.list_instances())
Example #29
0
 def test_attach_detach_volume(self):
     network_info = test_utils.get_test_network_info()
     instance_ref = test_utils.get_test_instance()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     self.connection.attach_volume(instance_ref['name'], '/dev/null',
                                   '/mnt/nova/something')
     self.connection.detach_volume(instance_ref['name'],
                                   '/mnt/nova/something')
Example #30
0
 def test_create_container(self, image_info=None):
     instance_href = utils.get_test_instance()
     if image_info is None:
         image_info = utils.get_test_image_info(None, instance_href)
         image_info['disk_format'] = 'raw'
         image_info['container_format'] = 'docker'
     self.connection.spawn(self.context, instance_href, image_info,
                           'fake_files', 'fake_password')
Example #31
0
 def test_get_vnc_console(self):
     network_info = test_utils.get_test_network_info()
     instance_ref = test_utils.get_test_instance()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     vnc_console = self.connection.get_vnc_console(instance_ref)
     self.assertIn('token', vnc_console)
     self.assertIn('host', vnc_console)
     self.assertIn('port', vnc_console)
Example #32
0
 def test_get_console_pool_info(self):
     network_info = test_utils.get_test_network_info()
     instance_ref = test_utils.get_test_instance()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     console_pool = self.connection.get_console_pool_info(instance_ref)
     self.assertIn('address', console_pool)
     self.assertIn('username', console_pool)
     self.assertIn('password', console_pool)
 def test_create_container_wrong_image(self):
     instance_href = utils.get_test_instance()
     image_info = utils.get_test_image_info(None, instance_href)
     image_info['disk_format'] = 'raw'
     image_info['container_format'] = 'invalid_format'
     self.assertRaises(exception.InstanceDeployFailure,
                       self.test_create_container,
                       image_info, instance_href)
Example #34
0
 def test_create_container(self, image_info=None):
     instance_href = utils.get_test_instance()
     if image_info is None:
         image_info = utils.get_test_image_info(None, instance_href)
         image_info['disk_format'] = 'raw'
         image_info['container_format'] = 'docker'
     self.connection.spawn(self.context, instance_href, image_info,
                           'fake_files', 'fake_password')
Example #35
0
 def test_get_console_pool_info(self):
     network_info = test_utils.get_test_network_info()
     instance_ref = test_utils.get_test_instance()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     console_pool = self.connection.get_console_pool_info(instance_ref)
     self.assertIn('address', console_pool)
     self.assertIn('username', console_pool)
     self.assertIn('password', console_pool)
Example #36
0
    def test_get_hosts_with_some_none(self):
        instance1 = tests_utils.get_test_instance(self.context, flavor=flavors.get_default_flavor(), obj=True)
        instance1.host = None
        instance1.save()
        instance2 = tests_utils.get_test_instance(self.context, flavor=flavors.get_default_flavor(), obj=True)
        instance2.host = "hostB"
        instance2.save()

        instance_ids = [instance1.uuid, instance2.uuid]
        values = self._get_default_values()
        group = self._create_instance_group(self.context, values)
        instance_group.InstanceGroup.add_members(self.context, group.uuid, instance_ids)

        group = instance_group.InstanceGroup.get_by_uuid(self.context, group.uuid)
        hosts = group.get_hosts(self.context)
        self.assertEqual(1, len(hosts))
        self.assertIn("hostB", hosts)
Example #37
0
 def test_attach_detach_volume(self):
     network_info = test_utils.get_test_network_info()
     instance_ref = test_utils.get_test_instance()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     self.connection.attach_volume(instance_ref['name'],
                                   '/dev/null', '/mnt/nova/something')
     self.connection.detach_volume(instance_ref['name'],
                                   '/mnt/nova/something')
Example #38
0
 def test_get_vnc_console(self):
     network_info = test_utils.get_test_network_info()
     instance_ref = test_utils.get_test_instance()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     vnc_console = self.connection.get_vnc_console(instance_ref)
     self.assertIn('token', vnc_console)
     self.assertIn('host', vnc_console)
     self.assertIn('port', vnc_console)
Example #39
0
 def test_destroy_instance(self):
     instance_ref = test_utils.get_test_instance()
     network_info = test_utils.get_test_network_info()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     self.assertIn(instance_ref['name'],
                   self.connection.list_instances())
     self.connection.destroy(instance_ref, network_info)
     self.assertNotIn(instance_ref['name'],
                      self.connection.list_instances())
Example #40
0
 def _get_running_instance(self):
     instance_ref = utils.get_test_instance()
     network_info = utils.get_test_network_info()
     network_info[0]["network"]["subnets"][0]["meta"]["dhcp_server"] = "1.1.1.1"
     image_info = utils.get_test_image_info(None, instance_ref)
     image_info["disk_format"] = "raw"
     image_info["container_format"] = "docker"
     self.connection.spawn(self.ctxt, instance_ref, image_info, [], "herp", network_info=network_info)
     return instance_ref, network_info
 def _get_running_instance(self):
     instance_ref = test_utils.get_test_instance()
     instance_ref['instance_type_id'] = self.router_type_id
     network_info = test_utils.get_test_network_info()
     image_info = test_utils.get_test_image_info(None, instance_ref)
     self.connection.spawn(self.ctxt, instance=instance_ref,
         image_meta=image_info,
         network_info=network_info)
     return instance_ref, network_info
Example #42
0
 def test_create_container_vcpus_2(self, image_info=None):
     flavor = utils.get_test_flavor(options={"name": "vcpu_2", "flavorid": "vcpu_2", "vcpus": 2})
     instance_href = utils.get_test_instance(flavor=flavor)
     if image_info is None:
         image_info = utils.get_test_image_info(None, instance_href)
         image_info["disk_format"] = "raw"
         image_info["container_format"] = "docker"
     self.connection.spawn(self.context, instance_href, image_info, "fake_files", "fake_password")
     self._assert_cpu_shares(instance_href, vcpus=2)
Example #43
0
    def test_destroy_container(self):
        def fake_find_container_by_name(container_name):
            return {'id': 'fake_id'}

        self.stubs.Set(self.connection, 'find_container_by_name',
            fake_find_container_by_name)
        instance_href = utils.get_test_instance()
        self.connection.destroy(self.context, instance_href,
                'fake_networkinfo')
Example #44
0
    def test_destroy_container(self):
        def fake_find_container_by_name(container_name):
            return {'id': 'fake_id'}

        self.stubs.Set(self.connection, 'find_container_by_name',
                       fake_find_container_by_name)
        instance_href = utils.get_test_instance()
        self.connection.destroy(self.context, instance_href,
                                'fake_networkinfo')
Example #45
0
 def _get_running_instance(self, obj=False):
     instance_ref = test_utils.get_test_instance(obj=obj)
     network_info = test_utils.get_test_network_info()
     network_info[0]['network']['subnets'][0]['meta']['dhcp_server'] = \
         '1.1.1.1'
     image_info = test_utils.get_test_image_info(None, instance_ref)
     self.connection.spawn(self.ctxt, instance_ref, image_info,
                           [], 'herp', network_info=network_info)
     return instance_ref, network_info
Example #46
0
    def test_snapshot(self, byname_mock, repopush_mock):
        # Use mix-case to test that mixed-case image names succeed.
        snapshot_name = 'tEsT-SnAp'

        expected_calls = [{
            'args': (),
            'kwargs': {
                'task_state': task_states.IMAGE_PENDING_UPLOAD
            }
        }, {
            'args': (),
            'kwargs': {
                'task_state': task_states.IMAGE_UPLOADING,
                'expected_state': task_states.IMAGE_PENDING_UPLOAD
            }
        }]
        func_call_matcher = matchers.FunctionCallMatcher(expected_calls)

        instance_ref = utils.get_test_instance()
        properties = {
            'instance_id': instance_ref['id'],
            'user_id': str(self.context.user_id)
        }
        sent_meta = {
            'name': snapshot_name,
            'is_public': False,
            'status': 'creating',
            'properties': properties
        }

        # Because the docker driver doesn't push directly into Glance, we
        # cannot check that the images are correctly configured in the
        # fake image service, but we can ensuring naming and other
        # conventions are accurate.
        image_service = nova.tests.image.fake.FakeImageService()
        recv_meta = image_service.create(context, sent_meta)

        self.connection.snapshot(self.context, instance_ref, recv_meta['id'],
                                 func_call_matcher.call)

        (repopush_calls, repopush_kwargs) = repopush_mock.call_args
        repo = repopush_calls[0]

        # Assure the image_href is correctly placed into the headers.
        headers_image_href = repopush_kwargs.get(
            'headers', {}).get('X-Meta-Glance-Image-Id')
        self.assertEqual(recv_meta['id'], headers_image_href)

        # Assure the repository name pushed into the docker registry is valid.
        self.assertIn(":" + str(self.connection._get_registry_port()) + "/",
                      repo)
        self.assertEqual(repo.count(":"), 1)
        self.assertEqual(repo.count("/"), 1)

        # That the lower-case snapshot name matches the name pushed
        image_name = repo.split("/")[1]
        self.assertEqual(snapshot_name.lower(), image_name)
Example #47
0
 def test_detach_volume(self):
     connection_info = {'_fake_connection_info': None}
     instance = utils.get_test_instance()
     mountpoint = '/dev/sdd'
     self.mox.StubOutWithMock(self.driver.volume_driver, 'detach_volume')
     self.driver.volume_driver.detach_volume(connection_info, instance,
                                             mountpoint)
     self.mox.ReplayAll()
     self.driver.detach_volume(connection_info, instance, mountpoint)
Example #48
0
    def test_swap_not_zero(self):
        # override swap to 0
        instance_type = utils.get_test_instance_type(self.context)
        instance_type['swap'] = 0
        self.instance = utils.get_test_instance(self.context, instance_type)

        sizes = tilera.get_partition_sizes(self.instance)
        self.assertEqual(sizes[0], 40960)
        self.assertEqual(sizes[1], 1)
Example #49
0
 def _get_running_instance(self, obj=False):
     instance_ref = test_utils.get_test_instance(obj=obj)
     network_info = test_utils.get_test_network_info()
     network_info[0]['network']['subnets'][0]['meta']['dhcp_server'] = \
         '1.1.1.1'
     image_info = test_utils.get_test_image_info(None, instance_ref)
     self.connection.spawn(self.ctxt, instance_ref, image_info,
                           [], 'herp', network_info=network_info)
     return instance_ref, network_info
Example #50
0
    def test_swap_not_zero(self):
        # override swap to 0
        flavor = utils.get_test_flavor(self.context)
        flavor['swap'] = 0
        self.instance = utils.get_test_instance(self.context, flavor)

        sizes = tilera.get_partition_sizes(self.instance)
        self.assertEqual(sizes[0], 40960)
        self.assertEqual(sizes[1], 1)
Example #51
0
    def test_swap_not_zero(self):
        # override swap to 0
        flavor = utils.get_test_flavor(self.context)
        flavor['swap'] = 0
        self.instance = utils.get_test_instance(self.context, flavor)

        sizes = pxe.get_partition_sizes(self.instance)
        self.assertEqual(sizes[0], 40960)
        self.assertEqual(sizes[1], 1)
Example #52
0
 def test_get_info(self):
     network_info = test_utils.get_test_network_info()
     instance_ref = test_utils.get_test_instance()
     self.connection.spawn(self.ctxt, instance_ref, network_info)
     info = self.connection.get_info(instance_ref['name'])
     self.assertIn('state', info)
     self.assertIn('max_mem', info)
     self.assertIn('mem', info)
     self.assertIn('num_cpu', info)
     self.assertIn('cpu_time', info)
Example #53
0
    def test_spawn(self):
        instance_ref = test_utils.get_test_instance()
        network_info = test_utils.get_test_network_info()
        self.connection.spawn(self.ctxt, instance_ref, network_info)

        domains = self.connection.list_instances()
        self.assertIn(instance_ref['name'], domains)

        domains_details = self.connection.list_instances_detail()
        self.assertIn(instance_ref['name'], [i.name for i in domains_details])
    def test_get_image_name(self):
        instance_ref = utils.get_test_instance()
        image_info = utils.get_test_image_info(None, instance_ref)
        image_info['container_format'] = 'docker'
        image_info['name'] = 'MiXeDcAsE-image'
        repo = self.connection._get_image_name(self.context,
                                               instance_ref, image_info)

        # image_name = repo.split("/")[1]
        self.assertEqual(image_info['name'], repo)
    def test_list_instances(self):
        instance_href = utils.get_test_instance()
        image_info = utils.get_test_image_info(None, instance_href)
        image_info['disk_format'] = 'raw'
        image_info['container_format'] = 'docker'
        self.connection.spawn(self.context, instance_href, image_info,
                              'fake_files', 'fake_password')

        instances = self.connection.list_instances()
        self.assertIn(instance_href.name, instances)
    def test_get_image_name(self):
        instance_ref = utils.get_test_instance()
        image_info = utils.get_test_image_info(None, instance_ref)
        image_info['container_format'] = 'docker'
        image_info['name'] = 'MiXeDcAsE-image'
        repo = self.connection._get_image_name(self.context, instance_ref,
                                               image_info)

        # image_name = repo.split("/")[1]
        self.assertEqual(image_info['name'], repo)
 def _get_running_instance(self):
     instance_ref = test_utils.get_test_instance()
     instance_ref['instance_type_id'] = self.router_type_id
     network_info = test_utils.get_test_network_info()
     image_info = test_utils.get_test_image_info(None, instance_ref)
     self.connection.spawn(self.ctxt,
                           instance=instance_ref,
                           image_meta=image_info,
                           network_info=network_info)
     return instance_ref, network_info
Example #58
0
 def _get_running_instance(self, obj=False):
     instance_ref = utils.get_test_instance(obj=obj)
     network_info = utils.get_test_network_info()
     network_info[0]['network']['subnets'][0]['meta']['dhcp_server'] = \
         '1.1.1.1'
     image_info = utils.get_test_image_info(None, instance_ref)
     image_info['disk_format'] = 'raw'
     image_info['container_format'] = 'docker'
     self.connection.spawn(self.ctxt, jsonutils.to_primitive(instance_ref),
             image_info, [], 'herp', network_info=network_info)
     return instance_ref, network_info
Example #59
0
 def _get_running_instance(self):
     instance_ref = test_utils.get_test_instance()
     instance_ref['system_metadata'] = [
         _system_metadata('node', str(self.node_id)),
     ]
     network_info = test_utils.get_test_network_info()
     image_info = test_utils.get_test_image_info(None, instance_ref)
     self.connection.spawn(self.ctxt,
                           instance_ref,
                           image_info, [],
                           'herp',
                           network_info=network_info)
     return instance_ref, network_info