# Test code for the ACI modules # Copyright: (c) 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: '{{ aci_output_level | default("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) }}' output_level: '{{ aci_output_level | default("info") }}' 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) }}' output_level: '{{ aci_output_level | default("info") }}' 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: '{{ aci_output_level | default("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: Verify add_binding assert: that: - cm_add_binding.changed == nm_add_binding.changed == true - '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"}}}]' - 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_again assert: that: - cm_add_binding_again.changed == nm_add_binding_again.changed == false # 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: '{{ aci_output_level | default("info") }}' 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 - cm_query_all_bindings == nm_query_all_bindings - nm_query_all_bindings.current|length >= 1 # QUERY A BINDING - name: Query our AEP to domain binding (check_mode) aci_aep_to_domain: <<: *binding_query aep: test_aep domain: phys_dom domain_type: phys check_mode: yes register: cm_query_binding - name: Query our AEP to domain binding (normal mode) aci_aep_to_domain: <<: *binding_query aep: test_aep domain: phys_dom domain_type: phys 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.tCl == 'physDomP' - 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: Verify remove_binding assert: that: - cm_remove_binding.changed == nm_remove_binding.changed == true - '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 == [] - 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_again assert: that: - cm_remove_binding_again.changed == nm_remove_binding_again.changed == false # QUERY NON-EXISTING BINDING - name: Query non-existing AEP to domain binding (check_mode) aci_aep_to_domain: <<: *binding_query aep: test_aep domain: phys_dom domain_type: phys check_mode: yes register: cm_query_non_binding - name: Query non-existing AEP to domain binding (normal mode) aci_aep_to_domain: <<: *binding_query aep: test_aep domain: phys_dom domain_type: phys 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 == []