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