ansible/test/integration/targets/aci_encap_pool/tasks/vlan.yml
Dag Wieers d8ba8c03f3
ACI: Make querying links and nodes possible (#43441)
This functionality was not considered when the module was written, but
there's no reason why it shouldn't be supported.

We had to rework the query string construction and object filtering.
This new functionality allows to filter on arbitrary keys and supports
None values.

This PR fixes various issues with the existing framework, including
querying specific objects using construct_url_4 (i.e.
aci_epg_to_contract and aci_static_binding_to_epg)
2018-08-07 23:54:54 +02:00

264 lines
8.1 KiB
YAML

---
- name: ensure vlan pool does not exist for tests to kick off
aci_encap_pool: &aci_pool_absent_static
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: debug
state: absent
pool: anstest
pool_type: vlan
pool_allocation_mode: static
- name: ensure vlan pool does not exist for tests to kick off
aci_encap_pool: &aci_pool_absent_dynamic
<<: *aci_pool_absent_static
pool_allocation_mode: dynamic
- name: create static vlan pool - check mode works
aci_encap_pool: &aci_pool_present_static
<<: *aci_pool_absent_static
state: present
descr: Ansible Test
check_mode: yes
register: create_check_mode
- name: assertion test - present
assert:
that:
- create_check_mode is changed
- 'create_check_mode.sent == {"fvnsVlanInstP": {"attributes": {"allocMode": "static", "descr": "Ansible Test", "name": "anstest"}}}'
- name: create static vlan pool - creation works
aci_encap_pool:
<<: *aci_pool_present_static
register: create_static
- name: assertion test - present
assert:
that:
- create_static is changed
- create_static.previous == []
- create_static.sent == create_check_mode.sent
- name: create dynamic vlan pool - creation works
aci_encap_pool: &aci_pool_present_dynamic
<<: *aci_pool_absent_dynamic
state: present
descr: Ansible Test
register: create_dynamic
- name: assertion test - present
assert:
that:
- create_dynamic is changed
- create_dynamic.previous == []
- 'create_dynamic.sent == {"fvnsVlanInstP": {"attributes": {"allocMode": "dynamic", "descr": "Ansible Test", "name": "anstest"}}}'
- name: create static vlan pool again - idempotency works
aci_encap_pool:
<<: *aci_pool_present_static
register: idempotent_static
- name: assertion test - present
assert:
that:
- idempotent_static is not changed
- 'idempotent_static.previous == [{"fvnsVlanInstP": {"attributes": {"allocMode": "static", "descr": "Ansible Test", "dn": "uni/infra/vlanns-[anstest]-static", "name": "anstest", "nameAlias": "", "ownerKey": "", "ownerTag": ""}}}]'
- idempotent_static.sent == {}
- name: create dynamic vlan pool again - idempotency works
aci_encap_pool:
<<: *aci_pool_present_dynamic
register: idempotent_dynamic
- name: assertion test - present
assert:
that:
- idempotent_dynamic is not changed
- 'idempotent_dynamic.previous == [{"fvnsVlanInstP": {"attributes": {"allocMode": "dynamic", "descr": "Ansible Test", "dn": "uni/infra/vlanns-[anstest]-dynamic", "name": "anstest", "nameAlias": "", "ownerKey": "", "ownerTag": ""}}}]'
- idempotent_dynamic.sent == {}
- name: update static vlan pool - update works
aci_encap_pool:
<<: *aci_pool_present_static
descr: Ansible Test Change
register: update_static
- name: assertion test - present
assert:
that:
- update_static is changed
- 'update_static.sent == {"fvnsVlanInstP": {"attributes": {"descr": "Ansible Test Change"}}}'
- name: update dynamic vlan pool - update works
aci_encap_pool:
<<: *aci_pool_present_dynamic
descr: Ansible Test Change
register: update_dynamic
- name: assertion test - present
assert:
that:
- update_dynamic is changed
- 'update_dynamic.sent == {"fvnsVlanInstP": {"attributes": {"descr": "Ansible Test Change"}}}'
- name: missing param - failure message works
aci_encap_pool:
<<: *aci_pool_present_dynamic
pool_allocation_mode: "{{ fake_var | default(omit) }}"
ignore_errors: yes
register: vlan_alloc_fail
- name: assertion test - present
assert:
that:
- vlan_alloc_fail is failed
- "vlan_alloc_fail.msg == 'ACI requires parameter \\'pool_allocation_mode\\' for \\'pool_type\\' of \\'vlan\\' and \\'vsan\\' when parameter \\'pool\\' is provided'"
- name: missing param - failure message works
aci_encap_pool:
<<: *aci_pool_present_dynamic
pool: "{{ fake_var | default(omit) }}"
ignore_errors: yes
register: vlan_pool_fail
- name: assertion test - present
assert:
that:
- vlan_pool_fail is failed
- 'vlan_pool_fail.msg == "state is present but all of the following are missing: pool"'
- name: missing param - failure message works
aci_encap_pool:
<<: *aci_pool_present_dynamic
pool_type: "{{ fake_var | default(omit) }}"
ignore_errors: yes
register: vlan_pool_type_fail
- name: assertion test - present
assert:
that:
- vlan_pool_type_fail is failed
- 'vlan_pool_type_fail.msg == "missing required arguments: pool_type"'
- name: get all vlan pools - get class works
aci_encap_pool:
<<: *aci_pool_absent_static
state: query
pool: "{{ fake_var | default(omit) }}"
pool_allocation_mode: "{{ fake_var | default(omit) }}"
register: get_all_pools
- name: assertion test - query
assert:
that:
- get_all_pools is not changed
- get_all_pools.method == "GET"
- get_all_pools.current | length > 1
- name: get created static vlan pool - get mo works
aci_encap_pool:
<<: *aci_pool_absent_static
state: query
register: get_static_pool
- name: assertion test - query
assert:
that:
- get_static_pool is not changed
- get_static_pool.method == "GET"
- get_static_pool.current | length == 1
- get_static_pool.current.0.fvnsVlanInstP.attributes.allocMode == "static"
- get_static_pool.current.0.fvnsVlanInstP.attributes.name == "anstest"
- name: get created dynamic vlan pool - get mo works
aci_encap_pool:
<<: *aci_pool_absent_dynamic
state: query
register: get_dynamic_pool
- name: assertion test - query
assert:
that:
- get_dynamic_pool is not changed
- get_dynamic_pool.method == "GET"
- get_dynamic_pool.current | length == 1
- get_dynamic_pool.current.0.fvnsVlanInstP.attributes.allocMode == "dynamic"
- get_dynamic_pool.current.0.fvnsVlanInstP.attributes.name == "anstest"
- name: get created dynamic vlan pool - get mo works
aci_encap_pool:
<<: *aci_pool_absent_dynamic
state: query
pool_type: "{{ fake_var | default(omit) }}"
ignore_errors: yes
register: vlan_query_pool_type_fail
- name: assertion test - query
assert:
that:
- vlan_query_pool_type_fail is failed
- 'vlan_query_pool_type_fail.msg == "missing required arguments: pool_type"'
- name: delete static vlan pool - deletion works
aci_encap_pool:
<<: *aci_pool_absent_static
register: delete_static
- name: assertion test - absent
assert:
that:
- delete_static is changed
- delete_static.method == "DELETE"
- delete_static.previous.0.fvnsVlanInstP.attributes.allocMode == "static"
- delete_static.previous.0.fvnsVlanInstP.attributes.name == "anstest"
- name: delete dynamic vlan pool - check mode works
aci_encap_pool:
<<: *aci_pool_absent_dynamic
check_mode: yes
register: delete_check_mode
- name: assertion test - absent
assert:
that:
- delete_check_mode is changed
- name: delete dynamic vlan pool - deletion works
aci_encap_pool:
<<: *aci_pool_absent_dynamic
register: delete_dynamic
- name: assertion test - absent
assert:
that:
- delete_dynamic is changed
- delete_dynamic.method == "DELETE"
- delete_dynamic.previous.0.fvnsVlanInstP.attributes.allocMode == "dynamic"
- delete_dynamic.previous.0.fvnsVlanInstP.attributes.name == "anstest"
- name: delete static vlan pool again - idempotency works
aci_encap_pool:
<<: *aci_pool_absent_static
register: idempotent_delete_static
- name: assertion test - absent
assert:
that:
- idempotent_delete_static is not changed
- idempotent_delete_static.previous == []
- name: delete dynamic vlan pool again - idempotency works
aci_encap_pool:
<<: *aci_pool_absent_dynamic
register: idempotent_delete_dynamic
- name: assertion test - absent
assert:
that:
- idempotent_delete_dynamic is not changed
- idempotent_delete_dynamic.previous == []