You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/aws_api_gateway/tasks/main.yml

183 lines
5.9 KiB
YAML

- block:
# ============================================================
- name: test with no parameters
aws_api_gateway:
register: result
ignore_errors: true
- name: assert failure when called with no parameters
assert:
that:
- 'result.failed'
- 'result.msg.startswith("Region must be specified")'
# ============================================================
- name: test with minimal parameters but no region
aws_api_gateway:
api_id: 'fake-api-doesnt-exist'
register: result
ignore_errors: true
- name: assert failure when called with with minimal parameters but no region
assert:
that:
- 'result.failed'
- 'result.msg.startswith("Region must be specified")'
# ============================================================
- name: test disallow multiple swagger sources
aws_api_gateway:
api_id: 'fake-api-doesnt-exist'
region: 'fake_region'
swagger_file: foo.yml
swagger_text: "this is not really an API"
register: result
ignore_errors: true
- name: assert failure when called with with minimal parameters but no region
assert:
that:
- 'result.failed'
- 'result.msg.startswith("parameters are mutually exclusive")'
# This fails with
# msg": "There is an issue in the code of the module. You must
# specify either both, resource or client to the conn_type
# parameter in the boto3_conn function call"
# even though the call appears to include conn_type='client'
# # ============================================================
# - name: test invalid region parameter
# aws_api_gateway:
# api_id: 'fake-api-doesnt-exist'
# region: 'asdf querty 1234'
# register: result
# ignore_errors: true
# - name: assert invalid region parameter
# assert:
# that:
# - 'result.failed'
# - 'result.msg.startswith("Region asdf querty 1234 does not seem to be available ")'
# ============================================================
- name: build API file
template:
src: minimal-swagger-api.yml.j2
dest: "{{output_dir}}/minimal-swagger-api.yml"
tags: new_api,api,api_file
- name: deploy new API
aws_api_gateway:
api_file: "{{output_dir}}/minimal-swagger-api.yml"
stage: "minimal"
region: '{{ec2_region}}'
aws_access_key: '{{ec2_access_key}}'
aws_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: create_result
- name: assert deploy new API worked
assert:
that:
- 'create_result.changed == True'
- '"api_id" in create_result'
# - '"created_response.created_date" in create_result'
# - '"deploy_response.created_date" in create_result'
- name: check API works
uri: url="https://{{create_result.api_id}}.execute-api.{{ec2_region}}.amazonaws.com/minimal"
register: uri_result
- name: assert API works success
assert:
that:
- 'uri_result'
- name: check nonexistent endpoints cause errors
uri: url="https://{{create_result.api_id}}.execute-api.{{ec2_region}}.amazonaws.com/nominal"
register: bad_uri_result
ignore_errors: true
- name: assert
assert:
that:
- bad_uri_result|failed
# ============================================================
- name: deploy first API
aws_api_gateway:
api_file: "{{output_dir}}/minimal-swagger-api.yml"
stage: "minimal"
region: '{{ec2_region}}'
aws_access_key: '{{ec2_access_key}}'
aws_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: create_result_1
- name: deploy second API rapidly after first
aws_api_gateway:
api_file: "{{output_dir}}/minimal-swagger-api.yml"
stage: "minimal"
region: '{{ec2_region}}'
aws_access_key: '{{ec2_access_key}}'
aws_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: create_result_2
- name: assert both APIs deployed successfully
assert:
that:
- 'create_result_1.changed == True'
- 'create_result_2.changed == True'
- '"api_id" in create_result_1'
- '"api_id" in create_result_1'
# - '"created_response.created_date" in create_result'
# - '"deploy_response.created_date" in create_result'
- name: destroy first API
aws_api_gateway:
state: absent
api_id: '{{create_result_1.api_id}}'
region: '{{ec2_region}}'
aws_access_key: '{{ec2_access_key}}'
aws_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: destroy_result_1
- name: destroy second API rapidly after first
aws_api_gateway:
state: absent
api_id: '{{create_result_2.api_id}}'
region: '{{ec2_region}}'
aws_access_key: '{{ec2_access_key}}'
aws_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: destroy_result_2
- name: assert both APIs deployed successfully
assert:
that:
- 'destroy_result_1.changed == True'
- 'destroy_result_2.changed == True'
# - '"created_response.created_date" in create_result'
# - '"deploy_response.created_date" in create_result'
always:
# ============================================================
- name: test state=absent (expect changed=false)
aws_api_gateway:
state: absent
api_id: '{{create_result.api_id}}'
ec2_region: '{{ec2_region}}'
aws_access_key: '{{ec2_access_key}}'
aws_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: destroy_result