cloudstack: add tests for cs_loadbalancer_rule and _member

This commit is contained in:
Rene Moser 2015-10-17 14:01:02 +02:00
parent 450c8d45c6
commit bb5dcc00b6
4 changed files with 220 additions and 0 deletions

View file

@ -21,3 +21,4 @@
- { role: test_cs_portforward, tags: test_cs_portforward } - { role: test_cs_portforward, tags: test_cs_portforward }
- { role: test_cs_account, tags: test_cs_account } - { role: test_cs_account, tags: test_cs_account }
- { role: test_cs_firewall, tags: test_cs_firewall } - { role: test_cs_firewall, tags: test_cs_firewall }
- { role: test_cs_loadbalancer_rule, tags: test_cs_loadbalancer_rule }

View file

@ -0,0 +1,5 @@
---
test_cs_lb_public_ip: "1.2.3.4"
test_cs_instance_template: CentOS 5.3(64-bit) no GUI (Simulator)
test_cs_instance_offering_1: Small Instance
test_cs_lb_member: "{{ cs_resource_prefix }}_member1"

View file

@ -0,0 +1,3 @@
---
dependencies:
- test_cs_common

View file

@ -0,0 +1,211 @@
---
- name: setup
cs_loadbalancer_rule:
name: "{{ cs_resource_prefix }}_lb"
public_ip: "{{ test_cs_lb_public_ip }}"
state: absent
register: lb
- name: verify setup
assert:
that:
- lb|success
- name: setup instance
cs_instance:
name: "{{ test_cs_lb_member }}"
template: "{{ test_cs_instance_template }}"
service_offering: "{{ test_cs_instance_offering_1 }}"
register: instance
- name: verify create instance
assert:
that:
- instance|success
- name: test rule requires params
cs_loadbalancer_rule:
ignore_errors: true
register: lb
- name: verify test rule requires params
assert:
that:
- lb|failed
- "'ip_address,name' in lb.msg"
- name: test create rule
cs_loadbalancer_rule:
name: "{{ cs_resource_prefix }}_lb"
public_ip: "{{ test_cs_lb_public_ip }}"
algorithm: roundrobin
public_port: 80
private_port: 8080
register: lb
- name: verify test create rule
assert:
that:
- lb|success
- lb|changed
- lb.name == "{{ cs_resource_prefix }}_lb"
- lb.algorithm == "roundrobin"
- lb.public_ip == "{{ test_cs_lb_public_ip }}"
- lb.public_port == 80
- lb.private_port == 8080
- name: test create rule idempotence
cs_loadbalancer_rule:
name: "{{ cs_resource_prefix }}_lb"
public_ip: "{{ test_cs_lb_public_ip }}"
algorithm: roundrobin
public_port: 80
private_port: 8080
register: lb
- name: verify test create rule idempotence
assert:
that:
- lb|success
- not lb|changed
- lb.name == "{{ cs_resource_prefix }}_lb"
- lb.algorithm == "roundrobin"
- lb.public_ip == "{{ test_cs_lb_public_ip }}"
- lb.public_port == 80
- lb.private_port == 8080
- name: test update rule
cs_loadbalancer_rule:
name: "{{ cs_resource_prefix }}_lb"
public_ip: "{{ test_cs_lb_public_ip }}"
algorithm: source
public_port: 80
private_port: 8080
register: lb
- name: verify test update rule
assert:
that:
- lb|success
- lb|changed
- lb.name == "{{ cs_resource_prefix }}_lb"
- lb.algorithm == "source"
- lb.public_ip == "{{ test_cs_lb_public_ip }}"
- lb.public_port == 80
- lb.private_port == 8080
- name: test update rule idempotence
cs_loadbalancer_rule:
name: "{{ cs_resource_prefix }}_lb"
public_ip: "{{ test_cs_lb_public_ip }}"
algorithm: source
public_port: 80
private_port: 8080
register: lb
- name: verify test update rule idempotence
assert:
that:
- lb|success
- not lb|changed
- lb.name == "{{ cs_resource_prefix }}_lb"
- lb.algorithm == "source"
- lb.public_ip == "{{ test_cs_lb_public_ip }}"
- lb.public_port == 80
- lb.private_port == 8080
- name: test rule member requires params
cs_loadbalancer_rule_member:
ignore_errors: true
register: lb
- name: verify test rule requires params
assert:
that:
- lb|failed
- "'vms,name' in lb.msg"
- name: test add members to rule
cs_loadbalancer_rule_member:
name: "{{ cs_resource_prefix }}_lb"
vm: "{{ test_cs_lb_member }}"
register: lb
- name: verify add members to rule
assert:
that:
- lb|success
- lb|changed
- lb.name == "{{ cs_resource_prefix }}_lb"
- lb.algorithm == "source"
- lb.public_ip == "{{ test_cs_lb_public_ip }}"
- lb.public_port == 80
- lb.private_port == 8080
- "'{{ test_cs_lb_member }}' in lb.vms"
- name: test add members to rule idempotence
cs_loadbalancer_rule_member:
name: "{{ cs_resource_prefix }}_lb"
vm: "{{ test_cs_lb_member }}"
register: lb
- name: verify add members to rule idempotence
assert:
that:
- lb|success
- not lb|changed
- lb.name == "{{ cs_resource_prefix }}_lb"
- lb.algorithm == "source"
- lb.public_ip == "{{ test_cs_lb_public_ip }}"
- lb.public_port == 80
- lb.private_port == 8080
- "'{{ test_cs_lb_member }}' in lb.vms"
- name: test remove members to rule
cs_loadbalancer_rule_member:
name: "{{ cs_resource_prefix }}_lb"
vm: "{{ test_cs_lb_member }}"
state: absent
register: lb
- name: verify remove members to rule
assert:
that:
- lb|success
- lb|changed
- lb.name == "{{ cs_resource_prefix }}_lb"
- lb.algorithm == "source"
- lb.public_ip == "{{ test_cs_lb_public_ip }}"
- lb.public_port == 80
- lb.private_port == 8080
- "'{{ test_cs_lb_member }}' not in lb.vms"
- name: test remove members to rule idempotence
cs_loadbalancer_rule_member:
name: "{{ cs_resource_prefix }}_lb"
vm: "{{ test_cs_lb_member }}"
state: absent
register: lb
- name: verify remove members to rule
assert:
that:
- lb|success
- not lb|changed
- name: test remove rule
cs_loadbalancer_rule:
name: "{{ cs_resource_prefix }}_lb"
public_ip: "{{ test_cs_lb_public_ip }}"
state: absent
register: lb
- name: verify remove rule
assert:
that:
- lb|success
- lb|changed
- lb.name == "{{ cs_resource_prefix }}_lb"
- lb.algorithm == "source"
- lb.public_ip == "{{ test_cs_lb_public_ip }}"
- lb.public_port == 80
- lb.private_port == 8080
- name: test remove rule idempotence
cs_loadbalancer_rule:
name: "{{ cs_resource_prefix }}_lb"
public_ip: "{{ test_cs_lb_public_ip }}"
state: absent
register: lb
- name: verify remove rule idempotence
assert:
that:
- lb|success
- not lb|changed