1# Test code for the MSO modules 2# Copyright: (c) 2018, 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- name: Test that we have an ACI MultiSite host, username and password 7 fail: 8 msg: 'Please define the following variables: mso_hostname, mso_username and mso_password.' 9 when: mso_hostname is not defined or mso_username is not defined or mso_password is not defined 10 11 12# CLEAN ENVIRONMENT 13- name: Remove role ansible_test2 14 mso_role: &role_absent 15 host: '{{ mso_hostname }}' 16 username: '{{ mso_username }}' 17 password: '{{ mso_password }}' 18 validate_certs: '{{ mso_validate_certs | default(false) }}' 19 use_ssl: '{{ mso_use_ssl | default(true) }}' 20 use_proxy: '{{ mso_use_proxy | default(true) }}' 21 output_level: '{{ mso_output_level | default("info") }}' 22 role: ansible_test2 23 state: absent 24 25- name: Remove role ansible_test 26 mso_role: 27 <<: *role_absent 28 role: ansible_test 29 register: cm_remove_role 30 31 32# ADD ROLE 33- name: Add role (check_mode) 34 mso_role: &role_present 35 host: '{{ mso_hostname }}' 36 username: '{{ mso_username }}' 37 password: '{{ mso_password }}' 38 validate_certs: '{{ mso_validate_certs | default(false) }}' 39 use_ssl: '{{ mso_use_ssl | default(true) }}' 40 use_proxy: '{{ mso_use_proxy | default(true) }}' 41 output_level: '{{ mso_output_level | default("info") }}' 42 role: ansible_test 43 description: Ansible test role 44 permissions: view-sites 45 state: present 46 check_mode: yes 47 register: cm_add_role 48 49- name: Verify cm_add_role 50 assert: 51 that: 52 - cm_add_role is changed 53 - cm_add_role.previous == {} 54 - cm_add_role.current.description == 'Ansible test role' 55 - cm_add_role.current.displayName == 'ansible_test' 56 - cm_add_role.current.id is not defined 57 58- name: Add role (normal mode) 59 mso_role: *role_present 60 register: nm_add_role 61 62- name: nm_Verify add_role 63 assert: 64 that: 65 - nm_add_role is changed 66 - nm_add_role.previous == {} 67 - nm_add_role.current.description == 'Ansible test role' 68 - nm_add_role.current.displayName == 'ansible_test' 69 - nm_add_role.current.id is defined 70 71- name: Add role again (check_mode) 72 mso_role: *role_present 73 check_mode: yes 74 register: cm_add_role_again 75 76- name: Verify cm_add_role_again 77 assert: 78 that: 79 - cm_add_role_again is not changed 80 - cm_add_role_again.previous.description == 'Ansible test role' 81 - cm_add_role_again.previous.displayName == 'ansible_test' 82 - cm_add_role_again.current.description == 'Ansible test role' 83 - cm_add_role_again.current.displayName == 'ansible_test' 84 - cm_add_role_again.current.id == nm_add_role.current.id 85 86- name: Add role again (normal mode) 87 mso_role: *role_present 88 register: nm_add_role_again 89 90- name: Verify nm_add_role_again 91 assert: 92 that: 93 - nm_add_role_again is not changed 94 - nm_add_role_again.previous.description == 'Ansible test role' 95 - nm_add_role_again.previous.displayName == 'ansible_test' 96 - nm_add_role_again.current.description == 'Ansible test role' 97 - nm_add_role_again.current.displayName == 'ansible_test' 98 - nm_add_role_again.current.id == nm_add_role.current.id 99 100 101# CHANGE ROLE 102- name: Change role (check_mode) 103 mso_role: 104 <<: *role_present 105 role_id: '{{ nm_add_role.current.id }}' 106 role: ansible_test2 107 description: Ansible test role 2 108 check_mode: yes 109 register: cm_change_role 110 111- name: Verify cm_change_role 112 assert: 113 that: 114 - cm_change_role is changed 115 - cm_change_role.current.description == 'Ansible test role 2' 116 - cm_change_role.current.displayName == 'ansible_test2' 117 - cm_change_role.current.id == nm_add_role.current.id 118 119- name: Change role (normal mode) 120 mso_role: 121 <<: *role_present 122 role_id: '{{ nm_add_role.current.id }}' 123 role: ansible_test2 124 description: Ansible test role 2 125 output_level: debug 126 register: nm_change_role 127 128- name: Verify nm_change_role 129 assert: 130 that: 131 - nm_change_role is changed 132 - nm_change_role.current.description == 'Ansible test role 2' 133 - nm_change_role.current.displayName == 'ansible_test2' 134 - nm_change_role.current.id == nm_add_role.current.id 135 136- name: Change role again (check_mode) 137 mso_role: 138 <<: *role_present 139 role_id: '{{ nm_add_role.current.id }}' 140 role: ansible_test2 141 description: Ansible test role 2 142 check_mode: yes 143 register: cm_change_role_again 144 145- name: Verify cm_change_role_again 146 assert: 147 that: 148 - cm_change_role_again is not changed 149 - cm_change_role_again.current.description == 'Ansible test role 2' 150 - cm_change_role_again.current.displayName == 'ansible_test2' 151 - cm_change_role_again.current.id == nm_add_role.current.id 152 153- name: Change role again (normal mode) 154 mso_role: 155 <<: *role_present 156 role_id: '{{ nm_add_role.current.id }}' 157 role: ansible_test2 158 description: Ansible test role 2 159 register: nm_change_role_again 160 161- name: Verify nm_change_role_again 162 assert: 163 that: 164 - nm_change_role_again is not changed 165 - nm_change_role_again.current.description == 'Ansible test role 2' 166 - nm_change_role_again.current.displayName == 'ansible_test2' 167 - nm_change_role_again.current.id == nm_add_role.current.id 168 169 170# QUERY ALL ROLES 171- name: Query all roles (check_mode) 172 mso_role: &role_query 173 host: '{{ mso_hostname }}' 174 username: '{{ mso_username }}' 175 password: '{{ mso_password }}' 176 validate_certs: '{{ mso_validate_certs | default(false) }}' 177 use_ssl: '{{ mso_use_ssl | default(true) }}' 178 use_proxy: '{{ mso_use_proxy | default(true) }}' 179 output_level: '{{ mso_output_level | default("info") }}' 180 state: query 181 check_mode: yes 182 register: cm_query_all_roles 183 184- name: Query all roles (normal mode) 185 mso_role: *role_query 186 register: nm_query_all_roles 187 188- name: Verify query_all_roles 189 assert: 190 that: 191 - cm_query_all_roles is not changed 192 - nm_query_all_roles is not changed 193 # NOTE: Order of roles is not stable between calls 194 #- cm_query_all_roles == nm_query_all_roles 195 196 197# QUERY A ROLE 198- name: Query our role 199 mso_role: 200 <<: *role_query 201 role: ansible_test2 202 check_mode: yes 203 register: cm_query_role 204 205- name: Query our role 206 mso_role: 207 <<: *role_query 208 role: ansible_test2 209 register: nm_query_role 210 211- name: Verify query_role 212 assert: 213 that: 214 - cm_query_role is not changed 215 - cm_query_role.current.description == 'Ansible test role 2' 216 - cm_query_role.current.displayName == 'ansible_test2' 217 - cm_query_role.current.id == nm_add_role.current.id 218 - nm_query_role is not changed 219 - nm_query_role.current.description == 'Ansible test role 2' 220 - nm_query_role.current.displayName == 'ansible_test2' 221 - nm_query_role.current.id == nm_add_role.current.id 222 - cm_query_role == nm_query_role 223 224 225# REMOVE ROLE 226- name: Remove role (check_mode) 227 mso_role: *role_absent 228 check_mode: yes 229 register: cm_remove_role 230 231- name: Verify cm_remove_role 232 assert: 233 that: 234 - cm_remove_role is changed 235 - cm_remove_role.current == {} 236 237- name: Remove role (normal mode) 238 mso_role: *role_absent 239 register: nm_remove_role 240 241- name: Verify nm_remove_role 242 assert: 243 that: 244 - nm_remove_role is changed 245 - nm_remove_role.current == {} 246 247- name: Remove role again (check_mode) 248 mso_role: *role_absent 249 check_mode: yes 250 register: cm_remove_role_again 251 252- name: Verify cm_remove_role_again 253 assert: 254 that: 255 - cm_remove_role_again is not changed 256 - cm_remove_role_again.current == {} 257 258- name: Remove role again (normal mode) 259 mso_role: *role_absent 260 register: nm_remove_role_again 261 262- name: Verify nm_remove_role_again 263 assert: 264 that: 265 - nm_remove_role_again is not changed 266 - nm_remove_role_again.current == {} 267 268 269# QUERY NON-EXISTING ROLE 270- name: Query non-existing role (check_mode) 271 mso_role: 272 <<: *role_query 273 role: ansible_test 274 check_mode: yes 275 register: cm_query_non_role 276 277- name: Query non-existing role (normal mode) 278 mso_role: 279 <<: *role_query 280 role: ansible_test 281 register: nm_query_non_role 282 283# TODO: Implement more tests 284- name: Verify query_non_role 285 assert: 286 that: 287 - cm_query_non_role is not changed 288 - nm_query_non_role is not changed 289 - cm_query_non_role == nm_query_non_role 290