1# Test code for the ACI modules
2# Copyright: (c) 2017, Dag Wieers (@dagwieers) <dag@wieers.com>
3
4# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
5
6
7# CLEAN ENVIRONMENT
8- name: Remove tenant
9  aci_rest: &tenant_absent
10    host: '{{ aci_hostname }}'
11    username: '{{ aci_username }}'
12    password: '{{ aci_password }}'
13    validate_certs: '{{ aci_validate_certs | default(false) }}'
14    use_ssl: '{{ aci_use_ssl | default(true) }}'
15    use_proxy: '{{ aci_use_proxy | default(true) }}'
16    output_level: '{{ aci_output_level | default("info") }}'
17    path: /api/mo/uni/tn-[ansible_test].json
18    method: delete
19
20# ADD TENANT
21- name: Add tenant (normal mode)
22  aci_rest: &tenant_present
23    host: '{{ aci_hostname }}'
24    username: '{{ aci_username }}'
25    password: '{{ aci_password }}'
26    validate_certs: '{{ aci_validate_certs | default(false) }}'
27    use_ssl: '{{ aci_use_ssl | default(true) }}'
28    use_proxy: '{{ aci_use_proxy | default(true) }}'
29    output_level: '{{ aci_output_level | default("info") }}'
30    path: /api/mo/uni.json
31    method: post
32    content:
33      {
34          "fvTenant": {
35              "attributes": {
36                  "name": "ansible_test"
37              }
38          }
39      }
40  delegate_to: localhost
41  register: nm_add_tenant
42
43- name: Add tenant again (normal mode)
44  aci_rest: *tenant_present
45  delegate_to: localhost
46  register: nm_add_tenant_again
47
48- name: Verify add_tenant
49  assert:
50    that:
51    - nm_add_tenant is changed
52    - nm_add_tenant_again is not changed
53
54# CHANGE TENANT
55- name: Change description of tenant (normal mode)
56  aci_rest: &tenant_changed
57    host: '{{ aci_hostname }}'
58    username: '{{ aci_username }}'
59    password: '{{ aci_password }}'
60    validate_certs: '{{ aci_validate_certs | default(false) }}'
61    use_ssl: '{{ aci_use_ssl | default(true) }}'
62    use_proxy: '{{ aci_use_proxy | default(true) }}'
63    output_level: '{{ aci_output_level | default("info") }}'
64    path: /api/mo/uni.json
65    method: post
66    content:
67      {
68          "fvTenant": {
69              "attributes": {
70                  "descr": "Ansible test tenant",
71                  "name": "ansible_test"
72              }
73          }
74      }
75  delegate_to: localhost
76  register: nm_add_tenant_descr
77
78- name: Change description of tenant again (normal mode)
79  aci_rest: *tenant_changed
80  delegate_to: localhost
81  register: nm_add_tenant_descr_again
82
83- name: Verify add_tenant_descr
84  assert:
85    that:
86    - nm_add_tenant_descr is changed
87    - nm_add_tenant_descr_again is not changed
88
89# ADD TENANT AGAIN
90- name: Add tenant again with no description (normal mode)
91  aci_rest: *tenant_present
92  delegate_to: localhost
93  register: nm_add_tenant_again_no_descr
94
95- name: Verify add_tenant_again_no_descr
96  assert:
97    that:
98    - nm_add_tenant_again_no_descr is not changed
99
100# QUERY ALL TENANTS
101- name: Query all tenants (normal mode)
102  aci_rest: &tenant_query_all
103    host: '{{ aci_hostname }}'
104    username: '{{ aci_username }}'
105    password: '{{ aci_password }}'
106    validate_certs: '{{ aci_validate_certs | default(false) }}'
107    use_ssl: '{{ aci_use_ssl | default(true) }}'
108    use_proxy: '{{ aci_use_proxy | default(true) }}'
109    output_level: '{{ aci_output_level | default("info") }}'
110    path: /api/mo/uni/tn-[ansible_test].json
111    method: get
112  delegate_to: localhost
113  register: nm_query_all_tenants
114
115- name: Verify query_all_tenants
116  assert:
117    that:
118    - nm_query_all_tenants is not changed
119
120# QUERY A TENANT
121- name: Query our tenant
122  aci_rest: &tenant_query
123    host: '{{ aci_hostname }}'
124    username: '{{ aci_username }}'
125    password: '{{ aci_password }}'
126    validate_certs: '{{ aci_validate_certs | default(false) }}'
127    use_ssl: '{{ aci_use_ssl | default(true) }}'
128    use_proxy: '{{ aci_use_proxy | default(true) }}'
129    output_level: '{{ aci_output_level | default("info") }}'
130    path: /api/mo/uni/tn-[ansible_test].json
131    method: get
132  delegate_to: localhost
133  register: nm_query_tenant
134
135- name: Verify query_tenant
136  assert:
137    that:
138    - nm_query_tenant is not changed
139
140# REMOVE TENANT
141- name: Remove tenant (normal mode)
142  aci_rest: *tenant_absent
143  delegate_to: localhost
144  register: nm_remove_tenant
145
146- name: Remove tenant again (normal mode)
147  aci_rest: *tenant_absent
148  delegate_to: localhost
149  register: nm_remove_tenant_again
150
151- name: Verify remove_tenant
152  assert:
153    that:
154    - nm_remove_tenant is changed
155    - nm_remove_tenant_again is not changed
156
157# QUERY NON-EXISTING TENANT
158- name: Query non-existing tenant (normal mode)
159  aci_rest: *tenant_query
160  delegate_to: localhost
161  register: nm_query_non_tenant
162
163- name: Verify query_non_tenant
164  assert:
165    that:
166    - nm_query_non_tenant is not changed
167