|
|
|
# ============================================================
|
|
|
|
- name: Test rax with no args
|
|
|
|
rax:
|
|
|
|
ignore_errors: true
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate results of rax with no args
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|failed
|
|
|
|
- rax.msg == 'No credentials supplied!'
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax with credentials
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
ignore_errors: true
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate results of rax with only creds
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|failed
|
|
|
|
- rax.msg.startswith('None is not a valid region')
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax with creds and region
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
ignore_errors: true
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax creds and region
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|failed
|
|
|
|
- rax.msg == 'image is required for the "rax" module'
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax with creds, region and image
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
ignore_errors: true
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax with creds, region and image
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|failed
|
|
|
|
- rax.msg == 'flavor is required for the "rax" module'
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax with creds, region, image and flavor
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
ignore_errors: true
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax with creds, region, image and flavor
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|failed
|
|
|
|
- rax.msg == 'name is required for the "rax" module'
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax with creds, region, image, flavor and name
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-1"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax with creds, region, image, flavor and name
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 1
|
|
|
|
- rax.instances[0].name == "{{ resource_prefix }}-1"
|
|
|
|
- rax.instances[0] == rax.success[0]
|
|
|
|
- rax.instances[0].rax_status == 'BUILD'
|
|
|
|
|
|
|
|
- name: "Delete integration 1"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-1"
|
|
|
|
state: absent
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 1"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success[0].name == "{{ resource_prefix }}-1"
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax basic idempotency 1
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-2"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax basic idepmpotency 1
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 1
|
|
|
|
- rax.instances[0].name == "{{ resource_prefix }}-2"
|
|
|
|
- rax.instances[0] == rax.success[0]
|
|
|
|
- rax.instances[0].rax_status == 'ACTIVE'
|
|
|
|
|
|
|
|
- name: Test rax basic idempotency 2
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-2"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax basic idempotency 2
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- not rax|changed
|
|
|
|
- not rax.action
|
|
|
|
- rax.instances|length == 1
|
|
|
|
- rax.instances[0].name == "{{ resource_prefix }}-2"
|
|
|
|
- not rax.success
|
|
|
|
|
|
|
|
- name: "Delete integration 2"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-2"
|
|
|
|
state: absent
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 2"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success[0].name == "{{ resource_prefix }}-2"
|
|
|
|
- rax.success[0].rax_status == "DELETED"
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax basic idempotency with meta 1
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-3"
|
|
|
|
meta:
|
|
|
|
foo: bar
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax basic idepmpotency with meta 1
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 1
|
|
|
|
- rax.instances[0].name == "{{ resource_prefix }}-3"
|
|
|
|
- rax.instances[0] == rax.success[0]
|
|
|
|
- rax.instances[0].rax_status == 'ACTIVE'
|
|
|
|
- rax.instances[0].rax_metadata.foo == 'bar'
|
|
|
|
|
|
|
|
- name: Test rax basic idempotency with meta 2
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-3"
|
|
|
|
meta:
|
|
|
|
foo: bar
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax basic idempotency with meta 2
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- not rax|changed
|
|
|
|
- not rax.action
|
|
|
|
- rax.instances|length == 1
|
|
|
|
- rax.instances[0].name == "{{ resource_prefix }}-3"
|
|
|
|
- not rax.success
|
|
|
|
|
|
|
|
- name: "Delete integration 3"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-3"
|
|
|
|
state: absent
|
|
|
|
meta:
|
|
|
|
foo: bar
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 3"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success[0].name == "{{ resource_prefix }}-3"
|
|
|
|
- rax.success[0].rax_status == "DELETED"
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax basic idempotency multi server 1
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-4"
|
|
|
|
count: 2
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax basic idepmpotency multi server 1
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 2
|
|
|
|
- rax.instances == rax.success
|
|
|
|
|
|
|
|
- name: Test rax basic idempotency multi server 2
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-4"
|
|
|
|
count: 2
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax basic idempotency multi server 2
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- not rax|changed
|
|
|
|
- not rax.action
|
|
|
|
- rax.instances|length == 2
|
|
|
|
- not rax.success
|
|
|
|
|
|
|
|
- name: Test rax basic idempotency multi server 3
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-4"
|
|
|
|
count: 3
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax basic idempotency multi server 3
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 3
|
|
|
|
- rax.success|length == 1
|
|
|
|
|
|
|
|
- name: "Delete integration 4"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-4"
|
|
|
|
count: 3
|
|
|
|
state: absent
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 4"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success|length == 3
|
|
|
|
- not rax.instances
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax multi server group without exact_count 1
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-5-%02d"
|
|
|
|
count: 2
|
|
|
|
group: "{{ resource_prefix }}-5"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax multi server group without exact_count 1
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 2
|
|
|
|
- rax.instances == rax.success
|
|
|
|
- rax.instances|map(attribute='rax_name')|unique|length == 2
|
|
|
|
|
|
|
|
- name: "Test delete integration 5"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-5-%02d"
|
|
|
|
count: 2
|
|
|
|
group: "{{ resource_prefix }}-5"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
state: absent
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 5"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success|length == 2
|
|
|
|
- not rax.instances
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax multi server group without exact_count non-idempotency 1
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-6-%02d"
|
|
|
|
count: 2
|
|
|
|
group: "{{ resource_prefix }}-6"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax multi server group without exact_count non-idempotency 1
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 2
|
|
|
|
- rax.instances == rax.success
|
|
|
|
- rax.instances|map(attribute='rax_name')|unique|length == 2
|
|
|
|
|
|
|
|
- name: Test rax multi server group without exact_count non-idempotency 2
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-6-%02d"
|
|
|
|
count: 2
|
|
|
|
group: "{{ resource_prefix }}-6"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax multi server group without exact_count non-idempotency 2
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 4
|
|
|
|
- rax.instances|map(attribute='rax_name')|unique|length == 4
|
|
|
|
|
|
|
|
- name: "Test delete integration 6"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-6-%02d"
|
|
|
|
count: 4
|
|
|
|
group: "{{ resource_prefix }}-6"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
state: absent
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 6"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success|length == 4
|
|
|
|
- not rax.instances
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax multi server group with exact_count 1
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-7-%02d"
|
|
|
|
count: 2
|
|
|
|
exact_count: true
|
|
|
|
group: "{{ resource_prefix }}-7"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax multi server group with exact_count 1
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 2
|
|
|
|
- rax.instances == rax.success
|
|
|
|
- rax.instances|map(attribute='rax_name')|unique|length == 2
|
|
|
|
|
|
|
|
- name: Test rax multi server group with exact_count 2
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-7-%02d"
|
|
|
|
count: 2
|
|
|
|
exact_count: true
|
|
|
|
group: "{{ resource_prefix }}-7"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax multi server group with exact_count 2
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- not rax|changed
|
|
|
|
- not rax.action
|
|
|
|
- rax.instances|length == 2
|
|
|
|
- rax.instances|map(attribute='rax_name')|unique|length == 2
|
|
|
|
|
|
|
|
- name: Test rax multi server group with exact_count 3
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-7-%02d"
|
|
|
|
count: 4
|
|
|
|
exact_count: true
|
|
|
|
group: "{{ resource_prefix }}-7"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax multi server group with exact_count 3
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 4
|
|
|
|
- rax.success|length == 2
|
|
|
|
- rax.instances|map(attribute='rax_name')|unique|length == 4
|
|
|
|
|
|
|
|
|
|
|
|
- name: "Test delete integration 7"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-7-%02d"
|
|
|
|
count: 0
|
|
|
|
exact_count: true
|
|
|
|
group: "{{ resource_prefix }}-7"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 7"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success|length == 4
|
|
|
|
- not rax.instances
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax multi server group without exact_count and disabled auto_increment 1
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-8"
|
|
|
|
count: 2
|
|
|
|
group: "{{ resource_prefix }}-8"
|
|
|
|
auto_increment: false
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax multi server group without exact_count and disabled auto_increment 1
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 2
|
|
|
|
- rax.instances == rax.success
|
|
|
|
- rax.instances|map(attribute='rax_name')|unique|length == 1
|
|
|
|
|
|
|
|
- name: "Test delete integration 8"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-8"
|
|
|
|
count: 2
|
|
|
|
group: "{{ resource_prefix }}-8"
|
|
|
|
auto_increment: false
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
state: absent
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 8"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success|length == 2
|
|
|
|
- not rax.instances
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax multi server group with exact_count and no printf 1
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-9"
|
|
|
|
count: 2
|
|
|
|
exact_count: true
|
|
|
|
group: "{{ resource_prefix }}-9"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax multi server group with exact_count and no printf 1
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 2
|
|
|
|
- rax.instances == rax.success
|
|
|
|
- rax.instances|map(attribute='rax_name')|unique|list|sort == ['{{ resource_prefix }}-91', '{{ resource_prefix }}-92']
|
|
|
|
|
|
|
|
- name: "Test delete integration 9"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-9"
|
|
|
|
count: 0
|
|
|
|
exact_count: true
|
|
|
|
group: "{{ resource_prefix }}-9"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 9"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success|length == 2
|
|
|
|
- not rax.instances
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax multi server group with exact_count and offset 1
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-10-%03d"
|
|
|
|
count: 2
|
|
|
|
count_offset: 10
|
|
|
|
exact_count: true
|
|
|
|
group: "{{ resource_prefix }}-10"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax multi server group with exact_count and offset 1
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 2
|
|
|
|
- rax.instances == rax.success
|
|
|
|
- rax.instances|map(attribute='rax_name')|unique|list|sort == ['{{ resource_prefix }}-10-010', '{{ resource_prefix }}-10-011']
|
|
|
|
|
|
|
|
- name: "Test delete integration 10"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-10-%03d"
|
|
|
|
count: 0
|
|
|
|
count_offset: 10
|
|
|
|
exact_count: true
|
|
|
|
group: "{{ resource_prefix }}-10"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 10"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success|length == 2
|
|
|
|
- not rax.instances
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax multi server group with exact_count and offset 1
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-11-%03d"
|
|
|
|
count: 2
|
|
|
|
count_offset: 10
|
|
|
|
exact_count: true
|
|
|
|
group: "{{ resource_prefix }}-11"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax multi server group with exact_count and offset 1
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 2
|
|
|
|
- rax.instances == rax.success
|
|
|
|
- rax.instances|map(attribute='rax_name')|unique|list|sort == ['{{ resource_prefix }}-11-010', '{{ resource_prefix }}-11-011']
|
|
|
|
|
|
|
|
- name: "Test delete integration 11"
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-11-%03d"
|
|
|
|
count: 0
|
|
|
|
count_offset: 10
|
|
|
|
exact_count: true
|
|
|
|
group: "{{ resource_prefix }}-11"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: "Validate delete integration 11"
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'delete'
|
|
|
|
- rax.success|length == 2
|
|
|
|
- not rax.instances
|
|
|
|
# ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ============================================================
|
|
|
|
- name: Test rax instance_ids absent 1 (create)
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
name: "{{ resource_prefix }}-12"
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax
|
|
|
|
|
|
|
|
- name: Validate rax instance_ids absent 1 (create)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax|success
|
|
|
|
- rax|changed
|
|
|
|
- rax.action == 'create'
|
|
|
|
- rax.instances|length == 1
|
|
|
|
- rax.instances[0].name == "{{ resource_prefix }}-12"
|
|
|
|
- rax.instances[0] == rax.success[0]
|
|
|
|
- rax.instances[0].rax_status == 'ACTIVE'
|
|
|
|
|
|
|
|
- name: Test rax instance_ids absent 2 (delete)
|
|
|
|
rax:
|
|
|
|
username: "{{ rackspace_username }}"
|
|
|
|
api_key: "{{ rackspace_api_key }}"
|
|
|
|
region: "{{ rackspace_region }}"
|
|
|
|
image: "{{ rackspace_image_id }}"
|
|
|
|
flavor: "{{ rackspace_flavor }}"
|
|
|
|
instance_ids:
|
|
|
|
- "{{ rax.success.0.rax_id }}"
|
|
|
|
state: absent
|
|
|
|
wait: true
|
|
|
|
wait_timeout: "{{ rackspace_wait_timeout }}"
|
|
|
|
register: rax2
|
|
|
|
|
|
|
|
- name: Validate rax instance_ids absent 2 (delete)
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- rax2|success
|
|
|
|
- rax2|changed
|
|
|
|
- rax2.action == 'delete'
|
|
|
|
- rax2.success.0.rax_id == rax.success.0.rax_id
|
|
|
|
# ============================================================
|