---
- name: setup vpc
  cs_vpc:
    name: "{{ cs_resource_prefix }}_vpc"
    display_text: "{{ cs_resource_prefix }}_display_text"
    cidr: 10.10.0.0/16
    zone: "{{ cs_common_zone_adv }}"
  register: vpc
- name: verify setup vpc
  assert:
    that:
    - vpc|success

- name: setup vpn gateway absent
  cs_vpn_gateway:
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
    state: absent
  register: vpn_gateway
- name: verify setup vpn gateway absent
  assert:
    that:
    - vpn_gateway|success

- name: test fail missing param vpc for vpn gateway
  cs_vpn_gateway:
  ignore_errors: true
  register: vpn_gateway
- name: verify test fail missing param vpc for vpn gateway
  assert:
    that:
    - vpn_gateway|failed
    - "vpn_gateway.msg.startswith('missing required arguments: ')"

- name: test create vpn gateway in check mode
  cs_vpn_gateway:
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
  register: vpn_gateway
  check_mode: true
- name: verify test create vpn gateway in check mode
  assert:
    that:
    - vpn_gateway|success
    - vpn_gateway|changed

- name: test create vpn gateway
  cs_vpn_gateway:
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
  register: vpn_gateway
- name: verify test create vpn gateway
  assert:
    that:
    - vpn_gateway|success
    - vpn_gateway|changed
    - vpn_gateway.vpc == "{{ cs_resource_prefix }}_vpc"

- name: test create vpn gateway idempotence
  cs_vpn_gateway:
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
  register: vpn_gateway
- name: verify test create vpn gateway idempotence
  assert:
    that:
    - vpn_gateway|success
    - not vpn_gateway|changed
    - vpn_gateway.vpc == "{{ cs_resource_prefix }}_vpc"

- name: test remove vpn gateway in check mode
  cs_vpn_gateway:
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
    state: absent
  register: vpn_gateway
  check_mode: true
- name: verify test remove vpn gateway in check mode
  assert:
    that:
    - vpn_gateway|success
    - vpn_gateway|changed
    - vpn_gateway.vpc == "{{ cs_resource_prefix }}_vpc"

- name: test remove vpn gateway
  cs_vpn_gateway:
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
    state: absent
  register: vpn_gateway
- name: verify test remove vpn gateway
  assert:
    that:
    - vpn_gateway|success
    - vpn_gateway|changed
    - vpn_gateway.vpc == "{{ cs_resource_prefix }}_vpc"

- name: test remove vpn gateway idempotence
  cs_vpn_gateway:
    vpc: "{{ cs_resource_prefix }}_vpc"
    zone: "{{ cs_common_zone_adv }}"
    state: absent
  register: vpn_gateway
- name: verify test remove vpn gateway idempotence
  assert:
    that:
    - vpn_gateway|success
    - not vpn_gateway|changed