---
- name: setup vpc
  cs_vpc:
    name: "{{ cs_resource_prefix }}_vpc"
    display_text: "{{ cs_resource_prefix }}_display_text"
    cidr: 10.10.0.0/16
    vpc_offering: Redundant VPC offering
    zone: "{{ cs_common_zone_adv }}"
  register: vpc
- name: verify setup vpc
  assert:
    that:
    - vpc is successful

- name: setup network acl absent
  cs_network_acl:
    name: "{{ cs_resource_prefix }}_acl"
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
    state: absent
  register: acl
- name: verify setup network acl absent
  assert:
    that:
    - acl is successful

- name: test fail missing param name and vpc for network acl
  cs_network_acl:
  ignore_errors: true
  register: acl
- name: verify test fail missing param name and vpc for network acl
  assert:
    that:
    - acl is failed
    - "acl.msg.startswith('missing required arguments: ')"

- name: test create network acl in check mode
  cs_network_acl:
    name: "{{ cs_resource_prefix }}_acl"
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
  register: acl
  check_mode: true
- name: verify test create network acl in check mode
  assert:
    that:
    - acl is successful
    - acl is changed

- name: test create network acl
  cs_network_acl:
    name: "{{ cs_resource_prefix }}_acl"
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
  register: acl
- name: verify test create network acl
  assert:
    that:
    - acl is successful
    - acl is changed
    - acl.vpc == "{{ cs_resource_prefix }}_vpc"
    - acl.name == "{{ cs_resource_prefix }}_acl"

- name: test create network acl idempotence
  cs_network_acl:
    name: "{{ cs_resource_prefix }}_acl"
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
  register: acl
- name: verify test create network acl idempotence
  assert:
    that:
    - acl is successful
    - acl is not changed
    - acl.vpc == "{{ cs_resource_prefix }}_vpc"
    - acl.name == "{{ cs_resource_prefix }}_acl"

- name: test remove network acl in check mode
  cs_network_acl:
    name: "{{ cs_resource_prefix }}_acl"
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
    state: absent
  register: acl
  check_mode: true
- name: verify test remove network acl in check mode
  assert:
    that:
    - acl is successful
    - acl is changed
    - acl.vpc == "{{ cs_resource_prefix }}_vpc"
    - acl.name == "{{ cs_resource_prefix }}_acl"

- name: test remove network acl
  cs_network_acl:
    name: "{{ cs_resource_prefix }}_acl"
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
    state: absent
  register: acl
- name: verify test remove network acl
  assert:
    that:
    - acl is successful
    - acl is changed
    - acl.vpc == "{{ cs_resource_prefix }}_vpc"
    - acl.name == "{{ cs_resource_prefix }}_acl"

- name: test remove network acl idempotence
  cs_network_acl:
    name: "{{ cs_resource_prefix }}_acl"
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
    state: absent
  register: acl
- name: verify test remove network acl idempotence
  assert:
    that:
    - acl is successful
    - acl is not changed