# ============================================================
- name: Test rax_network with no args
  rax_network:
  ignore_errors: true
  register: rax_network

- name: Validate results of rax_network with no args
  assert:
    that:
      - rax_network is failed
      - 'rax_network.msg == "missing required arguments: label"'
# ============================================================



# ============================================================
- name: Test rax_network with label
  rax_network:
    label: fail
  ignore_errors: true
  register: rax_network

- name: Validate results of rax_network with no args
  assert:
    that:
      - rax_network is failed
      - rax_network.msg == 'No credentials supplied!'
# ============================================================



# ============================================================
- name: Test rax_network with creds
  rax_network:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    label: fail
  ignore_errors: true
  register: rax_network

- name: Validate results of rax_network with creds
  assert:
    that:
      - rax_network is failed
      - rax_network.msg.startswith('None is not a valid region')
# ============================================================



# ============================================================
- name: Test rax_network with creds and region
  rax_network:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    label: fail
  ignore_errors: true
  register: rax_network

- name: Validate results of rax_network with creds and region
  assert:
    that:
      - rax_network is failed
      - 'rax_network.msg == "missing required arguments: cidr"'
# ============================================================



# ============================================================
- name: Test rax_network with creds, region and cidr
  rax_network:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cidr: "172.17.141.0/24"
    label: "{{ resource_prefix }}-1"
  register: rax_network

- name: Validate results of rax_network with creds, region and cidr
  assert:
    that:
      - rax_network is successful
      - rax_network is changed
      - rax_network.networks.0.cidr == "172.17.141.0/24"
      - rax_network.networks.0.label == "{{ resource_prefix }}-1"

- name: Delete Integration 1
  rax_network:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    label: "{{ resource_prefix }}-1"
    state: absent
  register: rax_network

- name: Validate delete integration 1
  assert:
    that:
      - rax_network is changed
      - rax_network is successful
      - rax_network.networks.0.label == "{{ resource_prefix }}-1"
      - rax_network.networks.0.cidr == "172.17.141.0/24"
# ============================================================



# ============================================================
- name: Test rax_network idempotency 1
  rax_network:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cidr: "172.17.142.0/24"
    label: "{{ resource_prefix }}-2"
  register: rax_network

- name: Validate rax_network idempotency 1
  assert:
    that:
      - rax_network is successful
      - rax_network is changed
      - rax_network.networks.0.cidr == "172.17.142.0/24"
      - rax_network.networks.0.label == "{{ resource_prefix }}-2"

- name: Test rax_network idempotency 2
  rax_network:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cidr: "172.17.142.0/24"
    label: "{{ resource_prefix }}-2"
  register: rax_network

- name: Validate rax_network idempotency 2
  assert:
    that:
      - rax_network is successful
      - rax_network is not changed
      - rax_network.networks.0.cidr == "172.17.142.0/24"
      - rax_network.networks.0.label == "{{ resource_prefix }}-2"

- name: Delete Integration 2
  rax_network:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    label: "{{ resource_prefix }}-2"
    state: absent
  register: rax_network

- name: Validate delete integration 2
  assert:
    that:
      - rax_network is changed
      - rax_network is successful
      - rax_network.networks.0.label == "{{ resource_prefix }}-2"
      - rax_network.networks.0.cidr == "172.17.142.0/24"
# ============================================================
