Esempio n. 1
0
 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({})))
Esempio n. 2
0
 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({}))
Esempio n. 3
0
 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)
Esempio n. 4
0
    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({})))