mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add test_rax_keypair role
This commit is contained in:
parent
abac45dafc
commit
e54c45ee6d
5 changed files with 267 additions and 1 deletions
|
@ -90,6 +90,18 @@ def delete_rax_clb(args):
|
||||||
args.assumeyes)
|
args.assumeyes)
|
||||||
|
|
||||||
|
|
||||||
|
def delete_rax_keypair(args):
|
||||||
|
"""Function for deleting Rackspace Key pairs"""
|
||||||
|
print ("--- Cleaning Key Pairs matching '%s'" % args.match_re)
|
||||||
|
for region in pyrax.identity.services.compute.regions:
|
||||||
|
cs = pyrax.connect_to_cloudservers(region=region)
|
||||||
|
for keypair in cs.keypairs.list():
|
||||||
|
if re.search(args.match_re, keypair.name):
|
||||||
|
prompt_and_delete(keypair,
|
||||||
|
'Delete matching %s? [y/n]: ' % keypair,
|
||||||
|
args.assumeyes)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
if not HAS_PYRAX:
|
if not HAS_PYRAX:
|
||||||
raise SystemExit('The pyrax python module is required for this script')
|
raise SystemExit('The pyrax python module is required for this script')
|
||||||
|
@ -98,7 +110,7 @@ def main():
|
||||||
authenticate()
|
authenticate()
|
||||||
delete_rax(args)
|
delete_rax(args)
|
||||||
delete_rax_clb(args)
|
delete_rax_clb(args)
|
||||||
|
delete_rax_keypair(args)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -19,6 +19,9 @@
|
||||||
- role: test_rax_meta
|
- role: test_rax_meta
|
||||||
tags: test_rax_meta
|
tags: test_rax_meta
|
||||||
|
|
||||||
|
- role: test_rax_keypair
|
||||||
|
tags: test_rax_keypair
|
||||||
|
|
||||||
- role: test_rax_clb
|
- role: test_rax_clb
|
||||||
tags: test_rax_clb
|
tags: test_rax_clb
|
||||||
|
|
||||||
|
|
|
@ -4,4 +4,7 @@ rackspace_image_human_id: "ubuntu-1404-lts-trusty-tahr-pvhvm"
|
||||||
rackspace_image_id: "753a7703-4960-488b-aab4-a3cdd4b276dc"
|
rackspace_image_id: "753a7703-4960-488b-aab4-a3cdd4b276dc"
|
||||||
rackspace_image_name: "Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)"
|
rackspace_image_name: "Ubuntu 14.04 LTS (Trusty Tahr) (PVHVM)"
|
||||||
rackspace_flavor: "performance1-1"
|
rackspace_flavor: "performance1-1"
|
||||||
|
|
||||||
|
rackspace_keypair_pub: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDymofzvt86DUA6XSSxc7eDHwUNvcOSmUWjB76jFvhYc6PbS5QmTzBtCka1ORdaW0Z2i3EjfFvzA8WvuY3qP/FpIVDL25ZqZHgxSfGN5pbJ2tAeXK165kNPXBuuISrMhmdLFbRZNn6PwKHEmtrtfEQ3w6ay9+MhqlEr0OX2r6bCXLj+f50QnQXamU6Fm4IpkTsb60osvHNi569Dd8cADEv92oLZpNMa8/MPGnlipjauhzNtEDTUeZwtrAQUXe6CzJ0QmIlyKDglDZLuAKU/VRumo1FRsn4AwJnVsbP2CHBPkbNoYt6LhQiQqXypEIWGmIln0dlO6gZTr3dYC4BVGREl"
|
||||||
|
|
||||||
resource_prefix: ansible-testing
|
resource_prefix: ansible-testing
|
||||||
|
|
3
test/integration/roles/test_rax_keypair/meta/main.yml
Normal file
3
test/integration/roles/test_rax_keypair/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
dependencies:
|
||||||
|
- prepare_tests
|
||||||
|
- prepare_rax_tests
|
245
test/integration/roles/test_rax_keypair/tasks/main.yml
Normal file
245
test/integration/roles/test_rax_keypair/tasks/main.yml
Normal file
|
@ -0,0 +1,245 @@
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_keypair with no args
|
||||||
|
rax_keypair:
|
||||||
|
ignore_errors: true
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate results of rax_keypair with no args
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|failed
|
||||||
|
- rax_keypair.msg == 'missing required arguments: name'
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_keypair with name
|
||||||
|
rax_keypair:
|
||||||
|
name: fail
|
||||||
|
ignore_errors: true
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate results of rax_keypair with no args
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|failed
|
||||||
|
- rax_keypair.msg == 'No credentials supplied!'
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_keypair with name and credentials
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
name: fail
|
||||||
|
ignore_errors: true
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate results of rax_keypair with name and credentials
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|failed
|
||||||
|
- rax_keypair.msg.startswith('None is not a valid region')
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Create public key file for tests
|
||||||
|
copy:
|
||||||
|
content: "{{ rackspace_keypair_pub }}"
|
||||||
|
dest: "{{ output_dir|expanduser }}/{{ resource_prefix }}.pub"
|
||||||
|
|
||||||
|
- name: Set variable for public key path
|
||||||
|
set_fact:
|
||||||
|
rackspace_keypair_pub_path: "{{ output_dir|expanduser }}/{{ resource_prefix }}.pub"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_keypair with creds, region, name and public_key string
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-1"
|
||||||
|
public_key: "{{ rackspace_keypair_pub }}"
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate rax_keypair creds, region, name and public_key string
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|success
|
||||||
|
- rax_keypair|changed
|
||||||
|
- rax_keypair.keypair.name == "{{ resource_prefix }}-1"
|
||||||
|
- rax_keypair.keypair.public_key == "{{ rackspace_keypair_pub }}"
|
||||||
|
|
||||||
|
- name: Delete integration 1
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-1"
|
||||||
|
public_key: "{{ rackspace_keypair_pub }}"
|
||||||
|
state: absent
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate delete integration 1
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|success
|
||||||
|
- rax_keypair|changed
|
||||||
|
- rax_keypair.keypair.name == "{{ resource_prefix }}-1"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_keypair with creds, region, name and public_key path
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-2"
|
||||||
|
public_key: "{{ rackspace_keypair_pub_path }}"
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate rax_keypair creds, region, name and public_key path
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|success
|
||||||
|
- rax_keypair|changed
|
||||||
|
- rax_keypair.keypair.name == "{{ resource_prefix }}-2"
|
||||||
|
- rax_keypair.keypair.public_key == "{{ rackspace_keypair_pub }}"
|
||||||
|
|
||||||
|
- name: Delete integration 2
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-2"
|
||||||
|
public_key: "{{ rackspace_keypair_pub }}"
|
||||||
|
state: absent
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate delete integration 2
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|success
|
||||||
|
- rax_keypair|changed
|
||||||
|
- rax_keypair.keypair.name == "{{ resource_prefix }}-2"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_keypair with idempotency 1
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-3"
|
||||||
|
public_key: "{{ rackspace_keypair_pub }}"
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate rax_keypair with idempotency 1
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|success
|
||||||
|
- rax_keypair|changed
|
||||||
|
- rax_keypair.keypair.name == "{{ resource_prefix }}-3"
|
||||||
|
- rax_keypair.keypair.public_key == "{{ rackspace_keypair_pub }}"
|
||||||
|
|
||||||
|
- name: Test rax_keypair with idempotency 2
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-3"
|
||||||
|
public_key: "{{ rackspace_keypair_pub }}"
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate rax_keypair with idempotency 1
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|success
|
||||||
|
- not rax_keypair|changed
|
||||||
|
- rax_keypair.keypair.name == "{{ resource_prefix }}-3"
|
||||||
|
- rax_keypair.keypair.public_key == "{{ rackspace_keypair_pub }}"
|
||||||
|
|
||||||
|
- name: Delete integration 3
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-3"
|
||||||
|
public_key: "{{ rackspace_keypair_pub }}"
|
||||||
|
state: absent
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate delete integration 3
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|success
|
||||||
|
- rax_keypair|changed
|
||||||
|
- rax_keypair.keypair.name == "{{ resource_prefix }}-3"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_keypair with creds, region and name
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-4"
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate rax_keypair creds, region and name
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|success
|
||||||
|
- rax_keypair|changed
|
||||||
|
- rax_keypair.keypair.name == "{{ resource_prefix }}-4"
|
||||||
|
- rax_keypair.keypair.private_key is defined
|
||||||
|
- rax_keypair.keypair.public_key is defined
|
||||||
|
|
||||||
|
- name: Test rax_keypair with creds, region and name idempotency
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-4"
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate rax_keypair creds, region and name
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|success
|
||||||
|
- not rax_keypair|changed
|
||||||
|
- rax_keypair.keypair.name == "{{ resource_prefix }}-4"
|
||||||
|
- rax_keypair.keypair.private_key is not defined
|
||||||
|
- rax_keypair.keypair.public_key is defined
|
||||||
|
|
||||||
|
- name: Delete integration 4
|
||||||
|
rax_keypair:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-4"
|
||||||
|
public_key: "{{ rackspace_keypair_pub }}"
|
||||||
|
state: absent
|
||||||
|
register: rax_keypair
|
||||||
|
|
||||||
|
- name: Validate delete integration 4
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_keypair|success
|
||||||
|
- rax_keypair|changed
|
||||||
|
- rax_keypair.keypair.name == "{{ resource_prefix }}-4"
|
||||||
|
# ============================================================
|
Loading…
Reference in a new issue