Exemple #1
0
    def test_consume_identical_instance_from_compute(self):
        host = ironic_host_manager.IronicNodeState("fakehost", "fakenode")
        host.update(compute=self.compute_node)

        self.assertIsNone(host.updated)
        spec_obj = objects.RequestSpec(flavor=objects.Flavor(root_gb=10,
                                                             ephemeral_gb=0,
                                                             memory_mb=1024,
                                                             vcpus=1),
                                       uuid='fake-uuid')
        host.consume_from_request(spec_obj)

        self.assertEqual(1, host.vcpus_used)
        self.assertEqual(0, host.free_ram_mb)
        self.assertEqual(0, host.free_disk_mb)
        self.assertIsNotNone(host.updated)
Exemple #2
0
    def test_update_from_compute_node(self):
        host = ironic_host_manager.IronicNodeState("fakehost", "fakenode",
                                                   uuids.cell)
        host.update(compute=self.compute_node)

        self.assertEqual(1024, host.free_ram_mb)
        self.assertEqual(1024, host.total_usable_ram_mb)
        self.assertEqual(10240, host.free_disk_mb)
        self.assertEqual(1, host.vcpus_total)
        self.assertEqual(0, host.vcpus_used)
        self.assertEqual(self.compute_node.stats, host.stats)
        self.assertEqual('ironic', host.hypervisor_type)
        self.assertEqual(1, host.hypervisor_version)
        self.assertEqual('fake_host', host.hypervisor_hostname)
        # Make sure the uuid is set since that's needed for the allocation
        # requests (claims to Placement) made in the FilterScheduler.
        self.assertEqual(self.compute_node.uuid, host.uuid)
Exemple #3
0
 def test_state_public_api_signatures(self):
     self.assertPublicAPISignatures(
         host_manager.HostState("dummy", "dummy"),
         ironic_host_manager.IronicNodeState("dummy", "dummy"))
Exemple #4
0
 def host_state_cls(self, host, node, **kwargs):
     compute = kwargs.get('compute')
     if compute and compute.get('cpu_info') == 'baremetal cpu':
         return ironic_host_manager.IronicNodeState(host, node, **kwargs)
     else:
         return HuaweiHostState(host, node, **kwargs)