ansible/test/integration/targets/vmware_vmotion/tasks/main.yml
Gonéri Le Bouder 3103fd62dd vmware_vmotion/test: ensure we can run tests
Some adjustments to be able to run the test-suite properly:

- Starts with the ESXi out of the cluster to be able to deploy the
  VM on a proper host consistently
- Ensure the resource pool exists
- The resource pool is called `DC0_C0_RP1`, not `Resources`
- Avoid an exception if we try to move a non existing VM.

Put the test in the zuul/vmware/vcenter_2esxi group.
2020-01-15 11:50:04 -05:00

133 lines
3.5 KiB
YAML

# Test code for the vmware_vmotion module.
# Copyright: (c) 2019, Pavan Bidkar <pbidkar@vmware.com>
# 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