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  register: nm_add_tenant
41
42- name: Add tenant again (normal mode)
43  aci_rest: *tenant_present
44  register: nm_add_tenant_again
45
46- name: Verify add_tenant
47  assert:
48    that:
49    - nm_add_tenant is changed
50    - nm_add_tenant_again is not changed
51
52# CHANGE TENANT
53- name: Change description of tenant (normal mode)
54  aci_rest: &tenant_changed
55    host: '{{ aci_hostname }}'
56    username: '{{ aci_username }}'
57    password: '{{ aci_password }}'
58    validate_certs: '{{ aci_validate_certs | default(false) }}'
59    use_ssl: '{{ aci_use_ssl | default(true) }}'
60    use_proxy: '{{ aci_use_proxy | default(true) }}'
61    output_level: '{{ aci_output_level | default("info") }}'
62    path: /api/mo/uni.json
63    method: post
64    content: |
65      {
66          "fvTenant": {
67              "attributes": {
68                  "descr": "Ansible test tenant",
69                  "name": "ansible_test"
70              }
71          }
72      }
73  register: nm_add_tenant_descr
74
75- name: Change description of tenant again (normal mode)
76  aci_rest: *tenant_changed
77  register: nm_add_tenant_descr_again
78
79- name: Verify add_tenant_descr
80  assert:
81    that:
82    - nm_add_tenant_descr is changed
83    - nm_add_tenant_descr_again is not changed
84
85# ADD TENANT AGAIN
86- name: Add tenant again with no description (normal mode)
87  aci_rest: *tenant_present
88  register: nm_add_tenant_again_no_descr
89
90- name: Verify add_tenant_again_no_descr
91  assert:
92    that:
93    - nm_add_tenant_again_no_descr is not changed
94
95# QUERY ALL TENANTS
96- name: Query all tenants (normal mode)
97  aci_rest: &tenant_query_all
98    host: '{{ aci_hostname }}'
99    username: '{{ aci_username }}'
100    password: '{{ aci_password }}'
101    validate_certs: '{{ aci_validate_certs | default(false) }}'
102    use_ssl: '{{ aci_use_ssl | default(true) }}'
103    use_proxy: '{{ aci_use_proxy | default(true) }}'
104    output_level: '{{ aci_output_level | default("info") }}'
105    path: /api/mo/uni/tn-[ansible_test].json
106    method: get
107  register: nm_query_all_tenants
108
109- name: Verify query_all_tenants
110  assert:
111    that:
112    - nm_query_all_tenants is not changed
113
114# QUERY A TENANT
115- name: Query our tenant
116  aci_rest: &tenant_query
117    host: '{{ aci_hostname }}'
118    username: '{{ aci_username }}'
119    password: '{{ aci_password }}'
120    validate_certs: '{{ aci_validate_certs | default(false) }}'
121    use_ssl: '{{ aci_use_ssl | default(true) }}'
122    use_proxy: '{{ aci_use_proxy | default(true) }}'
123    output_level: '{{ aci_output_level | default("info") }}'
124    path: /api/mo/uni/tn-[ansible_test].json
125    method: get
126  register: nm_query_tenant
127
128- name: Verify query_tenant
129  assert:
130    that:
131    - nm_query_tenant is not changed
132
133# REMOVE TENANT
134- name: Remove tenant (normal mode)
135  aci_rest: *tenant_absent
136  register: nm_remove_tenant
137
138- name: Remove tenant again (normal mode)
139  aci_rest: *tenant_absent
140  register: nm_remove_tenant_again
141
142- name: Verify remove_tenant
143  assert:
144    that:
145    - nm_remove_tenant is changed
146    - nm_remove_tenant_again is not changed
147
148# QUERY NON-EXISTING TENANT
149- name: Query non-existing tenant (normal mode)
150  aci_rest: *tenant_query
151  register: nm_query_non_tenant
152
153- name: Verify query_non_tenant
154  assert:
155    that:
156    - nm_query_non_tenant is not changed
157