3103fd62dd
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.
133 lines
3.5 KiB
YAML
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
|