Add tests for rax_cbs

This commit is contained in:
Matt Martz 2015-01-19 11:04:53 -06:00
parent f01ae9f509
commit 3ae1014fd3
4 changed files with 365 additions and 5 deletions

View file

@ -114,6 +114,18 @@ def delete_rax_network(args):
args.assumeyes)
def delete_rax_cbs(args):
"""Function for deleting Cloud Networks"""
print ("--- Cleaning Cloud Block Storage matching '%s'" % args.match_re)
for region in pyrax.identity.services.network.regions:
cbs = pyrax.connect_to_cloud_blockstorage(region=region)
for volume in cbs.list():
if re.search(args.match_re, volume.name):
prompt_and_delete(volume,
'Delete matching %s? [y/n]: ' % volume,
args.assumeyes)
def main():
if not HAS_PYRAX:
raise SystemExit('The pyrax python module is required for this script')
@ -124,6 +136,7 @@ def main():
delete_rax_clb(args)
delete_rax_keypair(args)
delete_rax_network(args)
delete_rax_cbs(args)
if __name__ == '__main__':

View file

@ -5,11 +5,6 @@
tags:
- rackspace
roles:
- role: prepare_rax_tests
tags:
- prepare
- prepare_rax_tests
- role: test_rax
tags: test_rax
@ -30,3 +25,6 @@
- role: test_rax_network
tags: test_rax_network
- role: test_rax_cbs
tags: test_rax_cbs

View file

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

View file

@ -0,0 +1,346 @@
# ============================================================
- name: Test rax_cbs with no args
rax_cbs:
ignore_errors: true
register: rax_cbs
- name: Validate results of rax_cbs with no args
assert:
that:
- rax_cbs|failed
- rax_cbs.msg == 'missing required arguments: name'
# ============================================================
# ============================================================
- name: Test rax_cbs with name
rax_cbs:
name: fail
ignore_errors: true
register: rax_cbs
- name: Validate results of rax_cbs with no args
assert:
that:
- rax_cbs|failed
- rax_cbs.msg == 'No credentials supplied!'
# ============================================================
# ============================================================
- name: Test rax_cbs with name and credentials
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
name: fail
ignore_errors: true
register: rax_cbs
- name: Validate results of rax_cbs with name and credentials
assert:
that:
- rax_cbs|failed
- rax_cbs.msg.startswith('None is not a valid region')
# ============================================================
# ============================================================
- name: Test rax_cbs with creds, region, name and public_key string
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-1"
wait: true
register: rax_cbs
- name: Validate rax_cbs creds, region and name
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-1"
- rax_cbs.volume.attachments == []
- rax_cbs.volume.size == 100
- rax_cbs.volume.volume_type == 'SATA'
- rax_cbs.volume.status == 'available'
- name: Delete integration 1
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-1"
state: absent
register: rax_cbs
- name: Validate delete integration 1
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-1"
# ============================================================
# ============================================================
- name: Test rax_cbs with creds, region, name and invalid size
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: fail
size: 1
ignore_errors: true
register: rax_cbs
- name: Validate rax_cbs creds, region, name and invalid size
assert:
that:
- rax_cbs|failed
- rax_cbs.msg == '"size" must be greater than or equal to 100'
# ============================================================
# ============================================================
- name: Test rax_cbs with creds, region, name and valid size
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-2"
size: 150
wait: true
register: rax_cbs
- name: Validate rax_cbs creds, region and valid size
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-2"
- rax_cbs.volume.attachments == []
- rax_cbs.volume.size == 150
- rax_cbs.volume.volume_type == 'SATA'
- rax_cbs.volume.status == 'available'
- name: Delete integration 2
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-2"
state: absent
register: rax_cbs
- name: Validate delete integration 2
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-2"
# ============================================================
# ============================================================
- name: Test rax_cbs with creds, region, name and invalid volume_type
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: fail
volume_type: fail
ignore_errors: true
register: rax_cbs
- name: Validate rax_cbs creds, region, name and invalid volume_type
assert:
that:
- rax_cbs|failed
- "rax_cbs.msg == 'value of volume_type must be one of: SSD,SATA, got: fail'"
# ============================================================
# ============================================================
- name: Test rax_cbs with creds, region, name and valid volume_size
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-3"
volume_type: SSD
wait: true
register: rax_cbs
- name: Validate rax_cbs creds, region and valid volume_size
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-3"
- rax_cbs.volume.attachments == []
- rax_cbs.volume.size == 100
- rax_cbs.volume.volume_type == 'SSD'
- rax_cbs.volume.status == 'available'
- name: Delete integration 3
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-3"
state: absent
register: rax_cbs
- name: Validate delete integration 3
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-3"
# ============================================================
# ============================================================
- name: Test rax_cbs with creds, region, name and description
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-4"
description: "{{ resource_prefix }}-4 description"
wait: true
register: rax_cbs
- name: Validate rax_cbs creds, region and description
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-4"
- rax_cbs.volume.description == '{{ resource_prefix }}-4 description'
- rax_cbs.volume.attachments == []
- rax_cbs.volume.size == 100
- rax_cbs.volume.volume_type == 'SATA'
- rax_cbs.volume.status == 'available'
- name: Delete integration 4
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-4"
state: absent
register: rax_cbs
- name: Validate delete integration 4
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-4"
# ============================================================
# ============================================================
- name: Test rax_cbs with creds, region, name and meta
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-5"
meta:
foo: bar
wait: true
register: rax_cbs
- name: Validate rax_cbs creds, region and meta
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-5"
- rax_cbs.volume.attachments == []
- rax_cbs.volume.size == 100
- rax_cbs.volume.volume_type == 'SATA'
- rax_cbs.volume.status == 'available'
- rax_cbs.volume.metadata.foo == 'bar'
- name: Delete integration 5
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-5"
state: absent
register: rax_cbs
- name: Validate delete integration 5
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.display_name == "{{ resource_prefix }}-5"
# ============================================================
# ============================================================
- name: Test rax_cbs with idempotency 1
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-6"
wait: true
register: rax_cbs_1
- name: Validate rax_cbs with idempotency 1
assert:
that:
- rax_cbs_1|success
- rax_cbs_1|changed
- rax_cbs_1.volume.display_name == "{{ resource_prefix }}-6"
- name: Test rax_cbs with idempotency 2
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-6"
register: rax_cbs_2
- name: Validate rax_cbs with idempotency 2
assert:
that:
- rax_cbs_2|success
- not rax_cbs_2|changed
- rax_cbs_2.volume.display_name == "{{ resource_prefix }}-6"
- rax_cbs_2.volume.id == rax_cbs_1.volume.id
- name: Delete integration 6
rax_cbs:
username: "{{ rackspace_username }}"
api_key: "{{ rackspace_api_key }}"
region: "{{ rackspace_region }}"
name: "{{ resource_prefix }}-6"
state: absent
register: rax_cbs
- name: Validate delete integration 6
assert:
that:
- rax_cbs|success
- rax_cbs|changed
- rax_cbs.volume.name == "{{ resource_prefix }}-6"
# ============================================================