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