Beispiel #1
0
 def test_power_query_missing_server_raises_VMwareVMNotFound(self):
     self.configure_vmomi_api(servers=1,
                              has_instance_uuid=True,
                              has_uuid=True)
     host = factory.make_hostname()
     username = factory.make_username()
     password = factory.make_username()
     with ExpectedException(VMwareVMNotFound):
         vmware.power_query_vmware(host, username, password, None, None)
Beispiel #2
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({})))
Beispiel #3
0
 def power_query(self, system_id, context):
     """Power query VMware node."""
     (
         host,
         username,
         password,
         vm_name,
         uuid,
         port,
         protocol,
     ) = extract_vmware_parameters(context)
     return power_query_vmware(host, username, password, vm_name, uuid,
                               port, protocol)