Add tests for rax_cbs_attachments

This commit is contained in:
Matt Martz 2015-01-19 12:45:52 -06:00
parent 5e00e72f7a
commit 74f4d186cc
3 changed files with 259 additions and 0 deletions

View file

@ -28,3 +28,6 @@
- role: test_rax_cbs
tags: test_rax_cbs
- role: test_rax_cbs_attachments
tags: test_rax_cbs_attachments

View file

@ -0,0 +1,3 @@
dependencies:
- prepare_tests
- prepare_rax_tests

View file

@ -0,0 +1,253 @@
# ============================================================
- 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
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
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
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
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
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
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
register: rax
- name: "Validate delete"
assert:
that:
- rax|changed
- rax|success
- rax.action == 'delete'
# ============================================================