# GCP UrlMap Integration Tests. # Only parameter tests are currently done in this file as this module requires # a significant amount of infrastructure. ###### # ============================================================ - name: "Create UrlMap with no default service (changed == False)" # ============================================================ gcp_url_map: service_account_email: "{{ service_account_email }}" credentials_file: "{{ credentials_file }}" project_id: "{{ project_id }}" url_map_name: "{{ urlmap }}" host_rules: - hosts: - '*.' path_matcher: 'path-matcher-one' state: "present" register: result ignore_errors: True tags: - param-check - name: "assert urlmap no default service (msg error ignored, changed==False)" assert: that: - 'not result.changed' - 'result.msg == "missing required arguments: default_service"' # ============================================================ - name: "Create UrlMap with no pathmatcher (changed == False)" # ============================================================ gcp_url_map: service_account_email: "{{ service_account_email }}" credentials_file: "{{ credentials_file }}" project_id: "{{ project_id }}" url_map_name: "{{ urlmap }}" default_service: "gfr2-bes" host_rules: - hosts: - '*.' path_matcher: 'path-matcher-one' state: "present" register: result ignore_errors: True tags: - param-check - name: "assert urlmap no path_matcher (msg error ignored, changed==False)" assert: that: - 'not result.changed' - 'result.msg == "parameters are required together: [''path_matchers'', ''host_rules'']"' # ============================================================ - name: "Create UrlMap with no hostrules (changed == False)" # ============================================================ gcp_url_map: service_account_email: "{{ service_account_email }}" credentials_file: "{{ credentials_file }}" project_id: "{{ project_id }}" url_map_name: "{{ urlmap }}" default_service: "gfr2-bes" path_matchers: - name: 'path-matcher-one' description: 'path matcher one' default_service: 'gfr-bes' path_rules: - service: 'gfr2-bes' paths: - '/data' - '/aboutus' state: "present" tags: - param-check register: result ignore_errors: True - name: "assert no host_rules (msg error ignored, changed==False)" assert: that: - 'not result.changed' - 'result.msg == "parameters are required together: [''path_matchers'', ''host_rules'']"' # ============================================================ - name: "Update UrlMap with non-absolute paths (changed==False)" # ============================================================ gcp_url_map: service_account_email: "{{ service_account_email }}" credentials_file: "{{ credentials_file }}" project_id: "{{ project_id }}" url_map_name: "{{ urlmap }}" default_service: "gfr2-bes" path_matchers: - name: 'path-matcher-one' description: 'path matcher one' default_service: 'gfr-bes' path_rules: - service: 'gfr2-bes' paths: - 'data' - 'aboutus' host_rules: - hosts: - '*.' path_matcher: 'path-matcher-one' state: "present" tags: - param-check ignore_errors: True register: result - name: "assert path error updated (changed==False)" assert: that: - 'not result.changed' - 'result.msg == "path for path-matcher-one must start with /"' # ============================================================ - name: "Update UrlMap with invalid wildcard host (changed==False)" # ============================================================ gcp_url_map: service_account_email: "{{ service_account_email }}" credentials_file: "{{ credentials_file }}" project_id: "{{ project_id }}" url_map_name: "{{ urlmap }}" default_service: "gfr2-bes" path_matchers: - name: 'path-matcher-one' description: 'path matcher one' default_service: 'gfr-bes' path_rules: - service: 'gfr2-bes' paths: - '/data' - '/aboutus' host_rules: - hosts: - 'foobar*' path_matcher: 'path-matcher-one' state: "present" tags: - param-check ignore_errors: True register: result - name: "assert host wildcard error (error msg ignored, changed==False)" assert: that: - 'not result.changed' - 'result.msg == "wildcard must be first char in host, foobar*"' # ============================================================ - name: "Update UrlMap with invalid wildcard host second char (changed==False)" # ============================================================ gcp_url_map: service_account_email: "{{ service_account_email }}" credentials_file: "{{ credentials_file }}" project_id: "{{ project_id }}" url_map_name: "{{ urlmap }}" default_service: "gfr2-bes" path_matchers: - name: 'path-matcher-one' description: 'path matcher one' default_service: 'gfr-bes' path_rules: - service: 'gfr2-bes' paths: - '/data' - '/aboutus' host_rules: - hosts: - '*=' path_matcher: 'path-matcher-one' state: "present" tags: - param-check ignore_errors: True register: result - name: "assert wildcard error second char (error msg ignored, changed==False)" assert: that: - 'not result.changed' - 'result.msg == "wildcard be followed by a ''.'' or ''-'', *="'