def test_get_vmware_servers(self): self.configure_vmomi_api(servers=10) servers = vmware.get_vmware_servers( factory.make_hostname(), factory.make_username(), factory.make_username(), ) self.expectThat(servers, Not(Equals({})))
def test_get_vmware_servers_empty(self): self.configure_vmomi_api(servers=0) servers = vmware.get_vmware_servers(factory.make_hostname(), factory.make_username(), factory.make_username(), port=8443, protocol='https') self.expectThat(servers, Equals({}))
def test_get_server_by_name(self): mock_vmomi_api = self.configure_vmomi_api(servers=1, has_instance_uuid=False, has_uuid=True) host = factory.make_hostname() username = factory.make_username() password = factory.make_username() servers = vmware.get_vmware_servers(host, username, password) for vm_name in servers.keys(): vm = vmware._find_vm_by_uuid_or_name(mock_vmomi_api, None, vm_name) self.assertIsNotNone(vm)
def test_power_control(self): mock_vmomi_api = self.configure_vmomi_api(servers=100) host = factory.make_hostname() username = factory.make_username() password = factory.make_username() servers = vmware.get_vmware_servers(host, username, password) # here we're grabbing indexes only available in the private mock object search_index = ( mock_vmomi_api.SmartConnect.return_value.content.searchIndex ) bios_uuids = list(search_index.vms_by_uuid) instance_uuids = list(search_index.vms_by_instance_uuid) # at least one should have a randomly-invalid state (just checking # for coverage, but since it's random, don't want to assert) vm_name = None for uuid in bios_uuids: vmware.power_query_vmware(host, username, password, vm_name, uuid) for uuid in instance_uuids: vmware.power_query_vmware(host, username, password, vm_name, uuid) for vm_name in servers: vmware.power_query_vmware(host, username, password, vm_name, None) # turn on a set of VMs, then verify they are on for uuid in bios_uuids: vmware.power_control_vmware( host, username, password, vm_name, uuid, "on" ) for uuid in bios_uuids: state = vmware.power_query_vmware( host, username, password, vm_name, uuid ) self.expectThat(state, Equals("on")) # turn off a set of VMs, then verify they are off for uuid in instance_uuids: vmware.power_control_vmware( host, username, password, vm_name, uuid, "off" ) for uuid in instance_uuids: state = vmware.power_query_vmware( host, username, password, vm_name, uuid ) self.expectThat(state, Equals("off")) self.expectThat(servers, Not(Equals({})))