# Test code for the vmware_vmotion module. # Copyright: (c) 2019, Pavan Bidkar # 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_attach_host: true setup_datastore: true setup_resource_pool: true - when: vcsim is not defined block: - name: Add ESXi Hosts to vCenter vmware_host: datacenter_name: '{{ dc1 }}' esxi_hostname: '{{ item }}' esxi_username: '{{ esxi_user }}' esxi_password: '{{ esxi_password }}' folder: '/DC0/host' state: present with_items: "{{ esxi_hosts }}" - name: Disable the Maintenance Mode vmware_maintenancemode: esxi_hostname: '{{ item }}' state: absent with_items: "{{ esxi_hosts }}" - name: Create VM vmware_guest: hostname: "{{ vcenter_hostname }}" username: "{{ vcenter_username }}" password: "{{ vcenter_password }}" datacenter: "{{ dc1 }}" validate_certs: no name: test_vm1 folder: vm esxi_hostname: "{{ esxi1 }}" state: present guest_id: centos7_64Guest disk: - size_gb: 1 type: thin datastore: '{{ rw_datastore }}' hardware: version: latest memory_mb: 1024 num_cpus: 1 scsi: paravirtual register: vm_create - name: Perform vMotion of non-existing VM vmware_vmotion: hostname: '{{ vcenter_hostname }}' username: '{{ vcenter_username }}' password: '{{ vcenter_password }}' validate_certs: no vm_name: not_a_thing destination_host: '{{ esxi2 }}' destination_datastore: '{{ rw_datastore }}' register: vm_vmotion ignore_errors: true - assert: that: - vm_vmotion.msg == "Failed to find the virtual machine with not_a_thing" - name: Perform vMotion of virtual machine vmware_vmotion: hostname: '{{ vcenter_hostname }}' username: '{{ vcenter_username }}' password: '{{ vcenter_password }}' validate_certs: no vm_name: test_vm1 destination_host: '{{ esxi2 }}' destination_datastore: '{{ rw_datastore }}' register: vm_vmotion - name: assert that changes were made assert: that: - vm_vmotion is changed - name: Add ESXi Hosts to a cluster vmware_host: datacenter_name: '{{ dc1 }}' cluster_name: '{{ ccr1 }}' esxi_hostname: '{{ item }}' esxi_username: '{{ esxi_user }}' esxi_password: '{{ esxi_password }}' state: present with_items: "{{ esxi_hosts }}" - name: Disable the Maintenance Mode vmware_maintenancemode: esxi_hostname: '{{ item }}' state: absent with_items: "{{ esxi_hosts }}" - name: Perform vMotion of virtual machine to resource_pool vmware_vmotion: hostname: '{{ vcenter_hostname }}' username: '{{ vcenter_username }}' password: '{{ vcenter_password }}' validate_certs: no vm_name: test_vm1 destination_host: '{{ esxi1 }}' destination_resourcepool: DC0_C0_RP1 register: vm_vmotion_to_rp - name: assert that changes were made assert: that: - vm_vmotion_to_rp is changed - name: Perform storage vMotion of virtual machine vmware_vmotion: hostname: '{{ vcenter_hostname }}' username: '{{ vcenter_username }}' password: '{{ vcenter_password }}' validate_certs: no vm_name: test_vm1 destination_host: '{{ esxi2 }}' destination_datastore: '{{ rw_datastore }}' register: vm_vmotion_to_datastore - name: assert that changes were made assert: that: - vm_vmotion_to_datastore is changed