mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add tests for rax_clb
This commit is contained in:
parent
788889225d
commit
7ba7e3bd69
4 changed files with 885 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
import yaml
|
import yaml
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
@ -11,6 +12,19 @@ except ImportError:
|
||||||
HAS_PYRAX = False
|
HAS_PYRAX = False
|
||||||
|
|
||||||
|
|
||||||
|
def rax_list_iterator(svc, *args, **kwargs):
|
||||||
|
method = kwargs.pop('method', 'list')
|
||||||
|
items = getattr(svc, method)(*args, **kwargs)
|
||||||
|
while items:
|
||||||
|
retrieved = getattr(svc, method)(*args, marker=items[-1].id, **kwargs)
|
||||||
|
if items and retrieved and items[-1].id == retrieved[0].id:
|
||||||
|
del items[-1]
|
||||||
|
items.extend(retrieved)
|
||||||
|
if len(retrieved) < 2:
|
||||||
|
break
|
||||||
|
return items
|
||||||
|
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('-y', '--yes', action='store_true', dest='assumeyes',
|
parser.add_argument('-y', '--yes', action='store_true', dest='assumeyes',
|
||||||
|
@ -53,15 +67,27 @@ def prompt_and_delete(item, prompt, assumeyes):
|
||||||
|
|
||||||
def delete_rax(args):
|
def delete_rax(args):
|
||||||
"""Function for deleting CloudServers"""
|
"""Function for deleting CloudServers"""
|
||||||
|
search_opts = dict(name='^%s' % args.match_re)
|
||||||
for region in pyrax.identity.services.compute.regions:
|
for region in pyrax.identity.services.compute.regions:
|
||||||
cs = pyrax.connect_to_cloudservers(region=region)
|
cs = pyrax.connect_to_cloudservers(region=region)
|
||||||
servers = cs.servers.list(search_opts=dict(name='^%s' % args.match_re))
|
servers = rax_list_iterator(cs.servers, search_opts=search_opts)
|
||||||
for server in servers:
|
for server in servers:
|
||||||
prompt_and_delete(server,
|
prompt_and_delete(server,
|
||||||
'Delete matching %s? [y/n]: ' % server,
|
'Delete matching %s? [y/n]: ' % server,
|
||||||
args.assumeyes)
|
args.assumeyes)
|
||||||
|
|
||||||
|
|
||||||
|
def delete_rax_clb(args):
|
||||||
|
"""Function for deleting Cloud Load Balancers"""
|
||||||
|
for region in pyrax.identity.services.load_balancer.regions:
|
||||||
|
clb = pyrax.connect_to_cloud_loadbalancers(region=region)
|
||||||
|
for lb in rax_list_iterator(clb):
|
||||||
|
if re.search(args.match_re, lb.name):
|
||||||
|
prompt_and_delete(lb,
|
||||||
|
'Delete matching %s? [y/n]: ' % lb,
|
||||||
|
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')
|
||||||
|
@ -69,6 +95,7 @@ def main():
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
authenticate()
|
authenticate()
|
||||||
delete_rax(args)
|
delete_rax(args)
|
||||||
|
delete_rax_clb(args)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
@ -7,3 +7,6 @@
|
||||||
roles:
|
roles:
|
||||||
- role: test_rax
|
- role: test_rax
|
||||||
tags: test_rax
|
tags: test_rax
|
||||||
|
|
||||||
|
- role: test_rax_clb
|
||||||
|
tags: test_rax_clb
|
||||||
|
|
3
test/integration/roles/test_rax_clb/defaults/main.yml
Normal file
3
test/integration/roles/test_rax_clb/defaults/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
rackspace_region: IAD
|
||||||
|
resource_prefix: ansible-testing
|
851
test/integration/roles/test_rax_clb/tasks/main.yml
Normal file
851
test/integration/roles/test_rax_clb/tasks/main.yml
Normal file
|
@ -0,0 +1,851 @@
|
||||||
|
---
|
||||||
|
- name: Check for required variables
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- resource_prefix is defined and resource_prefix
|
||||||
|
- rackspace_username is defined and rackspace_username
|
||||||
|
- rackspace_api_key is defined and rackspace_api_key
|
||||||
|
- rackspace_region is defined and rackspace_region
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with no args
|
||||||
|
rax_clb:
|
||||||
|
ignore_errors: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate results of rax_clb with no args
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|failed
|
||||||
|
- rax_clb.msg == 'No credentials supplied!'
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with credentials
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate results of rax_clb with only creds
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|failed
|
||||||
|
- rax_clb.msg.startswith('None is not a valid region')
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with creds and region
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
ignore_errors: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
## This assertion is currently failing, due to the module not providing the correct name of the missing argument
|
||||||
|
- name: Validate rax_clb creds and region
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|failed
|
||||||
|
- rax_clb.msg == 'name is required for rax_clb'
|
||||||
|
ignore_errors: true
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with creds, region and name
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-1"
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with creds, region and name
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|success
|
||||||
|
- rax_clb.balancer.port == 80
|
||||||
|
- rax_clb.balancer.protocol == 'HTTP'
|
||||||
|
- rax_clb.balancer.timeout == 30
|
||||||
|
- rax_clb.balancer.virtual_ips.0.type == 'PUBLIC'
|
||||||
|
- rax_clb.balancer.metadata is not defined
|
||||||
|
- rax_clb.balancer.status == 'ACTIVE'
|
||||||
|
- rax_clb.balancer.algorithm == 'LEAST_CONNECTIONS'
|
||||||
|
|
||||||
|
- name: "Delete integration 1"
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-1"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 1"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb.balancer.name == "{{ resource_prefix }}-1"
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with creds, region, name and protocol
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-2"
|
||||||
|
protocol: TCP
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with creds, region, name and protocol
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|success
|
||||||
|
- rax_clb.balancer.port == 80
|
||||||
|
- rax_clb.balancer.protocol == 'TCP'
|
||||||
|
- rax_clb.balancer.timeout == 30
|
||||||
|
- rax_clb.balancer.virtual_ips.0.type == 'PUBLIC'
|
||||||
|
- rax_clb.balancer.metadata is not defined
|
||||||
|
- rax_clb.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: "Delete integration 2"
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-2"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 2"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb.balancer.name == "{{ resource_prefix }}-2"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with creds, region, name, protocol and port
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-3"
|
||||||
|
protocol: TCP
|
||||||
|
port: 8080
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with creds, region, name, protocol and port
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|success
|
||||||
|
- rax_clb.balancer.port == 8080
|
||||||
|
- rax_clb.balancer.protocol == 'TCP'
|
||||||
|
- rax_clb.balancer.timeout == 30
|
||||||
|
- rax_clb.balancer.virtual_ips.0.type == 'PUBLIC'
|
||||||
|
- rax_clb.balancer.metadata is not defined
|
||||||
|
- rax_clb.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: "Delete integration 3"
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-3"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 3"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb.balancer.name == "{{ resource_prefix }}-3"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with creds, region, name, protocol, port and type
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-4"
|
||||||
|
protocol: TCP
|
||||||
|
port: 8080
|
||||||
|
type: SERVICENET
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with creds, region, name, protocol and type
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|success
|
||||||
|
- rax_clb.balancer.port == 8080
|
||||||
|
- rax_clb.balancer.protocol == 'TCP'
|
||||||
|
- rax_clb.balancer.timeout == 30
|
||||||
|
- rax_clb.balancer.virtual_ips.0.type == 'SERVICENET'
|
||||||
|
- rax_clb.balancer.metadata is not defined
|
||||||
|
- rax_clb.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: "Delete integration 4"
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-4"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 4"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb.balancer.name == "{{ resource_prefix }}-4"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with invalid timeout
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-fail"
|
||||||
|
protocol: TCP
|
||||||
|
port: 8080
|
||||||
|
type: SERVICENET
|
||||||
|
timeout: 1
|
||||||
|
wait: true
|
||||||
|
ignore_errors: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with invalid timeout
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|failed
|
||||||
|
- rax_clb.msg == '"timeout" must be greater than or equal to 30'
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with creds, region, name, protocol, port, type and timeout
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-5"
|
||||||
|
protocol: TCP
|
||||||
|
port: 8080
|
||||||
|
type: SERVICENET
|
||||||
|
timeout: 60
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with creds, region, name, protocol, type and timeout
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|success
|
||||||
|
- rax_clb.balancer.port == 8080
|
||||||
|
- rax_clb.balancer.protocol == 'TCP'
|
||||||
|
- rax_clb.balancer.timeout == 60
|
||||||
|
- rax_clb.balancer.virtual_ips.0.type == 'SERVICENET'
|
||||||
|
- rax_clb.balancer.metadata is not defined
|
||||||
|
- rax_clb.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: "Delete integration 5"
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-5"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 5"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb.balancer.name == "{{ resource_prefix }}-5"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with creds, region, name, protocol, port, type, timeout and algorithm
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-6"
|
||||||
|
protocol: TCP
|
||||||
|
port: 8080
|
||||||
|
type: SERVICENET
|
||||||
|
timeout: 60
|
||||||
|
algorithm: RANDOM
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with creds, region, name, protocol, type, timeout and algorithm
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|success
|
||||||
|
- rax_clb.balancer.port == 8080
|
||||||
|
- rax_clb.balancer.protocol == 'TCP'
|
||||||
|
- rax_clb.balancer.timeout == 60
|
||||||
|
- rax_clb.balancer.virtual_ips.0.type == 'SERVICENET'
|
||||||
|
- rax_clb.balancer.metadata is not defined
|
||||||
|
- rax_clb.balancer.status == 'ACTIVE'
|
||||||
|
- rax_clb.balancer.algorithm == 'RANDOM'
|
||||||
|
|
||||||
|
- name: "Delete integration 6"
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-6"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 6"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb.balancer.name == "{{ resource_prefix }}-6"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with invalid type
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-fail"
|
||||||
|
type: BAD
|
||||||
|
timeout: 1
|
||||||
|
wait: true
|
||||||
|
ignore_errors: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with invalid timeout
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|failed
|
||||||
|
- "rax_clb.msg == 'value of type must be one of: PUBLIC,SERVICENET, got: BAD'"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with invalid protocol
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-fail"
|
||||||
|
protocol: BAD
|
||||||
|
timeout: 1
|
||||||
|
wait: true
|
||||||
|
ignore_errors: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with invalid timeout
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|failed
|
||||||
|
- "rax_clb.msg == 'value of protocol must be one of: DNS_TCP,DNS_UDP,FTP,HTTP,HTTPS,IMAPS,IMAPv4,LDAP,LDAPS,MYSQL,POP3,POP3S,SMTP,TCP,TCP_CLIENT_FIRST,UDP,UDP_STREAM,SFTP, got: BAD'"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with invalid algorithm
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-fail"
|
||||||
|
algorithm: BAD
|
||||||
|
timeout: 1
|
||||||
|
wait: true
|
||||||
|
ignore_errors: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with invalid timeout
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|failed
|
||||||
|
- "rax_clb.msg == 'value of algorithm must be one of: RANDOM,LEAST_CONNECTIONS,ROUND_ROBIN,WEIGHTED_LEAST_CONNECTIONS,WEIGHTED_ROUND_ROBIN, got: BAD'"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with creds, region, name, protocol, port, type, timeout, algorithm and metadata
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-7"
|
||||||
|
protocol: TCP
|
||||||
|
port: 8080
|
||||||
|
type: SERVICENET
|
||||||
|
timeout: 60
|
||||||
|
algorithm: RANDOM
|
||||||
|
meta:
|
||||||
|
foo: bar
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: Validate rax_clb with creds, region, name, protocol, type, timeout, algorithm and metadata
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|success
|
||||||
|
- rax_clb.balancer.port == 8080
|
||||||
|
- rax_clb.balancer.protocol == 'TCP'
|
||||||
|
- rax_clb.balancer.timeout == 60
|
||||||
|
- rax_clb.balancer.virtual_ips.0.type == 'SERVICENET'
|
||||||
|
- rax_clb.balancer.status == 'ACTIVE'
|
||||||
|
- rax_clb.balancer.algorithm == 'RANDOM'
|
||||||
|
- rax_clb.balancer.metadata.0.key == 'foo'
|
||||||
|
- rax_clb.balancer.metadata.0.value == 'bar'
|
||||||
|
|
||||||
|
- name: "Delete integration 7"
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-7"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 7"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb.balancer.name == "{{ resource_prefix }}-7"
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with shared VIP HTTP
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-8-HTTP"
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_http
|
||||||
|
|
||||||
|
- name: Validate rax_clb with shared VIP HTTP
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_http|success
|
||||||
|
- rax_clb_http.balancer.protocol == 'HTTP'
|
||||||
|
- rax_clb_http.balancer.virtual_ips.0.type == 'PUBLIC'
|
||||||
|
- rax_clb_http.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Test rax_clb with shared VIP HTTPS
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-8-HTTPS"
|
||||||
|
protocol: HTTPS
|
||||||
|
port: 443
|
||||||
|
wait: true
|
||||||
|
vip_id: "{{ (rax_clb_http.balancer.virtual_ips|first).id }}"
|
||||||
|
register: rax_clb_https
|
||||||
|
|
||||||
|
- name: Validate Test rax_clb with shared VIP
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_https|success
|
||||||
|
- rax_clb_https.balancer.protocol == 'HTTPS'
|
||||||
|
- rax_clb_https.balancer.status == 'ACTIVE'
|
||||||
|
- rax_clb_http.balancer.virtual_ips == rax_clb_https.balancer.virtual_ips
|
||||||
|
|
||||||
|
- name: "Delete integration 8 HTTP"
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-8-HTTP"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_http
|
||||||
|
|
||||||
|
- name: "Delete integration 8 HTTPS"
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-8-HTTPS"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_http
|
||||||
|
|
||||||
|
- name: "Validate delete integration 8"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_http|changed
|
||||||
|
- rax_clb_https|changed
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with updated protocol 1
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-9"
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_p1
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated protocol 1
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_p1|success
|
||||||
|
- rax_clb_p1.balancer.protocol == 'HTTP'
|
||||||
|
- rax_clb_p1.balancer.virtual_ips.0.type == 'PUBLIC'
|
||||||
|
- rax_clb_p1.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Test rax_clb with updated protocol 2
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-9"
|
||||||
|
protocol: TCP
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_p2
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated protocol 2
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_p1.balancer.id == rax_clb_p2.balancer.id
|
||||||
|
- rax_clb_p2|success
|
||||||
|
- rax_clb_p2|changed
|
||||||
|
- rax_clb_p2.balancer.protocol == 'TCP'
|
||||||
|
- rax_clb_p2.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Delete integration 9
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-9"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 9"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with updated algorithm 1
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-10"
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_a1
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated algorithm 1
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_a1|success
|
||||||
|
- rax_clb_a1.balancer.algorithm == 'LEAST_CONNECTIONS'
|
||||||
|
- rax_clb_a1.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Test rax_clb with updated algoritm 2
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-10"
|
||||||
|
algorithm: RANDOM
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_a2
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated algorithm 2
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_a1.balancer.id == rax_clb_a2.balancer.id
|
||||||
|
- rax_clb_a2|success
|
||||||
|
- rax_clb_a2|changed
|
||||||
|
- rax_clb_a2.balancer.algorithm == 'RANDOM'
|
||||||
|
- rax_clb_a2.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Delete integration 10
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-10"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 10"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb_a1.balancer.id == rax_clb.balancer.id
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with updated port 1
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-11"
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_1
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated port 1
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_1|success
|
||||||
|
- rax_clb_1.balancer.port == 80
|
||||||
|
- rax_clb_1.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Test rax_clb with updated port 2
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-11"
|
||||||
|
port: 8080
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_2
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated port 2
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_1.balancer.id == rax_clb_2.balancer.id
|
||||||
|
- rax_clb_2|success
|
||||||
|
- rax_clb_2|changed
|
||||||
|
- rax_clb_2.balancer.port == 8080
|
||||||
|
- rax_clb_2.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Delete integration 11
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-11"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 11"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb_1.balancer.id == rax_clb.balancer.id
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with updated timeout 1
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-12"
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_1
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated timeout 1
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_1|success
|
||||||
|
- rax_clb_1.balancer.timeout == 30
|
||||||
|
- rax_clb_1.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Test rax_clb with updated timeout 2
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-12"
|
||||||
|
timeout: 60
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_2
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated timeout 2
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_1.balancer.id == rax_clb_2.balancer.id
|
||||||
|
- rax_clb_2|success
|
||||||
|
- rax_clb_2|changed
|
||||||
|
- rax_clb_2.balancer.timeout == 60
|
||||||
|
- rax_clb_2.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Delete integration 12
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-12"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 12"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb_1.balancer.id == rax_clb.balancer.id
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with invalid updated type 1
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-13"
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_1
|
||||||
|
|
||||||
|
- name: Validate rax_clb with invalid updated type 1
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_1|success
|
||||||
|
- rax_clb_1.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Test rax_clb with invalid updated type 2
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-13"
|
||||||
|
type: SERVICENET
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_2
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated timeout 2
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_2|failed
|
||||||
|
- rax_clb_2.msg == 'Load balancer Virtual IP type cannot be changed'
|
||||||
|
|
||||||
|
- name: Delete integration 13
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-13"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 13"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb_1.balancer.id == rax_clb.balancer.id
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
- name: Test rax_clb with updated meta 1
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-14"
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_1
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated meta 1
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_1|success
|
||||||
|
- rax_clb_1.balancer.status == 'ACTIVE'
|
||||||
|
- rax_clb_1.balancer.metadata is not defined
|
||||||
|
|
||||||
|
- name: Test rax_clb with updated meta 2
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-14"
|
||||||
|
meta:
|
||||||
|
foo: bar
|
||||||
|
wait: true
|
||||||
|
register: rax_clb_2
|
||||||
|
|
||||||
|
- name: Validate rax_clb with updated meta 2
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb_1.balancer.id == rax_clb_2.balancer.id
|
||||||
|
- rax_clb_2|success
|
||||||
|
- rax_clb_2|changed
|
||||||
|
- rax_clb_2.balancer.metadata.0.key == 'foo'
|
||||||
|
- rax_clb_2.balancer.metadata.0.value == 'bar'
|
||||||
|
- rax_clb_2.balancer.status == 'ACTIVE'
|
||||||
|
|
||||||
|
- name: Delete integration 14
|
||||||
|
rax_clb:
|
||||||
|
username: "{{ rackspace_username }}"
|
||||||
|
api_key: "{{ rackspace_api_key }}"
|
||||||
|
region: "{{ rackspace_region }}"
|
||||||
|
name: "{{ resource_prefix }}-14"
|
||||||
|
state: absent
|
||||||
|
wait: true
|
||||||
|
register: rax_clb
|
||||||
|
|
||||||
|
- name: "Validate delete integration 14"
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- rax_clb|changed
|
||||||
|
- rax_clb_1.balancer.id == rax_clb.balancer.id
|
||||||
|
# ============================================================
|
Loading…
Reference in a new issue