From f01ae9f50951708cae41a153edf917ac3612fe9c Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Fri, 16 Jan 2015 15:25:32 -0600 Subject: [PATCH] Add test_rax_network role --- test/integration/cleanup_rax.py | 19 ++- test/integration/rackspace.yml | 3 + .../roles/test_rax_network/meta/main.yml | 3 + .../roles/test_rax_network/tasks/main.yml | 158 ++++++++++++++++++ 4 files changed, 182 insertions(+), 1 deletion(-) create mode 100644 test/integration/roles/test_rax_network/meta/main.yml create mode 100644 test/integration/roles/test_rax_network/tasks/main.yml diff --git a/test/integration/cleanup_rax.py b/test/integration/cleanup_rax.py index 4d1c55b1e0..932f23e61a 100644 --- a/test/integration/cleanup_rax.py +++ b/test/integration/cleanup_rax.py @@ -102,6 +102,18 @@ def delete_rax_keypair(args): args.assumeyes) +def delete_rax_network(args): + """Function for deleting Cloud Networks""" + print ("--- Cleaning Cloud Networks matching '%s'" % args.match_re) + for region in pyrax.identity.services.network.regions: + cnw = pyrax.connect_to_cloud_networks(region=region) + for network in cnw.list(): + if re.search(args.match_re, network.name): + prompt_and_delete(network, + 'Delete matching %s? [y/n]: ' % network, + args.assumeyes) + + def main(): if not HAS_PYRAX: raise SystemExit('The pyrax python module is required for this script') @@ -111,6 +123,11 @@ def main(): delete_rax(args) delete_rax_clb(args) delete_rax_keypair(args) + delete_rax_network(args) + if __name__ == '__main__': - main() + try: + main() + except KeyboardInterrupt: + print ('\nExiting...') diff --git a/test/integration/rackspace.yml b/test/integration/rackspace.yml index c37b3892f4..ba2f9f0714 100644 --- a/test/integration/rackspace.yml +++ b/test/integration/rackspace.yml @@ -27,3 +27,6 @@ - role: test_rax_clb_nodes tags: test_rax_clb_nodes + + - role: test_rax_network + tags: test_rax_network diff --git a/test/integration/roles/test_rax_network/meta/main.yml b/test/integration/roles/test_rax_network/meta/main.yml new file mode 100644 index 0000000000..a3f85b642e --- /dev/null +++ b/test/integration/roles/test_rax_network/meta/main.yml @@ -0,0 +1,3 @@ +dependencies: + - prepare_tests + - prepare_rax_tests diff --git a/test/integration/roles/test_rax_network/tasks/main.yml b/test/integration/roles/test_rax_network/tasks/main.yml new file mode 100644 index 0000000000..27eda8b273 --- /dev/null +++ b/test/integration/roles/test_rax_network/tasks/main.yml @@ -0,0 +1,158 @@ +# ============================================================ +- name: Test rax_network with no args + rax_network: + ignore_errors: true + register: rax_network + +- name: Validate results of rax_network with no args + assert: + that: + - rax_network|failed + - rax_network.msg == 'missing required arguments: label' +# ============================================================ + + + +# ============================================================ +- name: Test rax_network with label + rax_network: + label: fail + ignore_errors: true + register: rax_network + +- name: Validate results of rax_network with no args + assert: + that: + - rax_network|failed + - rax_network.msg == 'No credentials supplied!' +# ============================================================ + + + +# ============================================================ +- name: Test rax_network with creds + rax_network: + username: "{{ rackspace_username }}" + api_key: "{{ rackspace_api_key }}" + label: fail + ignore_errors: true + register: rax_network + +- name: Validate results of rax_network with creds + assert: + that: + - rax_network|failed + - rax_network.msg.startswith('None is not a valid region') +# ============================================================ + + + +# ============================================================ +- name: Test rax_network with creds and region + rax_network: + username: "{{ rackspace_username }}" + api_key: "{{ rackspace_api_key }}" + region: "{{ rackspace_region }}" + label: fail + ignore_errors: true + register: rax_network + +- name: Validate results of rax_network with creds and region + assert: + that: + - rax_network|failed + - rax_network.msg == 'missing required arguments: cidr' +# ============================================================ + + + +# ============================================================ +- name: Test rax_network with creds, region and cidr + rax_network: + username: "{{ rackspace_username }}" + api_key: "{{ rackspace_api_key }}" + region: "{{ rackspace_region }}" + cidr: "172.17.141.0/24" + label: "{{ resource_prefix }}-1" + register: rax_network + +- name: Validate results of rax_network with creds, region and cidr + assert: + that: + - rax_network|success + - rax_network|changed + - rax_network.networks.0.cidr == "172.17.141.0/24" + - rax_network.networks.0.label == "{{ resource_prefix }}-1" + +- name: Delete Integration 1 + rax_network: + username: "{{ rackspace_username }}" + api_key: "{{ rackspace_api_key }}" + region: "{{ rackspace_region }}" + label: "{{ resource_prefix }}-1" + state: absent + register: rax_network + +- name: Validate delete integration 1 + assert: + that: + - rax_network|changed + - rax_network|success + - rax_network.networks.0.label == "{{ resource_prefix }}-1" + - rax_network.networks.0.cidr == "172.17.141.0/24" +# ============================================================ + + + +# ============================================================ +- name: Test rax_network idempotency 1 + rax_network: + username: "{{ rackspace_username }}" + api_key: "{{ rackspace_api_key }}" + region: "{{ rackspace_region }}" + cidr: "172.17.142.0/24" + label: "{{ resource_prefix }}-2" + register: rax_network + +- name: Validate rax_network idempotency 1 + assert: + that: + - rax_network|success + - rax_network|changed + - rax_network.networks.0.cidr == "172.17.142.0/24" + - rax_network.networks.0.label == "{{ resource_prefix }}-2" + +- name: Test rax_network idempotency 2 + rax_network: + username: "{{ rackspace_username }}" + api_key: "{{ rackspace_api_key }}" + region: "{{ rackspace_region }}" + cidr: "172.17.142.0/24" + label: "{{ resource_prefix }}-2" + register: rax_network + +- name: Validate rax_network idempotency 2 + assert: + that: + - rax_network|success + - not rax_network|changed + - rax_network.networks.0.cidr == "172.17.142.0/24" + - rax_network.networks.0.label == "{{ resource_prefix }}-2" + +- name: Delete Integration 2 + rax_network: + username: "{{ rackspace_username }}" + api_key: "{{ rackspace_api_key }}" + region: "{{ rackspace_region }}" + label: "{{ resource_prefix }}-2" + state: absent + register: rax_network + +- name: Validate delete integration 2 + assert: + that: + - rax_network|changed + - rax_network|success + - rax_network.networks.0.label == "{{ resource_prefix }}-2" + - rax_network.networks.0.cidr == "172.17.142.0/24" +# ============================================================