From 96dcd1060ca7b688e5e3d17e59ae8155eac797f1 Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Tue, 27 Jun 2017 22:49:17 +0530 Subject: [PATCH] Add testsuite for vmware_datacenter (#26133) Signed-off-by: Abhijeet Kasurde --- .../targets/vmware_datacenter/aliases | 2 + .../targets/vmware_datacenter/tasks/main.yml | 109 ++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 test/integration/targets/vmware_datacenter/aliases create mode 100644 test/integration/targets/vmware_datacenter/tasks/main.yml diff --git a/test/integration/targets/vmware_datacenter/aliases b/test/integration/targets/vmware_datacenter/aliases new file mode 100644 index 0000000000..1c56b8da49 --- /dev/null +++ b/test/integration/targets/vmware_datacenter/aliases @@ -0,0 +1,2 @@ +posix/ci/cloud/vcenter +cloud/vcenter diff --git a/test/integration/targets/vmware_datacenter/tasks/main.yml b/test/integration/targets/vmware_datacenter/tasks/main.yml new file mode 100644 index 0000000000..cdc112570d --- /dev/null +++ b/test/integration/targets/vmware_datacenter/tasks/main.yml @@ -0,0 +1,109 @@ +# Test code for the vmware_datacenter module. +# (c) 2017, Abhijeet Kasurde + +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see . +# +- 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: kill vcsim + uri: + url: "{{ 'http://' + vcsim + ':5000/killall' }}" + +- name: start vcsim + uri: + url: "{{ 'http://' + vcsim + ':5000/spawn?cluster=2' }}" + register: vcsim_instance + +- name: get a list of Datacenter from vcsim + uri: + url: "{{ 'http://' + vcsim + ':5000/govc_find?filter=DC' }}" + register: datacenters + +- debug: var=vcsim_instance +- debug: var=datacenters + +# Testcase 0001: Add Datacenter +- name: add datacenter + vmware_datacenter: + validate_certs: False + hostname: "{{ vcsim }}" + username: "{{ vcsim_instance['json']['username'] }}" + password: "{{ vcsim_instance['json']['password'] }}" + datacenter_name: datacenter_0001 + state: present + register: dc_result + +- name: get a list of Datacenter from vcsim after adding datacenter + uri: + url: "{{ 'http://' + vcsim + ':5000/govc_find?filter=DC' }}" + register: new_datacenters + +- name: ensure datacenter is present + assert: + that: + - "{{ dc_result.changed == true }}" + - "{{ '/datacenter_0001' in new_datacenters['json'] }}" + +# Testcase 0002: Try to add same datacenter +- name: add datacenter again to check idempotent behavior + vmware_datacenter: + validate_certs: False + hostname: "{{ vcsim }}" + username: "{{ vcsim_instance['json']['username'] }}" + password: "{{ vcsim_instance['json']['password'] }}" + datacenter_name: datacenter_0001 + state: present + register: dc_result_two + +- name: ensure datacenter status is not changed + assert: + that: + - "{{ dc_result_two.changed == false }}" + +# FIXME: Uncomment this testcase once vcsim supports datacenter delete method +# Currently, vcsim does not support datacenter delete option, +# Once this feature is available we can uncomment following testcase + +# Testcase 0002: Delete Datacenter +#- name: add datacenter +# vmware_datacenter: +# validate_certs: False +# hostname: "{{ vcsim }}" +# username: "{{ vcsim_instance['json']['username'] }}" +# password: "{{ vcsim_instance['json']['password'] }}" +# datacenter_name: datacenter_0001 +# state: absent +# register: dc_result_delete + +#- name: get a list of Datacenter from vcsim after adding datacenter +# uri: +# url: "{{ 'http://' + vcsim + ':5000/govc_find?filter=DC' }}" +# register: new_datacenters_delete + +#- name: ensure datacenter is absent +# assert: +# that: +# - "{{ dc_result_delete.changed == true }}" +# - "{{ '/datacenter_0001' not in new_datacenters_delete['json'] }}