You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/roles/test_rax_cbs_attachments/tasks/main.yml

261 lines
7.7 KiB
YAML

# ============================================================
- name: Test rax_cbs_attachments with no args
rax_cbs_attachments:
ignore_errors: true
register: rax_cbs_attachments
- name: Validate results of rax_cbs_attachments with no args
assert:
that:
- rax_cbs_attachments|failed
- 'rax_cbs_attachments.msg == "missing required arguments: server,volume,device"'
# ============================================================
# ============================================================
- name: Test rax_cbs_attachments with server, volume and device
rax_cbs_attachments:
server: '1234'
volume: '1234'
device: /dev/xvde
ignore_errors: true
register: rax_cbs_attachments
- name: Validate results of rax_cbs_attachments with server, volume and device
assert:
that:
- rax_cbs_attachments|failed
- rax_cbs_attachments.msg == 'No credentials supplied!'
# ============================================================
# ============================================================
- name: Test rax_cbs_attachments with credentials, server, volume and device
rax_cbs_attachments:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
server: '1234'
volume: '1234'
device: /dev/xvde
ignore_errors: true
register: rax_cbs_attachments
- name: Validate results of rax_cbs_attachments with credentials, server, volume and device
assert:
that:
- rax_cbs_attachments|failed
- rax_cbs_attachments.msg.startswith('None is not a valid region')
# ============================================================
# ============================================================
- name: Test rax_cbs_attachments with creds, region, invalid server, invalid volume and device
rax_cbs_attachments:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
server: '1234'
volume: '1234'
device: /dev/xvde
ignore_errors: true
register: rax_cbs_attachments
- name: Validate rax_cbs_attachments creds, region, invalid server, invalid volume and device
assert:
that:
- rax_cbs_attachments|failed
- rax_cbs_attachments.msg == 'No matching storage volumes were found'
# ============================================================
# ============================================================
- name: Build Volume for rax_cbs_attachments test
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-rax_cbs_attachments"
wait: true
wait_timeout: "{{ rackspace_wait_timeout }}"
register: rax_cbs
- name: Validate volume build
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-rax_cbs_attachments"
# ============================================================
# ============================================================
- name: Build CloudServer for rax_cbs_attachments tests
rax:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
image: "{{ rackspace_image_id }}"
flavor: "{{ rackspace_flavor }}"
name: "{{ resource_prefix }}-rax_cbs_attachments"
wait: true
wait_timeout: "{{ rackspace_wait_timeout }}"
register: rax
- name: Validate CloudServer build
assert:
that:
- rax|success
- rax|changed
- rax.action == 'create'
- rax.instances|length == 1
- rax.instances[0].name == "{{ resource_prefix }}-rax_cbs_attachments"
# ============================================================
# ============================================================
- name: Test rax_cbs_attachments with creds, region, invalid server, volume and device
rax_cbs_attachments:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
server: '1234'
volume: "{{ rax_cbs.volume.id }}"
device: /dev/xvde
ignore_errors: true
register: rax_cbs_attachments
- name: Validate rax_cbs_attachments creds, region, invalid server, volume and device
assert:
that:
- rax_cbs_attachments|failed
- rax_cbs_attachments.msg == 'No Server was matched by name, try using the Server ID instead'
# ============================================================
# ============================================================
- name: Test rax_cbs_attachments with creds, region, server, volume and device (valid)
rax_cbs_attachments:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
server: "{{ rax.instances[0].id }}"
volume: "{{ rax_cbs.volume.id }}"
device: /dev/xvde
wait: true
wait_timeout: "{{ rackspace_wait_timeout }}"
register: rax_cbs_attachments
- name: Validate rax_cbs_attachments creds, region, server, volume and device (valid)
assert:
that:
- rax_cbs_attachments|success
- rax_cbs_attachments|changed
- rax_cbs_attachments.volume.attachments.0.device == '/dev/xvde'
- rax_cbs_attachments.volume.attachments.0.server_id == "{{ rax.instances[0].id }}"
- name: Idempotent present test
rax_cbs_attachments:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
server: "{{ rax.instances[0].id }}"
volume: "{{ rax_cbs.volume.id }}"
device: /dev/xvde
wait: true
wait_timeout: "{{ rackspace_wait_timeout }}"
register: rax_cbs_attachments
- name: Validate idempotent present test
assert:
that:
- rax_cbs_attachments|success
- not rax_cbs_attachments|changed
- name: Unattach volume
rax_cbs_attachments:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
server: "{{ rax.instances[0].id }}"
volume: "{{ rax_cbs.volume.id }}"
device: /dev/xvde
wait: true
wait_timeout: "{{ rackspace_wait_timeout }}"
state: absent
register: rax_cbs_attachments
- name: Validate unattach volume
assert:
that:
- rax_cbs_attachments|success
- rax_cbs_attachments|changed
- rax_cbs_attachments.volume.attachments == []
- name: Idempotent absent test
rax_cbs_attachments:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
server: "{{ rax.instances[0].id }}"
volume: "{{ rax_cbs.volume.id }}"
device: /dev/xvde
wait: true
wait_timeout: "{{ rackspace_wait_timeout }}"
state: absent
register: rax_cbs_attachments
- name: Validate idempotent absent test
assert:
that:
- rax_cbs_attachments|success
- not rax_cbs_attachments|changed
# ============================================================
# ============================================================
- name: Delete test volume
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ rax_cbs.volume.id }}"
state: absent
register: rax_cbs
- name: Validate delete integration 6
assert:
that:
- rax_cbs|success
- rax_cbs|changed
# ============================================================
# ============================================================
- name: "Delete CloudServer"
rax:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
instance_ids: "{{ rax.instances[0].id }}"
state: absent
wait: true
wait_timeout: "{{ rackspace_wait_timeout }}"
register: rax
- name: "Validate delete"
assert:
that:
- rax|changed
- rax|success
- rax.action == 'delete'
# ============================================================