--- - name: test create network for lb cs_network: name: "{{ cs_resource_prefix }}_net_lb" zone: "{{ cs_common_zone_adv }}" network_offering: Offering for Isolated networks with Source Nat service enabled register: lb_net - name: verify test create network for lb assert: that: - lb_net|success - lb_net|changed - lb_net.name == "{{ cs_resource_prefix }}_net_lb" - name: setup instance in lb cs_instance: name: "{{ cs_resource_prefix }}-vm-lb" template: "{{ cs_common_template }}" service_offering: "{{ cs_common_service_offering }}" zone: "{{ cs_common_zone_adv }}" network: "{{ cs_resource_prefix }}_net_lb" register: instance - name: verify setup instance in lb assert: that: - instance|success - instance|changed - instance.name == "{{ cs_resource_prefix }}-vm-lb" - instance.state == "Running" - name: setup get ip address for lb cs_ip_address: network: "{{ cs_resource_prefix }}_net_lb" zone: "{{ cs_common_zone_adv }}" register: ip_address - name: verify setup instance in lb assert: that: - ip_address|success - name: setup lb rule absent cs_loadbalancer_rule: name: "{{ cs_resource_prefix }}_lb" public_ip: "{{ ip_address.ip_address }}" state: absent register: lb - name: verify setup lb rule absent assert: that: - lb|success - name: test rule requires params cs_loadbalancer_rule: ignore_errors: true register: lb - name: verify test rule requires params assert: that: - lb|failed - "lb.msg.startswith('missing required arguments: ')" - name: test create rule cs_loadbalancer_rule: name: "{{ cs_resource_prefix }}_lb" public_ip: "{{ ip_address.ip_address }}" 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 == "{{ ip_address.ip_address }}" - lb.public_port == 80 - lb.private_port == 8080 - name: test create rule idempotence cs_loadbalancer_rule: name: "{{ cs_resource_prefix }}_lb" public_ip: "{{ ip_address.ip_address }}" 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 == "{{ ip_address.ip_address }}" - lb.public_port == 80 - lb.private_port == 8080 - name: test update rule cs_loadbalancer_rule: name: "{{ cs_resource_prefix }}_lb" public_ip: "{{ ip_address.ip_address }}" 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 == "{{ ip_address.ip_address }}" - lb.public_port == 80 - lb.private_port == 8080 - name: test update rule idempotence cs_loadbalancer_rule: name: "{{ cs_resource_prefix }}_lb" public_ip: "{{ ip_address.ip_address }}" 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 == "{{ ip_address.ip_address }}" - 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 - "lb.msg.startswith('missing required arguments: ')" - name: test add members to rule cs_loadbalancer_rule_member: name: "{{ cs_resource_prefix }}_lb" vm: "{{ cs_resource_prefix }}-vm-lb" 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 == "{{ ip_address.ip_address }}" - lb.public_port == 80 - lb.private_port == 8080 - "'{{ cs_resource_prefix }}-vm-lb' in lb.vms" - name: test add members to rule idempotence cs_loadbalancer_rule_member: name: "{{ cs_resource_prefix }}_lb" vm: "{{ cs_resource_prefix }}-vm-lb" 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 == "{{ ip_address.ip_address }}" - lb.public_port == 80 - lb.private_port == 8080 - "'{{ cs_resource_prefix }}-vm-lb' in lb.vms" - name: test remove members to rule cs_loadbalancer_rule_member: name: "{{ cs_resource_prefix }}_lb" vm: "{{ cs_resource_prefix }}-vm-lb" 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 == "{{ ip_address.ip_address }}" - lb.public_port == 80 - lb.private_port == 8080 - "'{{ cs_resource_prefix }}-vm-lb' not in lb.vms" - name: test remove members to rule idempotence cs_loadbalancer_rule_member: name: "{{ cs_resource_prefix }}_lb" vm: "{{ cs_resource_prefix }}-vm-lb" 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: "{{ ip_address.ip_address }}" 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 == "{{ ip_address.ip_address }}" - lb.public_port == 80 - lb.private_port == 8080 - name: test remove rule idempotence cs_loadbalancer_rule: name: "{{ cs_resource_prefix }}_lb" public_ip: "{{ ip_address.ip_address }}" state: absent register: lb - name: verify remove rule idempotence assert: that: - lb|success - not lb|changed