# Test code for the ACI modules # Copyright: (c) 2017, Dag Wieers (@dagwieers) # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - name: Test that we have an ACI APIC host, ACI username and ACI password fail: msg: 'Please define the following variables: aci_hostname, aci_username and aci_password.' when: aci_hostname is not defined or aci_username is not defined or aci_password is not defined # CLEAN ENVIRONMENT - name: Remove tenant aci_tenant: &tenant_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") }}' tenant: ansible_test state: absent # ADD TENANT - name: Add tenant (check_mode) aci_tenant: &tenant_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") }}' tenant: ansible_test state: present check_mode: yes register: cm_add_tenant - name: Add tenant (normal mode) aci_tenant: *tenant_present register: nm_add_tenant - name: Add tenant again (check_mode) aci_tenant: *tenant_present check_mode: yes register: cm_add_tenant_again - name: Add tenant again (normal mode) aci_tenant: *tenant_present register: nm_add_tenant_again - name: Verify add_tenant assert: that: - cm_add_tenant is changed - nm_add_tenant is changed - cm_add_tenant_again is not changed - nm_add_tenant_again is not changed # CHANGE TENANT - name: Change description of tenant (check_mode) aci_tenant: <<: *tenant_present description: Ansible test tenant check_mode: yes register: cm_add_tenant_descr - name: Change description of tenant (normal mode) aci_tenant: <<: *tenant_present description: Ansible test tenant register: nm_add_tenant_descr - name: Change description of tenant again (check_mode) aci_tenant: <<: *tenant_present description: Ansible test tenant check_mode: yes register: cm_add_tenant_descr_again - name: Change description of tenant again (normal mode) aci_tenant: <<: *tenant_present description: Ansible test tenant register: nm_add_tenant_descr_again - name: Verify add_tenant_descr assert: that: - cm_add_tenant_descr is changed - nm_add_tenant_descr is changed - cm_add_tenant_descr_again is not changed - nm_add_tenant_descr_again is not changed # ADD TENANT AGAIN - name: Add tenant again with no description (check_mode) aci_tenant: *tenant_present check_mode: yes register: cm_add_tenant_again_no_descr - name: Add tenant again with no description (normal mode) aci_tenant: *tenant_present register: nm_add_tenant_again_no_descr - name: Verify add_tenant_again_no_descr assert: that: - cm_add_tenant_again_no_descr is not changed - nm_add_tenant_again_no_descr is not changed # QUERY ALL TENANTS - name: Query all tenants (check_mode) aci_tenant: &tenant_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_tenants - name: Query all tenants (normal mode) aci_tenant: *tenant_query register: nm_query_all_tenants - name: Verify query_all_tenants assert: that: - cm_query_all_tenants is not changed - nm_query_all_tenants is not changed # NOTE: Order of tenants is not stable between calls #- cm_query_all_tenants == nm_query_all_tenants # QUERY A TENANT - name: Query our tenant aci_tenant: <<: *tenant_query tenant: ansible_test check_mode: yes register: cm_query_tenant - name: Query our tenant aci_tenant: <<: *tenant_query tenant: ansible_test register: nm_query_tenant - name: Verify query_tenant assert: that: - cm_query_tenant is not changed - nm_query_tenant is not changed - cm_query_tenant == nm_query_tenant # REMOVE TENANT - name: Remove tenant (check_mode) aci_tenant: *tenant_absent check_mode: yes register: cm_remove_tenant - name: Remove tenant (normal mode) aci_tenant: *tenant_absent register: nm_remove_tenant - name: Remove tenant again (check_mode) aci_tenant: *tenant_absent check_mode: yes register: cm_remove_tenant_again - name: Remove tenant again (normal mode) aci_tenant: *tenant_absent register: nm_remove_tenant_again - name: Verify remove_tenant assert: that: - cm_remove_tenant is changed - nm_remove_tenant is changed - cm_remove_tenant_again is not changed - nm_remove_tenant_again is not changed # QUERY NON-EXISTING TENANT - name: Query non-existing tenant (check_mode) aci_tenant: <<: *tenant_query tenant: ansible_test check_mode: yes register: cm_query_non_tenant - name: Query non-existing tenant (normal mode) aci_tenant: <<: *tenant_query tenant: ansible_test register: nm_query_non_tenant # TODO: Implement more tests - name: Verify query_non_tenant assert: that: - cm_query_non_tenant is not changed - nm_query_non_tenant is not changed - cm_query_non_tenant == nm_query_non_tenant