def test_getHostGuestMapping_with_hm(self): client = Mock() client.get_nodes.return_value = self.nodes() client.get_vms.return_value = self.vms() config = self.create_config(name='test', wrapper=None, type='kubevirt', owner='owner', kubeconfig='/etc/hosts', hypervisor_id='hostname') with patch.dict('os.environ', {'KUBECONFIG':'/dev/null'}): kubevirt = Virt.from_config(self.logger, config, Datastore()) kubevirt._client = client expected_result = Hypervisor( hypervisorId='minikube', name='master', guestIds=[ Guest( 'f83c5f73-5244-4bd1-90cf-02bac2dda608', kubevirt.CONFIG_TYPE, Guest.STATE_RUNNING, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '2', Hypervisor.HYPERVISOR_TYPE_FACT: 'qemu', Hypervisor.HYPERVISOR_VERSION_FACT: 'v1.9.1+a0ce1bc657', } ) result = kubevirt.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_new_status(self, get): expected_hostname = 'hostname.domainname' expected_hypervisorId = uuids['host'] expected_guestId = uuids['vm'] expected_guest_state = Guest.STATE_RUNNING get.side_effect = [ MagicMock(content=CLUSTERS_XML), MagicMock(content=HOSTS_XML), MagicMock(content=VMS_XML_STATUS), ] expected_result = Hypervisor( hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.rhevm.CONFIG_TYPE, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'qemu', Hypervisor.HYPERVISOR_VERSION_FACT: '1.2.3', Hypervisor.HYPERVISOR_CLUSTER: 'Cetus', Hypervisor.SYSTEM_UUID_FACT: 'db5a7a9f-6e33-3bfd-8129-c8010e4e1497', } ) result = self.rhevm.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_getHostGuestMapping(self): client = Mock() client.get_nodes.return_value = self.nodes() client.get_vms.return_value = self.vms() config = self.create_config(name='test', wrapper=None, type='kubevirt', owner='owner', kubeconfig='/etc/hosts') with patch.dict('os.environ', {'KUBECONFIG':'/dev/null'}): kubevirt = Virt.from_config(self.logger, config, Datastore()) kubevirt._client = client expected_result = Hypervisor( hypervisorId='52c01ad890e84b15a1be4be18bd64ecd', name='master', guestIds=[ Guest( 'f83c5f73-5244-4bd1-90cf-02bac2dda608', kubevirt.CONFIG_TYPE, Guest.STATE_RUNNING, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '2', Hypervisor.HYPERVISOR_TYPE_FACT: 'qemu', Hypervisor.HYPERVISOR_VERSION_FACT: 'v1.9.1+a0ce1bc657', } ) result = kubevirt.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_getHostGuestMapping(self, mock_client): expected_hostname = 'hostname.domainname' expected_hypervisorId = 'Fake_uuid' expected_guestId = 'guest1UUID' expected_guest_state = Guest.STATE_RUNNING fake_parent = MagicMock() fake_parent.value = 'fake_parent_id' fake_parent._type = 'ClusterComputeResource' fake_vm_id = MagicMock() fake_vm_id.value = 'guest1' fake_vm = MagicMock() fake_vm.ManagedObjectReference = [fake_vm_id] fake_vms = { 'guest1': { 'runtime.powerState': 'poweredOn', 'config.uuid': expected_guestId } } self.esx.vms = fake_vms fake_host = { 'hardware.systemInfo.uuid': expected_hypervisorId, 'config.network.dnsConfig.hostName': 'hostname', 'config.network.dnsConfig.domainName': 'domainname', 'config.product.version': '1.2.3', 'hardware.cpuInfo.numCpuPackages': '1', 'name': expected_hostname, 'parent': fake_parent, 'vm': fake_vm, } fake_hosts = {'random-host-id': fake_host} self.esx.hosts = fake_hosts fake_cluster = {'name': 'Fake_cluster_name'} self.esx.clusters = {'fake_parent_id': fake_cluster} expected_result = Hypervisor(hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.esx.CONFIG_TYPE, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'vmware', Hypervisor.HYPERVISOR_VERSION_FACT: '1.2.3', Hypervisor.HYPERVISOR_CLUSTER: 'Fake_cluster_name', }) result = self.esx.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_pending_vm(self): client = Mock() client.get_nodes.return_value = self.nodes() client.get_vms.return_value = self.pending_vms() config = self.create_config(name='test', wrapper=None, type='kubevirt', owner='owner', kubeconfig='/etc/hosts') with patch.dict('os.environ', {'KUBECONFIG': '/dev/null'}): kubevirt = Virt.from_config(self.logger, config, Datastore()) kubevirt._client = client expected_result = Hypervisor( hypervisorId='52c01ad890e84b15a1be4be18bd64ecd', name='main', guestIds=[], facts={ Hypervisor.CPU_SOCKET_FACT: '2', Hypervisor.HYPERVISOR_TYPE_FACT: 'qemu', Hypervisor.SYSTEM_UUID_FACT: '52c01ad890e84b15a1be4be18bd64ecd', Hypervisor.HYPERVISOR_VERSION_FACT: 'v1.9.1+a0ce1bc657', }) result = kubevirt.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_getHostGuestMapping(self, session): expected_hostname = 'hostname.domainname' expected_hypervisorId = '12345678-90AB-CDEF-1234-567890ABCDEF' expected_guestId = '12345678-90AB-CDEF-1234-567890ABCDEF' expected_guest_state = Guest.STATE_UNKNOWN session.return_value.post.side_effect = HyperVMock.post expected_result = Hypervisor(hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.hyperv, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'hyperv', Hypervisor.HYPERVISOR_VERSION_FACT: '0.1.2345.67890', }) result = self.hyperv.getHostGuestMapping()['hypervisors'][0] assert expected_result.toDict() == result.toDict()
def test_getHostGuestMapping(self): kube_api = Mock() kube_api.list_node.return_value = self.nodes() kubevirt_api = Mock() kubevirt_api.list_virtual_machine_instance_for_all_namespaces.return_value = self.vms( ) self.kubevirt.kube_api = kube_api self.kubevirt.kubevirt_api = kubevirt_api expected_result = Hypervisor( hypervisorId='52c01ad890e84b15a1be4be18bd64ecd', name='master', guestIds=[ Guest( 'default/win-2016', self.kubevirt.CONFIG_TYPE, Guest.STATE_RUNNING, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '2', Hypervisor.HYPERVISOR_TYPE_FACT: 'qemu', Hypervisor.HYPERVISOR_VERSION_FACT: 'v1.9.1+a0ce1bc657', }) result = self.kubevirt.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_getHostGuestMapping(self, get): expected_hostname = 'hostname.domainname' expected_hypervisorId = uuids['host'] expected_guestId = uuids['vm'] expected_guest_state = Guest.STATE_SHUTOFF get.side_effect = [ MagicMock(text=CLUSTERS_XML), MagicMock(text=HOSTS_XML), MagicMock(text=VMS_XML), ] expected_result = Hypervisor(hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.rhevm, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'qemu', Hypervisor.HYPERVISOR_VERSION_FACT: '1.2.3', }) result = self.rhevm.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_new_status(self, get): expected_hostname = 'hostname.domainname' expected_hypervisorId = uuids['host'] expected_guestId = uuids['vm'] expected_guest_state = Guest.STATE_RUNNING get.side_effect = [ MagicMock(text=CLUSTERS_XML), MagicMock(text=HOSTS_XML), MagicMock(text=VMS_XML_STATUS), ] expected_result = Hypervisor( hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.rhevm, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'qemu', Hypervisor.HYPERVISOR_VERSION_FACT: '1.2.3', } ) result = self.rhevm.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_getHostGuestMapping(self, session): expected_hostname = 'hostname.domainname' expected_hypervisorId = '12345678-90AB-CDEF-1234-567890ABCDEF' expected_guestId = '12345678-90AB-CDEF-1234-567890ABCDEF' expected_guest_state = Guest.STATE_UNKNOWN session.return_value.post.side_effect = HyperVMock.post expected_result = Hypervisor( hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.hyperv.CONFIG_TYPE, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'hyperv', Hypervisor.HYPERVISOR_VERSION_FACT: '0.1.2345.67890', Hypervisor.SYSTEM_UUID_FACT: expected_hypervisorId } ) result = self.hyperv.getHostGuestMapping()['hypervisors'][0] assert expected_result.toDict() == result.toDict()
def test_milicpu(self): client = Mock() client.get_nodes.return_value = self.new_nodes() client.get_vms.return_value = self.vms() config = self.create_config(name='test', wrapper=None, type='kubevirt', owner='owner', kubeconfig='/etc/hosts') with patch.dict('os.environ', {'KUBECONFIG': '/dev/null'}): kubevirt = Virt.from_config(self.logger, config, Datastore()) kubevirt._client = client expected_result = Hypervisor( hypervisorId='52c01ad890e84b15a1be4be18bd64ecd', name='main', guestIds=[ Guest( 'f83c5f73-5244-4bd1-90cf-02bac2dda608', kubevirt.CONFIG_TYPE, Guest.STATE_RUNNING, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '7', Hypervisor.HYPERVISOR_TYPE_FACT: 'qemu', Hypervisor.SYSTEM_UUID_FACT: '52c01ad890e84b15a1be4be18bd64ecd', Hypervisor.HYPERVISOR_VERSION_FACT: 'v1.18.0-rc.1', }) result = kubevirt.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_getHostGuestMapping(self, get): expected_hostname = 'hostname.domainname' expected_hypervisorId = uuids['host'] expected_guestId = uuids['vm'] expected_guest_state = Guest.STATE_SHUTOFF get.side_effect = [ MagicMock(content=CLUSTERS_XML), MagicMock(content=HOSTS_XML), MagicMock(content=VMS_XML), ] expected_result = Hypervisor( hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.rhevm.CONFIG_TYPE, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'qemu', Hypervisor.HYPERVISOR_VERSION_FACT: '1.2.3', Hypervisor.HYPERVISOR_CLUSTER: 'Cetus', Hypervisor.SYSTEM_UUID_FACT: 'db5a7a9f-6e33-3bfd-8129-c8010e4e1497', } ) result = self.rhevm.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_getHostGuestMapping(self, mock_client): expected_hostname = 'hostname.domainname' expected_hypervisorId = 'Fake_uuid' expected_guestId = 'guest1UUID' expected_guest_state = Guest.STATE_RUNNING fake_parent = MagicMock() fake_parent.value = 'fake_parent_id' fake_parent._type = 'ClusterComputeResource' fake_vm_id = MagicMock() fake_vm_id.value = 'guest1' fake_vm = MagicMock() fake_vm.ManagedObjectReference = [fake_vm_id] fake_vms = {'guest1': {'runtime.powerState': 'poweredOn', 'config.uuid': expected_guestId}} self.esx.vms = fake_vms fake_host = {'hardware.systemInfo.uuid': expected_hypervisorId, 'config.network.dnsConfig.hostName': 'hostname', 'config.network.dnsConfig.domainName': 'domainname', 'config.product.version': '1.2.3', 'hardware.cpuInfo.numCpuPackages': '1', 'name': expected_hostname, 'parent': fake_parent, 'vm': fake_vm, } fake_hosts = {'random-host-id': fake_host} self.esx.hosts = fake_hosts fake_cluster = {'name': 'Fake_cluster_name'} self.esx.clusters = {'fake_parent_id': fake_cluster} expected_result = Hypervisor( hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.esx.CONFIG_TYPE, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'vmware', Hypervisor.HYPERVISOR_VERSION_FACT: '1.2.3', Hypervisor.HYPERVISOR_CLUSTER: 'Fake_cluster_name', Hypervisor.SYSTEM_UUID_FACT: expected_hypervisorId } ) result = self.esx.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_getHostGuestMapping_incomplete_data(self, mock_client): expected_hostname = 'hostname.domainname' expected_hypervisorId = 'Fake_uuid' expected_guestId = 'guest1UUID' expected_guest_state = Guest.STATE_UNKNOWN fake_parent = MagicMock() fake_parent.value = 'Fake_parent' fake_vm_id = MagicMock() fake_vm_id.value = 'guest1' fake_vm = MagicMock() fake_vm.ManagedObjectReference = [fake_vm_id] fake_vms = { 'guest1': { 'runtime.powerState': 'BOGUS_STATE', 'config.uuid': expected_guestId } } self.esx.vms = fake_vms fake_host = { 'hardware.systemInfo.uuid': expected_hypervisorId, 'config.network.dnsConfig.hostName': 'hostname', 'config.network.dnsConfig.domainName': 'domainname', 'config.product.version': '1.2.3', 'hardware.cpuInfo.numCpuPackages': '1', 'parent': fake_parent, 'vm': fake_vm } fake_hosts = {'random-host-id': fake_host} self.esx.hosts = fake_hosts expected_result = Hypervisor(hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.esx, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'vmware', Hypervisor.HYPERVISOR_VERSION_FACT: '1.2.3', }) result = self.esx.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_getHostGuestMapping_incomplete_data(self, mock_client): expected_hostname = 'hostname.domainname' expected_hypervisorId = 'Fake_uuid' expected_guestId = 'guest1UUID' expected_guest_state = Guest.STATE_UNKNOWN fake_parent = MagicMock() fake_parent.value = 'Fake_parent' fake_vm_id = MagicMock() fake_vm_id.value = 'guest1' fake_vm = MagicMock() fake_vm.ManagedObjectReference = [fake_vm_id] fake_vms = {'guest1': {'runtime.powerState': 'BOGUS_STATE', 'config.uuid': expected_guestId}} self.esx.vms = fake_vms fake_host = {'hardware.systemInfo.uuid': expected_hypervisorId, 'config.network.dnsConfig.hostName': 'hostname', 'config.network.dnsConfig.domainName': 'domainname', 'config.product.version': '1.2.3', 'hardware.cpuInfo.numCpuPackages': '1', 'parent': fake_parent, 'vm': fake_vm } fake_hosts = {'random-host-id': fake_host} self.esx.hosts = fake_hosts expected_result = Hypervisor( hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.esx, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'vmware', Hypervisor.HYPERVISOR_VERSION_FACT: '1.2.3', } ) result = self.esx.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())
def test_getHostGuestMapping(self, session): expected_hostname = 'hostname.domainname' expected_hypervisorId = 'Fake_uuid' expected_guestId = 'guest1UUID' expected_guest_state = Guest.STATE_UNKNOWN xenapi = session.return_value.xenapi host = { 'uuid': expected_hypervisorId, 'hostname': expected_hostname, 'cpu_info': { 'socket_count': '1' }, 'software_version': { 'product_brand': 'XenServer', 'product_version': '1.2.3', }, } xenapi.host.get_all.return_value = [ host ] xenapi.host.get_record.return_value = host control_domain = { 'uuid': '0', 'is_control_domain': True, } guest = { 'uuid': expected_guestId, 'power_state': 'unknown', } snapshot = { 'uuid': '12345678-90AB-CDEF-1234-567890ABCDEF', 'is_a_snapshot': True, 'power_state': 'unknown', } xenapi.host.get_resident_VMs.return_value = [ control_domain, snapshot, guest, ] xenapi.VM.get_record = lambda x: x expected_result = Hypervisor( hypervisorId=expected_hypervisorId, name=expected_hostname, guestIds=[ Guest( expected_guestId, self.xen, expected_guest_state, ) ], facts={ Hypervisor.CPU_SOCKET_FACT: '1', Hypervisor.HYPERVISOR_TYPE_FACT: 'XenServer', Hypervisor.HYPERVISOR_VERSION_FACT: '1.2.3', } ) self.xen._prepare() result = self.xen.getHostGuestMapping()['hypervisors'][0] self.assertEqual(expected_result.toDict(), result.toDict())