1--- 2- name: setup instance to be absent 3 cs_instance: 4 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 5 zone: "{{ cs_common_zone_basic }}" 6 state: expunged 7 register: instance 8- name: verify instance to be absent 9 assert: 10 that: 11 - instance is successful 12 13- name: test create instance in check mode 14 cs_instance: 15 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 16 zone: "{{ cs_common_zone_basic }}" 17 template: "{{ test_cs_instance_template }}" 18 service_offering: "{{ test_cs_instance_offering_1 }}" 19 affinity_group: "{{ cs_resource_prefix }}-ag" 20 security_group: "{{ cs_resource_prefix }}-sg" 21 ssh_key: "{{ cs_resource_prefix }}-sshkey" 22 user_data: | 23 #cloud-config 24 package_upgrade: true 25 packages: 26 - tmux 27 tags: [] 28 register: instance 29 check_mode: true 30- name: verify create instance in check mode 31 assert: 32 that: 33 - instance is successful 34 - instance is changed 35 36- name: test create instance 37 cs_instance: 38 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 39 zone: "{{ cs_common_zone_basic }}" 40 template: "{{ test_cs_instance_template }}" 41 service_offering: "{{ test_cs_instance_offering_1 }}" 42 affinity_group: "{{ cs_resource_prefix }}-ag" 43 security_group: "{{ cs_resource_prefix }}-sg" 44 ssh_key: "{{ cs_resource_prefix }}-sshkey" 45 user_data: | 46 #cloud-config 47 package_upgrade: true 48 packages: 49 - tmux 50 tags: [] 51 register: instance 52- name: verify create instance 53 assert: 54 that: 55 - instance is successful 56 - instance is changed 57 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 58 - instance.display_name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 59 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 60 - instance.state == "Running" 61 - instance.ssh_key == "{{ cs_resource_prefix }}-sshkey" 62 - not instance.tags 63 64- name: test create instance idempotence 65 cs_instance: 66 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 67 zone: "{{ cs_common_zone_basic }}" 68 template: "{{ test_cs_instance_template }}" 69 service_offering: "{{ test_cs_instance_offering_1 }}" 70 affinity_group: "{{ cs_resource_prefix }}-ag" 71 security_group: "{{ cs_resource_prefix }}-sg" 72 ssh_key: "{{ cs_resource_prefix }}-sshkey" 73 user_data: | 74 #cloud-config 75 package_upgrade: true 76 packages: 77 - tmux 78 tags: [] 79 register: instance 80- name: verify create instance idempotence 81 assert: 82 that: 83 - instance is successful 84 - instance is not changed 85 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 86 - instance.display_name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 87 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 88 - instance.state == "Running" 89 - instance.ssh_key == "{{ cs_resource_prefix }}-sshkey" 90 - not instance.tags 91 92- name: gather host infos of running instance 93 cs_instance_info: 94 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 95 96- name: test running instance not updated in check mode 97 cs_instance: 98 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 99 zone: "{{ cs_common_zone_basic }}" 100 service_offering: "{{ test_cs_instance_offering_2 }}" 101 register: instance 102 check_mode: true 103- name: verify running instance not updated in check mode 104 assert: 105 that: 106 - instance is successful 107 - instance is not changed 108 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 109 - instance.display_name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 110 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 111 - instance.state == "Running" 112 113- name: test running instance not updated 114 cs_instance: 115 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 116 zone: "{{ cs_common_zone_basic }}" 117 service_offering: "{{ test_cs_instance_offering_2 }}" 118 register: instance 119- name: verify running instance not updated 120 assert: 121 that: 122 - instance is successful 123 - instance is not changed 124 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 125 - instance.display_name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 126 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 127 - instance.state == "Running" 128 129- name: test stopping instance in check mode 130 cs_instance: 131 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 132 zone: "{{ cs_common_zone_basic }}" 133 state: stopped 134 register: instance 135 check_mode: true 136- name: verify stopping instance in check mode 137 assert: 138 that: 139 - instance is successful 140 - instance is changed 141 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 142 - instance.display_name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 143 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 144 - instance.state == "Running" 145 146- name: test stopping instance 147 cs_instance: 148 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 149 zone: "{{ cs_common_zone_basic }}" 150 state: stopped 151 register: instance 152- name: verify stopping instance 153 assert: 154 that: 155 - instance is successful 156 - instance is changed 157 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 158 - instance.display_name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 159 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 160 - instance.state == "Stopped" 161 162- name: test stopping instance idempotence 163 cs_instance: 164 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 165 zone: "{{ cs_common_zone_basic }}" 166 state: stopped 167 register: instance 168- name: verify stopping instance idempotence 169 assert: 170 that: 171 - instance is successful 172 - instance is not changed 173 - instance.state == "Stopped" 174 175- name: test updating stopped instance in check mode 176 cs_instance: 177 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 178 zone: "{{ cs_common_zone_basic }}" 179 display_name: "{{ cs_resource_prefix }}-display-{{ instance_number }}" 180 service_offering: "{{ test_cs_instance_offering_2 }}" 181 register: instance 182 check_mode: true 183- name: verify updating stopped instance in check mode 184 assert: 185 that: 186 - instance is successful 187 - instance is changed 188 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 189 - instance.display_name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 190 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 191 - instance.state == "Stopped" 192 193- name: test updating stopped instance 194 cs_instance: 195 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 196 zone: "{{ cs_common_zone_basic }}" 197 display_name: "{{ cs_resource_prefix }}-display-{{ instance_number }}" 198 service_offering: "{{ test_cs_instance_offering_2 }}" 199 register: instance 200- name: verify updating stopped instance 201 assert: 202 that: 203 - instance is successful 204 - instance is changed 205 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 206 - instance.display_name == "{{ cs_resource_prefix }}-display-{{ instance_number }}" 207 - instance.service_offering == "{{ test_cs_instance_offering_2 }}" 208 - instance.state == "Stopped" 209 210- name: test updating stopped instance idempotence 211 cs_instance: 212 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 213 zone: "{{ cs_common_zone_basic }}" 214 display_name: "{{ cs_resource_prefix }}-display-{{ instance_number }}" 215 service_offering: "{{ test_cs_instance_offering_2 }}" 216 register: instance 217- name: verify updating stopped instance idempotence 218 assert: 219 that: 220 - instance is successful 221 - instance is not changed 222 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 223 - instance.display_name == "{{ cs_resource_prefix }}-display-{{ instance_number }}" 224 - instance.service_offering == "{{ test_cs_instance_offering_2 }}" 225 - instance.state == "Stopped" 226 227- name: test starting instance 228 cs_instance: 229 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 230 zone: "{{ cs_common_zone_basic }}" 231 state: started 232 register: instance 233- name: verify starting instance 234 assert: 235 that: 236 - instance is successful 237 - instance is changed 238 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 239 - instance.display_name == "{{ cs_resource_prefix }}-display-{{ instance_number }}" 240 - instance.service_offering == "{{ test_cs_instance_offering_2 }}" 241 - instance.state == "Running" 242 243- name: test starting instance idempotence 244 cs_instance: 245 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 246 zone: "{{ cs_common_zone_basic }}" 247 state: started 248 register: instance 249- name: verify starting instance idempotence 250 assert: 251 that: 252 - instance is successful 253 - instance is not changed 254 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 255 - instance.display_name == "{{ cs_resource_prefix }}-display-{{ instance_number }}" 256 - instance.service_offering == "{{ test_cs_instance_offering_2 }}" 257 - instance.state == "Running" 258 259- name: test force update running instance in check mode 260 cs_instance: 261 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 262 zone: "{{ cs_common_zone_basic }}" 263 service_offering: "{{ test_cs_instance_offering_1 }}" 264 force: true 265 register: instance 266 check_mode: true 267- name: verify force update running instance in check mode 268 assert: 269 that: 270 - instance is successful 271 - instance is changed 272 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 273 - instance.display_name == "{{ cs_resource_prefix }}-display-{{ instance_number }}" 274 - instance.service_offering == "{{ test_cs_instance_offering_2 }}" 275 - instance.state == "Running" 276 277- name: test force update running instance 278 cs_instance: 279 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 280 zone: "{{ cs_common_zone_basic }}" 281 service_offering: "{{ test_cs_instance_offering_1 }}" 282 force: true 283 register: instance 284- name: verify force update running instance 285 assert: 286 that: 287 - instance is successful 288 - instance is changed 289 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 290 - instance.display_name == "{{ cs_resource_prefix }}-display-{{ instance_number }}" 291 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 292 - instance.state == "Running" 293 294- name: test force update running instance idempotence 295 cs_instance: 296 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 297 zone: "{{ cs_common_zone_basic }}" 298 service_offering: "{{ test_cs_instance_offering_1 }}" 299 force: true 300 register: instance 301- name: verify force update running instance idempotence 302 assert: 303 that: 304 - instance is successful 305 - instance is not changed 306 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 307 - instance.display_name == "{{ cs_resource_prefix }}-display-{{ instance_number }}" 308 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 309 - instance.state == "Running" 310 311- name: test restore instance in check mode 312 cs_instance: 313 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 314 zone: "{{ cs_common_zone_basic }}" 315 template: "{{ test_cs_instance_template }}" 316 state: restored 317 register: instance 318 check_mode: true 319- name: verify restore instance in check mode 320 assert: 321 that: 322 - instance is successful 323 - instance is changed 324 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 325 - instance.display_name == "{{ cs_resource_prefix }}-display-{{ instance_number }}" 326 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 327 328- name: test restore instance 329 cs_instance: 330 name: "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 331 zone: "{{ cs_common_zone_basic }}" 332 template: "{{ test_cs_instance_template }}" 333 state: restored 334 register: instance 335- name: verify restore instance 336 assert: 337 that: 338 - instance is successful 339 - instance is changed 340 - instance.name == "{{ cs_resource_prefix }}-vm-{{ instance_number }}" 341 - instance.display_name == "{{ cs_resource_prefix }}-display-{{ instance_number }}" 342 - instance.service_offering == "{{ test_cs_instance_offering_1 }}" 343