---
# ----------------------------------------------------------------------------
#
#     ***     AUTO GENERATED CODE    ***    AUTO GENERATED CODE     ***
#
# ----------------------------------------------------------------------------
#
#     This file is automatically generated by Magic Modules and manual
#     changes will be clobbered when the file is regenerated.
#
#     Please read more about how to change this file at
#     https://www.github.com/GoogleCloudPlatform/magic-modules
#
# ----------------------------------------------------------------------------
# Pre-test setup
- name: create a global address
  gcp_compute_global_address:
      name: 'globaladdress-globalforwardingrule'
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: present
  register: globaladdress
- name: create a instance group
  gcp_compute_instance_group:
      name: 'instancegroup-globalforwardingrule'
      zone: 'us-central1-a'
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: present
  register: instancegroup
- name: create a http health check
  gcp_compute_http_health_check:
      name: 'httphealthcheck-globalforwardingrule'
      healthy_threshold: 10
      port: 8080
      timeout_sec: 2
      unhealthy_threshold: 5
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: present
  register: healthcheck
- name: create a backend service
  gcp_compute_backend_service:
      name: 'backendservice-globalforwardingrule'
      backends:
        - group: "{{ instancegroup }}"
      health_checks:
        - "{{ healthcheck.selfLink }}"
      enable_cdn: true
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: present
  register: backendservice
- name: create a url map
  gcp_compute_url_map:
      name: 'urlmap-globalforwardingrule'
      default_service: "{{ backendservice }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: present
  register: urlmap
- name: create a target http proxy
  gcp_compute_target_http_proxy:
      name: 'targethttpproxy-globalforwardingrule'
      url_map: "{{ urlmap }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: present
  register: httpproxy
- name: delete a global forwarding rule
  gcp_compute_global_forwarding_rule:
      name: "{{ resource_name }}"
      ip_address: "{{ globaladdress.address }}"
      ip_protocol: 'TCP'
      port_range: '80-80'
      target: "{{ httpproxy.selfLink }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: absent
#----------------------------------------------------------
- name: create a global forwarding rule
  gcp_compute_global_forwarding_rule:
      name: "{{ resource_name }}"
      ip_address: "{{ globaladdress.address }}"
      ip_protocol: 'TCP'
      port_range: '80-80'
      target: "{{ httpproxy.selfLink }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: present
  register: result
- name: assert changed is true
  assert:
    that:
      - result.changed == true
      - "result.kind == 'compute#forwardingRule'"
# ----------------------------------------------------------------------------
- name: create a global forwarding rule that already exists
  gcp_compute_global_forwarding_rule:
      name: "{{ resource_name }}"
      ip_address: "{{ globaladdress.address }}"
      ip_protocol: 'TCP'
      port_range: '80-80'
      target: "{{ httpproxy.selfLink }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: present
  register: result
- name: assert changed is false
  assert:
    that:
      - result.changed == false
      - "result.kind == 'compute#forwardingRule'"
#----------------------------------------------------------
- name: delete a global forwarding rule
  gcp_compute_global_forwarding_rule:
      name: "{{ resource_name }}"
      ip_address: "{{ globaladdress.address }}"
      ip_protocol: 'TCP'
      port_range: '80-80'
      target: "{{ httpproxy.selfLink }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: absent
  register: result
- name: assert changed is true
  assert:
    that:
      - result.changed == true
      - result.has_key('kind') == False
# ----------------------------------------------------------------------------
- name: delete a global forwarding rule that does not exist
  gcp_compute_global_forwarding_rule:
      name: "{{ resource_name }}"
      ip_address: "{{ globaladdress.address }}"
      ip_protocol: 'TCP'
      port_range: '80-80'
      target: "{{ httpproxy.selfLink }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: absent
  register: result
- name: assert changed is false
  assert:
    that:
      - result.changed == false
      - result.has_key('kind') == False
#---------------------------------------------------------
# Post-test teardown
- name: delete a target http proxy
  gcp_compute_target_http_proxy:
      name: 'targethttpproxy-globalforwardingrule'
      url_map: "{{ urlmap }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: absent
  register: httpproxy
- name: delete a url map
  gcp_compute_url_map:
      name: 'urlmap-globalforwardingrule'
      default_service: "{{ backendservice }}"
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: absent
  register: urlmap
- name: delete a backend service
  gcp_compute_backend_service:
      name: 'backendservice-globalforwardingrule'
      backends:
        - group: "{{ instancegroup }}"
      health_checks:
        - "{{ healthcheck.selfLink }}"
      enable_cdn: true
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: absent
  register: backendservice
- name: delete a http health check
  gcp_compute_http_health_check:
      name: 'httphealthcheck-globalforwardingrule'
      healthy_threshold: 10
      port: 8080
      timeout_sec: 2
      unhealthy_threshold: 5
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: absent
  register: healthcheck
- name: delete a instance group
  gcp_compute_instance_group:
      name: 'instancegroup-globalforwardingrule'
      zone: 'us-central1-a'
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: absent
  register: instancegroup
- name: delete a global address
  gcp_compute_global_address:
      name: 'globaladdress-globalforwardingrule'
      project: "{{ gcp_project }}"
      auth_kind: "{{ gcp_cred_kind }}"
      service_account_file: "{{ gcp_cred_file }}"
      scopes:
        - https://www.googleapis.com/auth/compute
      state: absent
  register: globaladdress
