示例#1
0
def main():
    result = dict(changed=False)
    argument_spec = VmwareRestClient.vmware_client_argument_spec()
    argument_spec.update(name=dict(type="str"))

    module = AnsibleModule(argument_spec=argument_spec,
                           supports_check_mode=True)

    try:
        obj = VmwareRestClient(module)
        vm_svc = vcenter_client.VM(obj.connect)
    except Exception as e:
        module.fail_json(msg=str(e))

    vm_name = module.params["name"]
    if (vm_name):
        names = set([vm_name])
        vm = vm_svc.list(vcenter_client.VM.FilterSpec(names=names))
        r = list(map(lambda x: x.to_dict(), vm))
        if (len(r) > 0):
            result["virtual_machines"] = vm_svc.get(r[0]["vm"]).to_dict()
            module.exit_json(**result)
        else:
            module.fail_json(msg="%s not found." % vm_name)
    else:
        vms = vm_svc.list()
        r = list(map(lambda x: x.to_dict(), vms))

        r_array = []
        for vm in r:
            r_array.append(vm_svc.get(vm["vm"]).to_dict())

        result["virtual_machines"] = r_array
        module.exit_json(**result)
示例#2
0
    def get_vm(self, stub_config, vm_name):
        """
        Return the identifier of a vm
        """
        vm_svc = vcenter_client.VM(stub_config)
        names = set([vm_name])
        vms = vm_svc.list(vcenter_client.VM.FilterSpec(names=names))

        if len(vms) == 0:
            logger.info("VM with name ({}) not found".format(vm_name))
            return None

        vm = vms[0].vm
        logger.info("Found VM '{}' ({})".format(vm_name, vm))
        return vm