diff --git a/test/integration/targets/vmware_maintenancemode/aliases b/test/integration/targets/vmware_maintenancemode/aliases new file mode 100644 index 0000000000..4c6228bf7a --- /dev/null +++ b/test/integration/targets/vmware_maintenancemode/aliases @@ -0,0 +1,3 @@ +posix/ci/cloud/group1/vcenter +cloud/vcenter +destructive diff --git a/test/integration/targets/vmware_maintenancemode/tasks/main.yml b/test/integration/targets/vmware_maintenancemode/tasks/main.yml new file mode 100644 index 0000000000..f369fa0da1 --- /dev/null +++ b/test/integration/targets/vmware_maintenancemode/tasks/main.yml @@ -0,0 +1,113 @@ +# Test code for the vmware_guest_maintenancemode module. + +# Copyright: (c) 2017, Abhijeet Kasurde +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +- name: make sure pyvmomi is installed + pip: + name: pyvmomi + state: latest + +- name: store the vcenter container ip + set_fact: + vcsim: "{{ lookup('env', 'vcenter_host') }}" + +- debug: var=vcsim + +- name: Wait for Flask controller to come up online + wait_for: + host: "{{ vcsim }}" + port: 5000 + state: started + +- name: kill vcsim + uri: + url: "{{ 'http://' + vcsim + ':5000/killall' }}" + +- name: start vcsim + uri: + url: "{{ 'http://' + vcsim + ':5000/spawn?datacenter=1&cluster=1&folder=0' }}" + register: vcsim_instance + +- name: Wait for vcsim server to come up online + wait_for: + host: "{{ vcsim }}" + port: 443 + state: started + +- name: Get a list of host systems from vcsim + uri: + url: http://{{ vcsim }}:5000/govc_find?filter=H + register: hostsystems + +- name: Enter maintenance mode + vmware_maintenancemode: + hostname: "{{ vcsim }}" + username: "{{ vcsim_instance.json.username }}" + password: "{{ vcsim_instance.json.password }}" + state: present + esxi_hostname: "{{ item | basename }}" + validate_certs: no + with_items: "{{ hostsystems['json'] }}" + register: test_result_0001 + +- debug: var=test_result_0001 + +- name: assert that changes were made + assert: + that: + - "test_result_0001.results|map(attribute='changed')|unique|list == [true]" + +- name: Enter maintenance mode again + vmware_maintenancemode: + hostname: "{{ vcsim }}" + username: "{{ vcsim_instance.json.username }}" + password: "{{ vcsim_instance.json.password }}" + state: present + esxi_hostname: "{{ item | basename }}" + validate_certs: no + with_items: "{{ hostsystems['json'] }}" + register: test_result_0002 + +- debug: var=test_result_0002 + +- name: assert that no changes were made + assert: + that: + - "test_result_0002.results|map(attribute='changed')|unique|list == [false]" + +- name: Exit maintenance mode + vmware_maintenancemode: + hostname: "{{ vcsim }}" + username: "{{ vcsim_instance.json.username }}" + password: "{{ vcsim_instance.json.password }}" + state: absent + esxi_hostname: "{{ item | basename }}" + validate_certs: no + with_items: "{{ hostsystems['json'] }}" + register: test_result_0003 + +- debug: var=test_result_0003 + +- name: assert that changes were made + assert: + that: + - "test_result_0003.results|map(attribute='changed')|unique|list == [true]" + +- name: Exit maintenance mode again + vmware_maintenancemode: + hostname: "{{ vcsim }}" + username: "{{ vcsim_instance.json.username }}" + password: "{{ vcsim_instance.json.password }}" + state: absent + esxi_hostname: "{{ item | basename }}" + validate_certs: no + with_items: "{{ hostsystems['json'] }}" + register: test_result_0004 + +- debug: var=test_result_0004 + +- name: assert that no changes were made + assert: + that: + - "test_result_0004.results|map(attribute='changed')|unique|list == [false]"