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)
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