From 98a3059f7b3720f0e0b80c0e8a85b27fa1b0582d Mon Sep 17 00:00:00 2001 From: Dag Wieers Date: Mon, 12 Feb 2018 23:16:35 +0100 Subject: [PATCH] aci_aep_to_domain: Add missing integration tests (#36071) --- .../targets/aci_aep_to_domain/aliases | 0 .../targets/aci_aep_to_domain/tasks/main.yml | 182 ++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 test/integration/targets/aci_aep_to_domain/aliases create mode 100644 test/integration/targets/aci_aep_to_domain/tasks/main.yml diff --git a/test/integration/targets/aci_aep_to_domain/aliases b/test/integration/targets/aci_aep_to_domain/aliases new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/integration/targets/aci_aep_to_domain/tasks/main.yml b/test/integration/targets/aci_aep_to_domain/tasks/main.yml new file mode 100644 index 0000000000..cd6a835d40 --- /dev/null +++ b/test/integration/targets/aci_aep_to_domain/tasks/main.yml @@ -0,0 +1,182 @@ +# Test code for the ACI modules +# Copyright 2018, Dag Wieers (@dagwieers) + +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + + +# CLEAN ENVIRONMENT +- name: Remove AEP to domain binding + aci_aep_to_domain: &binding_absent + host: '{{ aci_hostname }}' + username: '{{ aci_username }}' + password: '{{ aci_password }}' + validate_certs: '{{ aci_validate_certs | default(false) }}' + use_ssl: '{{ aci_use_ssl | default(true) }}' + use_proxy: '{{ aci_use_proxy | default(true) }}' + output_level: info + aep: test_aep + domain: phys_dom + domain_type: phys + state: absent + +- name: Create AEP + aci_aep: + host: "{{ aci_hostname }}" + username: "{{ aci_username }}" + password: "{{ aci_password }}" + validate_certs: '{{ aci_validate_certs | default(false) }}' + use_ssl: '{{ aci_use_ssl | default(true) }}' + use_proxy: '{{ aci_use_proxy | default(true) }}' + aep: test_aep + description: Test AEP + state: present + +- name: Create physical domain + aci_domain: + host: "{{ aci_hostname }}" + username: "{{ aci_username }}" + password: "{{ aci_password }}" + validate_certs: '{{ aci_validate_certs | default(false) }}' + use_ssl: '{{ aci_use_ssl | default(true) }}' + use_proxy: '{{ aci_use_proxy | default(true) }}' + domain: phys_dom + domain_type: phys + state: present + + +# ADD BINDING +- name: Add AEP to domain binding (check_mode) + aci_aep_to_domain: &binding_present + host: '{{ aci_hostname }}' + username: '{{ aci_username }}' + password: '{{ aci_password }}' + validate_certs: '{{ aci_validate_certs | default(false) }}' + use_ssl: '{{ aci_use_ssl | default(true) }}' + use_proxy: '{{ aci_use_proxy | default(true) }}' + output_level: info + aep: test_aep + domain: phys_dom + domain_type: phys + state: present + check_mode: yes + register: cm_add_binding + +- name: Add AEP to domain binding (normal mode) + aci_aep_to_domain: *binding_present + register: nm_add_binding + +- name: Add AEP to domain binding again (check_mode) + aci_aep_to_domain: *binding_present + check_mode: yes + register: cm_add_binding_again + +- name: Add AEP to domain binding again (normal mode) + aci_aep_to_domain: *binding_present + register: nm_add_binding_again + +- name: Verify add_binding + assert: + that: + - cm_add_binding.changed == nm_add_binding.changed == true + - cm_add_binding_again.changed == nm_add_binding_again.changed == false + - 'cm_add_binding.sent == nm_add_binding.sent == {"infraRsDomP": {"attributes": {"tDn": "uni/phys-phys_dom"}}}' + - 'cm_add_binding.proposed == nm_add_binding.proposed == {"infraRsDomP": {"attributes": {"tDn": "uni/phys-phys_dom"}}}' + - cm_add_binding.current == cm_add_binding.previous == nm_add_binding.previous == [] + - 'nm_add_binding.current == [{"infraRsDomP": {"attributes": {"dn": "uni/infra/attentp-test_aep/rsdomP-[uni/phys-phys_dom]", "tDn": "uni/phys-phys_dom"}}}]' + + +# QUERY ALL BINDINGS +- name: Query all AEP to domain bindings (check_mode) + aci_aep_to_domain: &binding_query + host: '{{ aci_hostname }}' + username: '{{ aci_username }}' + password: '{{ aci_password }}' + validate_certs: '{{ aci_validate_certs | default(false) }}' + use_ssl: '{{ aci_use_ssl | default(true) }}' + use_proxy: '{{ aci_use_proxy | default(true) }}' + output_level: info + domain_type: phys + state: query + check_mode: yes + register: cm_query_all_bindings + +- name: Query all AEP to domain bindings (normal mode) + aci_aep_to_domain: *binding_query + register: nm_query_all_bindings + +- name: Verify query_all_bindings + assert: + that: + - cm_query_all_bindings.changed == nm_query_all_bindings.changed == false + # NOTE: Order of bindings is not stable between calls + #- cm_query_all_bindings == nm_query_all_bindings + + +# QUERY A BINDING +- name: Query our AEP to domain binding (check_mode) + aci_aep_to_domain: + <<: *binding_query + aep: test_aep + domain: phys_dom + check_mode: yes + register: cm_query_binding + +- name: Query our AEP to domain binding (normal mode) + aci_aep_to_domain: + <<: *binding_query + domain: phys_dom + register: nm_query_binding + +- name: Verify query_binding + assert: + that: + - cm_query_binding.changed == nm_query_binding.changed == false + - cm_query_binding == nm_query_binding + - nm_query_binding.current.0.infraRsDomP.attributes.dn == 'uni/infra/attentp-test_aep/rsdomP-[uni/phys-phys_dom]' + - nm_query_binding.current.0.infraRsDomP.attributes.tDn == 'uni/phys-phys_dom' + + +# REMOVE BINDING +- name: Remove AEP to domain binding (check_mode) + aci_aep_to_domain: *binding_absent + check_mode: yes + register: cm_remove_binding + +- name: Remove AEP to domain binding (normal mode) + aci_aep_to_domain: *binding_absent + register: nm_remove_binding + +- name: Remove AEP to domain binding again (check_mode) + aci_aep_to_domain: *binding_absent + check_mode: yes + register: cm_remove_binding_again + +- name: Remove AEP to domain binding again (normal mode) + aci_aep_to_domain: *binding_absent + register: nm_remove_binding_again + +- name: Verify remove_binding + assert: + that: + - cm_remove_binding.changed == nm_remove_binding.changed == true + - cm_remove_binding_again.changed == nm_remove_binding_again.changed == false + - 'cm_remove_binding.current == cm_remove_binding.previous == nm_remove_binding.previous == [{"infraRsDomP": {"attributes": {"dn": "uni/infra/attentp-test_aep/rsdomP-[uni/phys-phys_dom]", "tDn": "uni/phys-phys_dom"}}}]' + - nm_remove_binding.current == [] + + +# QUERY NON-EXISTING BINDING +- name: Query non-existing AEP to domain binding (check_mode) + aci_aep_to_domain: *binding_query + check_mode: yes + register: cm_query_non_binding + +- name: Query non-existing AEP to domain binding (normal mode) + aci_aep_to_domain: *binding_query + register: nm_query_non_binding + +- name: Verify query_non_binding + assert: + that: + - cm_query_non_binding.changed == nm_query_non_binding.changed == false + - cm_query_non_binding == nm_query_non_binding + - nm_query_non_binding.current == []