1# Test code for the vmware_guest_register_operation module 2# Copyright: (c) 2019, sky-joker <sky.jokerxx@gmail.com> 3# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) 4 5- import_role: 6 name: prepare_vmware_tests 7 vars: 8 setup_attach_host: true 9 setup_datastore: true 10 setup_cluster: true 11 setup_virtualmachines: true 12 setup_resource_pool: true 13 14- name: gather facts of vm 15 vmware_guest_info: 16 hostname: "{{ vcenter_hostname }}" 17 username: "{{ vcenter_username }}" 18 password: "{{ vcenter_password }}" 19 validate_certs: false 20 datacenter: "{{ dc1 }}" 21 folder: "{{ f0 }}" 22 name: "{{ virtual_machines[0].name }}" 23 register: vm_facts 24 25- name: get a vm vmx file path 26 set_fact: vm_vmx_file_path="{{ vm_facts.instance.hw_files[0] }}" 27 28- name: Powered off the vm 29 vmware_guest_powerstate: 30 hostname: "{{ vcenter_hostname }}" 31 username: "{{ vcenter_username }}" 32 password: "{{ vcenter_password }}" 33 validate_certs: false 34 folder: /vm 35 name: "{{ virtual_machines[0].name }}" 36 state: powered-off 37 38- name: Unregister VM from inventory with check_mode 39 vmware_guest_register_operation: 40 hostname: "{{ vcenter_hostname }}" 41 username: "{{ vcenter_username }}" 42 password: "{{ vcenter_password }}" 43 validate_certs: false 44 datacenter: "{{ dc1 }}" 45 folder: "/vm" 46 cluster: "{{ ccr1 }}" 47 name: "{{ virtual_machines[0].name }}" 48 state: absent 49 check_mode: true 50 register: unregister_vm_inventory_check_mode_result 51 52- name: Make sure the changed occurred 53 assert: 54 that: 55 - unregister_vm_inventory_check_mode_result.changed is sameas true 56 57- name: Unregister VM from inventory 58 vmware_guest_register_operation: 59 hostname: "{{ vcenter_hostname }}" 60 username: "{{ vcenter_username }}" 61 password: "{{ vcenter_password }}" 62 validate_certs: false 63 datacenter: "{{ dc1 }}" 64 folder: "/vm" 65 cluster: "{{ ccr1 }}" 66 name: "{{ virtual_machines[0].name }}" 67 state: absent 68 register: unregister_vm_inventory_result1 69 70- name: Gather all registered virtual machines 71 vmware_vm_info: 72 hostname: "{{ vcenter_hostname }}" 73 username: "{{ vcenter_username }}" 74 password: "{{ vcenter_password }}" 75 validate_certs: false 76 register: vms 77 78- assert: 79 that: 80 - >- 81 vms.virtual_machines 82 | selectattr('guest_name', 'equalto', virtual_machines[0].name) 83 | map(attribute='guest_name') 84 | list 85 | length == 0 86 - unregister_vm_inventory_result1.changed is sameas true 87 88- assert: 89 that: 90 - item.guest_name != virtual_machines[0].name 91 loop: "{{ vms.virtual_machines }}" 92 93- name: Register VM to inventory with check_mode 94 vmware_guest_register_operation: 95 hostname: "{{ vcenter_hostname }}" 96 username: "{{ vcenter_username }}" 97 password: "{{ vcenter_password }}" 98 validate_certs: false 99 datacenter: "{{ dc1 }}" 100 folder: "/vm" 101 esxi_hostname: "{{ esxi1 }}" 102 name: "{{ virtual_machines[0].name }}" 103 path: "{{ vm_vmx_file_path }}" 104 state: present 105 check_mode: true 106 register: register_vm_inventory_check_mode_result 107 108- name: Make sure the changed occurred 109 assert: 110 that: 111 - register_vm_inventory_check_mode_result.changed is sameas true 112 113- name: Register VM to inventory 114 vmware_guest_register_operation: 115 hostname: "{{ vcenter_hostname }}" 116 username: "{{ vcenter_username }}" 117 password: "{{ vcenter_password }}" 118 validate_certs: false 119 datacenter: "{{ dc1 }}" 120 folder: "/vm" 121 esxi_hostname: "{{ esxi1 }}" 122 name: "{{ virtual_machines[0].name }}" 123 path: "{{ vm_vmx_file_path }}" 124 state: present 125 register: register_vm_inventory_result 126 127- name: Gather all registered virtual machines 128 vmware_vm_info: 129 hostname: "{{ vcenter_hostname }}" 130 username: "{{ vcenter_username }}" 131 password: "{{ vcenter_password }}" 132 validate_certs: false 133 register: vms 134 135- assert: 136 that: 137 - >- 138 vms.virtual_machines 139 | selectattr('guest_name', 'equalto', virtual_machines[0].name) 140 | selectattr('esxi_hostname', 'equalto', esxi1) 141 | map(attribute='guest_name') 142 | list 143 | length == 1 144 - register_vm_inventory_result.changed is sameas true 145 146- name: Unregister VM from inventory 147 vmware_guest_register_operation: 148 hostname: "{{ vcenter_hostname }}" 149 username: "{{ vcenter_username }}" 150 password: "{{ vcenter_password }}" 151 validate_certs: false 152 datacenter: "{{ dc1 }}" 153 folder: "/vm" 154 cluster: "{{ ccr1 }}" 155 name: "{{ virtual_machines[0].name }}" 156 state: absent 157 register: unregister_vm_inventory_result2 158 159- name: Gather all registered virtual machines 160 vmware_vm_info: 161 hostname: "{{ vcenter_hostname }}" 162 username: "{{ vcenter_username }}" 163 password: "{{ vcenter_password }}" 164 validate_certs: false 165 register: vms 166 167- assert: 168 that: 169 - >- 170 vms.virtual_machines 171 | selectattr('guest_name', 'equalto', virtual_machines[0].name) 172 | map(attribute='guest_name') 173 | list 174 | length == 0 175 - unregister_vm_inventory_result2.changed is sameas true 176 177- name: Register VM in Cluster with check_mode 178 vmware_guest_register_operation: 179 hostname: "{{ vcenter_hostname }}" 180 username: "{{ vcenter_username }}" 181 password: "{{ vcenter_password }}" 182 validate_certs: false 183 datacenter: "{{ dc1 }}" 184 folder: "/vm" 185 cluster: "{{ ccr1 }}" 186 name: "{{ virtual_machines[0].name }}" 187 path: "{{ vm_vmx_file_path }}" 188 state: present 189 check_mode: true 190 register: register_vm_cluster_check_mode_result 191 192- name: Make sure the changed occurred 193 assert: 194 that: 195 - register_vm_cluster_check_mode_result.changed is sameas true 196 197- name: Register VM in Cluster 198 vmware_guest_register_operation: 199 hostname: "{{ vcenter_hostname }}" 200 username: "{{ vcenter_username }}" 201 password: "{{ vcenter_password }}" 202 validate_certs: false 203 datacenter: "{{ dc1 }}" 204 folder: "/vm" 205 cluster: "{{ ccr1 }}" 206 name: "{{ virtual_machines[0].name }}" 207 path: "{{ vm_vmx_file_path }}" 208 state: present 209 register: register_vm_cluster_result 210 211- name: Gather all registered virtual machines 212 vmware_vm_info: 213 hostname: "{{ vcenter_hostname }}" 214 username: "{{ vcenter_username }}" 215 password: "{{ vcenter_password }}" 216 validate_certs: false 217 register: vms 218 219- assert: 220 that: 221 - >- 222 vms.virtual_machines 223 | selectattr('guest_name', 'equalto', virtual_machines[0].name) 224 | selectattr('cluster', 'equalto', ccr1) 225 | map(attribute='guest_name') 226 | list 227 | length == 1 228 - register_vm_cluster_result.changed is sameas true 229 230- name: Unregister VM from inventory 231 vmware_guest_register_operation: 232 hostname: "{{ vcenter_hostname }}" 233 username: "{{ vcenter_username }}" 234 password: "{{ vcenter_password }}" 235 validate_certs: false 236 datacenter: "{{ dc1 }}" 237 folder: "/vm" 238 cluster: "{{ ccr1 }}" 239 name: "{{ virtual_machines[0].name }}" 240 state: absent 241 register: unregister_vm_inventory_result3 242 243- name: Gather all registered virtual machines 244 vmware_vm_info: 245 hostname: "{{ vcenter_hostname }}" 246 username: "{{ vcenter_username }}" 247 password: "{{ vcenter_password }}" 248 validate_certs: false 249 register: vms 250 251- assert: 252 that: 253 - >- 254 vms.virtual_machines 255 | selectattr('guest_name', 'equalto', virtual_machines[0].name) 256 | map(attribute='guest_name') 257 | list 258 | length == 0 259 - unregister_vm_inventory_result3.changed is sameas true 260 261- name: Register VM in Resource pool with check_mode 262 vmware_guest_register_operation: 263 hostname: "{{ vcenter_hostname }}" 264 username: "{{ vcenter_username }}" 265 password: "{{ vcenter_password }}" 266 validate_certs: false 267 datacenter: "{{ dc1 }}" 268 folder: "/vm" 269 cluster: "{{ ccr1 }}" 270 resource_pool: DC0_C0_RP1 271 name: "{{ virtual_machines[0].name }}" 272 path: "{{ vm_vmx_file_path }}" 273 state: present 274 check_mode: true 275 register: register_vm_resource_pool_check_mode_result 276 277- name: Make sure the changed occurred 278 assert: 279 that: 280 - register_vm_resource_pool_check_mode_result.changed is sameas true 281 282- name: Register VM in Resource pool 283 vmware_guest_register_operation: 284 hostname: "{{ vcenter_hostname }}" 285 username: "{{ vcenter_username }}" 286 password: "{{ vcenter_password }}" 287 validate_certs: false 288 datacenter: "{{ dc1 }}" 289 folder: "/vm" 290 cluster: "{{ ccr1 }}" 291 resource_pool: DC0_C0_RP1 292 name: "{{ virtual_machines[0].name }}" 293 path: "{{ vm_vmx_file_path }}" 294 state: present 295 register: register_vm_resource_pool_result 296 297- name: Gather all registered virtual machines 298 vmware_vm_info: 299 hostname: "{{ vcenter_hostname }}" 300 username: "{{ vcenter_username }}" 301 password: "{{ vcenter_password }}" 302 validate_certs: false 303 register: vms 304 305- assert: 306 that: 307 - >- 308 vms.virtual_machines 309 | selectattr('guest_name', 'equalto', virtual_machines[0].name) 310 | map(attribute='guest_name') 311 | list 312 | length == 1 313 - register_vm_resource_pool_result.changed is sameas true 314 315- name: Gather facts of vm 316 vmware_guest_info: 317 hostname: "{{ vcenter_hostname }}" 318 username: "{{ vcenter_username }}" 319 password: "{{ vcenter_password }}" 320 validate_certs: false 321 datacenter: "{{ dc1 }}" 322 folder: "/vm" 323 name: "{{ virtual_machines[0].name }}" 324 register: vm_facts 325 326- name: Get a vm uuid 327 set_fact: vm_uuid="{{ vm_facts.instance.hw_product_uuid }}" 328 329- name: Unregister VM from inventory with uuid parameter 330 vmware_guest_register_operation: 331 hostname: "{{ vcenter_hostname }}" 332 username: "{{ vcenter_username }}" 333 password: "{{ vcenter_password }}" 334 validate_certs: false 335 datacenter: "{{ dc1 }}" 336 folder: "/vm" 337 cluster: "{{ ccr1 }}" 338 name: "{{ virtual_machines[0].name }}" 339 uuid: "{{ vm_uuid }}" 340 state: absent 341 register: unregister_vm_inventory_result4 342 343- name: Gather all registered virtual machines 344 vmware_vm_info: 345 hostname: "{{ vcenter_hostname }}" 346 username: "{{ vcenter_username }}" 347 password: "{{ vcenter_password }}" 348 validate_certs: false 349 register: vms 350 351- assert: 352 that: 353 - >- 354 vms.virtual_machines 355 | selectattr('guest_name', 'equalto', virtual_machines[0].name) 356 | map(attribute='guest_name') 357 | list 358 | length == 0 359 - unregister_vm_inventory_result4.changed is sameas true