# Test code for the vmware_vm_info module # Copyright: (c) 2017, Abhijeet Kasurde # Copyright, (c) 2018, Fedor Vompe # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - import_role: name: prepare_vmware_tests vars: setup_datastore: true setup_virtualmachines: true - when: vcsim is not defined block: - name: Get info from a given ESXi vmware_vm_info: validate_certs: false hostname: '{{ esxi1 }}' username: '{{ esxi_user }}' password: '{{ esxi_password }}' - import_role: name: prepare_vmware_tests vars: setup_attach_host: true setup_datastore: true setup_virtualmachines: true - &vm_data name: Get info about available vms vmware_vm_info: validate_certs: false hostname: "{{ vcenter_hostname }}" username: "{{ vcenter_username }}" password: "{{ vcenter_password }}" register: vm_info - &set_vm_by_name set_fact: vm_by_name: "{{ dict(vm_info.virtual_machines|map(attribute='guest_name')|zip(vm_info.virtual_machines)) }}" - set_fact: my_vm1: "{{ vm_by_name['DC0_H0_VM1'] }}" - &vm_fact_check name: Verify if VM info exist assert: that: - "my_vm1.esxi_hostname is defined" - "my_vm1.guest_fullname is defined" - "my_vm1.ip_address is defined" - "my_vm1.mac_address is defined" - "my_vm1.power_state is defined" - "my_vm1.uuid is defined" - "my_vm1.vm_network is defined" - <<: *vm_data name: Get info about available vms in check mode check_mode: yes - <<: *vm_fact_check name: Verify if VM info exist in check mode - name: Get folder name from VM vmware_guest_find: validate_certs: false hostname: "{{ vcenter_hostname }}" username: "{{ vcenter_username }}" password: "{{ vcenter_password }}" name: "{{ virtual_machines[0].name }}" register: folder_path_info - set_fact: folder_path: "{{ folder_path_info.folders[0] }}" when: folder_path_info.folders is defined - name: Gather info about VM using folder vmware_vm_info: hostname: "{{ vcenter_hostname }}" username: "{{ vcenter_username }}" password: "{{ vcenter_password }}" validate_certs: no folder: "{{ folder_path }}" register: vm_info when: folder_path_info.folders is defined - debug: var=vm_info - <<: *set_vm_by_name - set_fact: my_vm0: "{{ vm_by_name['DC0_H0_VM0'] }}" - name: Check if info are returned for VM with folder specified assert: that: - "my_vm0.esxi_hostname is defined" - "my_vm0.guest_fullname is defined" - "my_vm0.ip_address is defined" - "my_vm0.mac_address is defined" - "my_vm0.power_state is defined" - "my_vm0.uuid is defined" - "my_vm0.vm_network is defined"