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)
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)
def test_state_public_api_signatures(self): self.assertPublicAPISignatures( host_manager.HostState("dummy", "dummy"), ironic_host_manager.IronicNodeState("dummy", "dummy"))
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)