Fixes for EC2 module integration tests.

pull/22594/head^2
Matt Clay 9 years ago
parent a42b892f70
commit 00f8e3d360

@ -7,6 +7,7 @@ rackspace_region:
# AWS Credentials # AWS Credentials
ec2_access_key: ec2_access_key:
ec2_secret_key: ec2_secret_key:
security_token:
# GCE Credentials # GCE Credentials
gce_service_account_email: gce_service_account_email:

@ -1,3 +1,4 @@
dependencies: dependencies:
- prepare_tests - prepare_tests
- setup_sshkey
- setup_ec2 - setup_ec2

@ -1,4 +1,3 @@
# common setup tasks for ec2 module tests
# (c) 2014, James Laska <jlaska@ansible.com> # (c) 2014, James Laska <jlaska@ansible.com>
# This file is part of Ansible # This file is part of Ansible
@ -16,12 +15,6 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>. # along with Ansible. If not, see <http://www.gnu.org/licenses/>.
- name: generate random string
command: '{{ ansible_python.executable }} -c "import string,random; print str().join(random.choice(string.ascii_lowercase) for _ in range(8));"'
register: random_string
tags:
- prepare
- name: create random file - name: create random file
shell: mktemp /tmp/id_rsa.XXXXXX shell: mktemp /tmp/id_rsa.XXXXXX
register: sshkey register: sshkey
@ -40,16 +33,15 @@
- prepare - prepare
- name: record fingerprint - name: record fingerprint
shell: ssh-keygen -lf {{sshkey.stdout}}.pub | awk '{print $2}' shell: ssh-keygen -lf {{sshkey.stdout}}.pub
register: fingerprint register: fingerprint
tags: tags:
- prepare - prepare
- name: set facts for future roles - name: set facts for future roles
set_fact: set_fact:
random_string: '{{random_string.stdout}}'
sshkey: '{{sshkey.stdout}}' sshkey: '{{sshkey.stdout}}'
key_material: '{{key_material.stdout}}' key_material: '{{key_material.stdout}}'
fingerprint: '{{fingerprint.stdout}}' fingerprint: '{{fingerprint.stdout.split()[1]}}'
tags: tags:
- prepare - prepare

@ -24,384 +24,401 @@
# test credentials from environment # test credentials from environment
# test credential parameters # test credential parameters
# ============================================================ - block:
# create test elb with listeners, certificate, and health check
# ============================================================
- name: Create ELB # create test elb with listeners, certificate, and health check
ec2_elb_lb:
name: "{{ tag_prefix }}" - name: Create ELB
region: "{{ ec2_region }}" ec2_elb_lb:
ec2_access_key: "{{ ec2_access_key }}" name: "{{ tag_prefix }}"
ec2_secret_key: "{{ ec2_secret_key }}" region: "{{ ec2_region }}"
state: present ec2_access_key: "{{ ec2_access_key }}"
zones: ec2_secret_key: "{{ ec2_secret_key }}"
- us-east-1c security_token: "{{ security_token }}"
- us-east-1d state: present
listeners: zones:
- protocol: http - us-east-1c
load_balancer_port: 80 - us-east-1d
instance_port: 80 listeners:
- protocol: http - protocol: http
load_balancer_port: 8080 load_balancer_port: 80
instance_port: 8080 instance_port: 80
health_check: - protocol: http
ping_protocol: http load_balancer_port: 8080
ping_port: 80 instance_port: 8080
ping_path: "/index.html" health_check:
response_timeout: 5 ping_protocol: http
interval: 30 ping_port: 80
unhealthy_threshold: 2 ping_path: "/index.html"
healthy_threshold: 10 response_timeout: 5
register: info interval: 30
unhealthy_threshold: 2
- assert: healthy_threshold: 10
that: register: info
- 'info.changed'
- '"failed" not in info' - assert:
- 'info.elb.status == "created"' that:
- '"us-east-1c" in info.elb.zones' - 'info.changed'
- '"us-east-1d" in info.elb.zones' - '"failed" not in info'
- 'info.elb.health_check.healthy_threshold == 10' - 'info.elb.status == "created"'
- 'info.elb.health_check.interval == 30' - '"us-east-1c" in info.elb.zones'
- 'info.elb.health_check.target == "HTTP:80/index.html"' - '"us-east-1d" in info.elb.zones'
- 'info.elb.health_check.timeout == 5' - 'info.elb.health_check.healthy_threshold == 10'
- 'info.elb.health_check.unhealthy_threshold == 2' - 'info.elb.health_check.interval == 30'
- '[80, 80, "HTTP", "HTTP"] in info.elb.listeners' - 'info.elb.health_check.target == "HTTP:80/index.html"'
- '[8080, 8080, "HTTP", "HTTP"] in info.elb.listeners' - 'info.elb.health_check.timeout == 5'
- 'info.elb.health_check.unhealthy_threshold == 2'
# ============================================================ - '[80, 80, "HTTP", "HTTP"] in info.elb.listeners'
- '[8080, 8080, "HTTP", "HTTP"] in info.elb.listeners'
# check ports, would be cool, but we are at the mercy of AWS
# to start things in a timely manner # ============================================================
#- name: check to make sure 80 is listening # check ports, would be cool, but we are at the mercy of AWS
# wait_for: host={{ info.elb.dns_name }} port=80 timeout=600 # to start things in a timely manner
# register: result
#- name: check to make sure 80 is listening
#- name: assert can connect to port# # wait_for: host={{ info.elb.dns_name }} port=80 timeout=600
# assert: 'result.state == "started"' # register: result
#- name: check to make sure 443 is listening #- name: assert can connect to port#
# wait_for: host={{ info.elb.dns_name }} port=443 timeout=600 # assert: 'result.state == "started"'
# register: result
#- name: check to make sure 443 is listening
#- name: assert can connect to port# # wait_for: host={{ info.elb.dns_name }} port=443 timeout=600
# assert: 'result.state == "started"' # register: result
# ============================================================ #- name: assert can connect to port#
# assert: 'result.state == "started"'
# Change AZ's
# ============================================================
- name: Change AZ's
ec2_elb_lb: # Change AZ's
name: "{{ tag_prefix }}"
region: "{{ ec2_region }}" - name: Change AZ's
ec2_access_key: "{{ ec2_access_key }}" ec2_elb_lb:
ec2_secret_key: "{{ ec2_secret_key }}" name: "{{ tag_prefix }}"
state: present region: "{{ ec2_region }}"
zones: ec2_access_key: "{{ ec2_access_key }}"
- us-east-1b ec2_secret_key: "{{ ec2_secret_key }}"
listeners: security_token: "{{ security_token }}"
- protocol: http state: present
load_balancer_port: 80 zones:
instance_port: 80 - us-east-1b
purge_zones: yes listeners:
health_check: - protocol: http
ping_protocol: http load_balancer_port: 80
ping_port: 80 instance_port: 80
ping_path: "/index.html" purge_zones: yes
response_timeout: 5 health_check:
interval: 30 ping_protocol: http
unhealthy_threshold: 2 ping_port: 80
healthy_threshold: 10 ping_path: "/index.html"
register: info response_timeout: 5
interval: 30
unhealthy_threshold: 2
healthy_threshold: 10
- assert: register: info
that:
- '"failed" not in info'
- 'info.elb.status == "ok"'
- 'info.changed' - assert:
- 'info.elb.zones[0] == "us-east-1b"' that:
- '"failed" not in info'
# ============================================================ - 'info.elb.status == "ok"'
- 'info.changed'
# Update AZ's - 'info.elb.zones[0] == "us-east-1b"'
- name: Update AZ's # ============================================================
ec2_elb_lb:
name: "{{ tag_prefix }}" # Update AZ's
region: "{{ ec2_region }}"
ec2_access_key: "{{ ec2_access_key }}" - name: Update AZ's
ec2_secret_key: "{{ ec2_secret_key }}" ec2_elb_lb:
state: present name: "{{ tag_prefix }}"
zones: region: "{{ ec2_region }}"
- us-east-1b ec2_access_key: "{{ ec2_access_key }}"
- us-east-1c ec2_secret_key: "{{ ec2_secret_key }}"
- us-east-1d security_token: "{{ security_token }}"
listeners: state: present
- protocol: http zones:
load_balancer_port: 80 - us-east-1b
instance_port: 80 - us-east-1c
purge_zones: yes - us-east-1d
register: info listeners:
- protocol: http
- assert: load_balancer_port: 80
that: instance_port: 80
- '"failed" not in info' purge_zones: yes
- 'info.changed' register: info
- 'info.elb.status == "ok"'
- '"us-east-1b" in info.elb.zones' - assert:
- '"us-east-1c" in info.elb.zones' that:
- '"us-east-1d" in info.elb.zones' - '"failed" not in info'
- 'info.changed'
- 'info.elb.status == "ok"'
# ============================================================ - '"us-east-1b" in info.elb.zones'
- '"us-east-1c" in info.elb.zones'
# Purge Listeners - '"us-east-1d" in info.elb.zones'
- name: Purge Listeners
ec2_elb_lb: # ============================================================
name: "{{ tag_prefix }}"
region: "{{ ec2_region }}" # Purge Listeners
ec2_access_key: "{{ ec2_access_key }}"
ec2_secret_key: "{{ ec2_secret_key }}" - name: Purge Listeners
state: present ec2_elb_lb:
zones: name: "{{ tag_prefix }}"
- us-east-1b region: "{{ ec2_region }}"
- us-east-1c ec2_access_key: "{{ ec2_access_key }}"
- us-east-1d ec2_secret_key: "{{ ec2_secret_key }}"
listeners: security_token: "{{ security_token }}"
- protocol: http state: present
load_balancer_port: 80 zones:
instance_port: 81 - us-east-1b
purge_listeners: yes - us-east-1c
register: info - us-east-1d
listeners:
- assert: - protocol: http
that: load_balancer_port: 80
- '"failed" not in info' instance_port: 81
- 'info.elb.status == "ok"' purge_listeners: yes
- 'info.changed' register: info
- '[80, 81, "HTTP", "HTTP"] in info.elb.listeners'
- 'info.elb.listeners|length == 1' - assert:
that:
- '"failed" not in info'
- 'info.elb.status == "ok"'
# ============================================================ - 'info.changed'
- '[80, 81, "HTTP", "HTTP"] in info.elb.listeners'
# add Listeners - 'info.elb.listeners|length == 1'
- name: Add Listeners
ec2_elb_lb:
name: "{{ tag_prefix }}" # ============================================================
region: "{{ ec2_region }}"
ec2_access_key: "{{ ec2_access_key }}" # add Listeners
ec2_secret_key: "{{ ec2_secret_key }}"
state: present - name: Add Listeners
zones: ec2_elb_lb:
- us-east-1b name: "{{ tag_prefix }}"
- us-east-1c region: "{{ ec2_region }}"
- us-east-1d ec2_access_key: "{{ ec2_access_key }}"
listeners: ec2_secret_key: "{{ ec2_secret_key }}"
- protocol: http security_token: "{{ security_token }}"
load_balancer_port: 8081 state: present
instance_port: 8081 zones:
purge_listeners: no - us-east-1b
register: info - us-east-1c
- us-east-1d
- assert: listeners:
that: - protocol: http
- '"failed" not in info' load_balancer_port: 8081
- 'info.elb.status == "ok"' instance_port: 8081
- 'info.changed' purge_listeners: no
- '[80, 81, "HTTP", "HTTP"] in info.elb.listeners' register: info
- '[8081, 8081, "HTTP", "HTTP"] in info.elb.listeners'
- 'info.elb.listeners|length == 2' - assert:
that:
- '"failed" not in info'
# ============================================================ - 'info.elb.status == "ok"'
- 'info.changed'
- name: test with no parameters - '[80, 81, "HTTP", "HTTP"] in info.elb.listeners'
ec2_elb_lb: - '[8081, 8081, "HTTP", "HTTP"] in info.elb.listeners'
register: result - 'info.elb.listeners|length == 2'
ignore_errors: true
- name: assert failure when called with no parameters # ============================================================
assert:
that: - name: test with no parameters
- 'result.failed' ec2_elb_lb:
- 'result.msg == "missing required arguments: name,state"' register: result
ignore_errors: true
- name: assert failure when called with no parameters
# ============================================================ assert:
- name: test with only name that:
ec2_elb_lb: - 'result.failed'
name="{{ tag_prefix }}" - 'result.msg == "missing required arguments: name,state"'
register: result
ignore_errors: true
- name: assert failure when called with only name # ============================================================
assert: - name: test with only name
that: ec2_elb_lb:
- 'result.failed' name="{{ tag_prefix }}"
- 'result.msg == "missing required arguments: state"' register: result
ignore_errors: true
# ============================================================ - name: assert failure when called with only name
- name: test invalid region parameter assert:
ec2_elb_lb: that:
name="{{ tag_prefix }}" - 'result.failed'
region='asdf querty 1234' - 'result.msg == "missing required arguments: state"'
state=present
register: result
ignore_errors: true # ============================================================
- name: test invalid region parameter
- name: assert invalid region parameter ec2_elb_lb:
assert: name: "{{ tag_prefix }}"
that: region: 'asdf querty 1234'
- 'result.failed' state: present
- 'result.msg.startswith("value of region must be one of:")' listeners:
- protocol: http
load_balancer_port: 80
# ============================================================ instance_port: 80
- name: test valid region parameter zones:
ec2_elb_lb: - us-east-1c
name: "{{ tag_prefix }}" - us-east-1d
region: "{{ ec2_region }}" register: result
state: present ignore_errors: true
zones:
- us-east-1a - name: assert invalid region parameter
- us-east-1d assert:
listeners: that:
- protocol: http - 'result.failed'
load_balancer_port: 80 - 'result.msg.startswith("Region asdf querty 1234 does not seem to be available ")'
instance_port: 80
register: result # ============================================================
ignore_errors: true - name: test valid region parameter
ec2_elb_lb:
- name: assert valid region parameter name: "{{ tag_prefix }}"
assert: region: "{{ ec2_region }}"
that: state: present
- 'result.failed' zones:
- 'result.msg.startswith("No handler was ready to authenticate.")' - us-east-1a
- us-east-1d
listeners:
# ============================================================ - protocol: http
load_balancer_port: 80
- name: test invalid ec2_url parameter instance_port: 80
ec2_elb_lb:
name: "{{ tag_prefix }}" register: result
region: "{{ ec2_region }}" ignore_errors: true
state: present
zones: - name: assert valid region parameter
- us-east-1a assert:
- us-east-1d that:
listeners: - 'result.failed'
- protocol: http - 'result.msg.startswith("No handler was ready to authenticate.")'
load_balancer_port: 80
instance_port: 80
environment: # ============================================================
EC2_URL: bogus.example.com
register: result - name: test invalid ec2_url parameter
ignore_errors: true ec2_elb_lb:
name: "{{ tag_prefix }}"
- name: assert invalid ec2_url parameter region: "{{ ec2_region }}"
assert: state: present
that: zones:
- 'result.failed' - us-east-1a
- 'result.msg.startswith("No handler was ready to authenticate.")' - us-east-1d
listeners:
- protocol: http
# ============================================================ load_balancer_port: 80
- name: test valid ec2_url parameter instance_port: 80
ec2_elb_lb: environment:
name: "{{ tag_prefix }}" EC2_URL: bogus.example.com
region: "{{ ec2_region }}" register: result
state: present ignore_errors: true
zones:
- us-east-1a - name: assert invalid ec2_url parameter
- us-east-1d assert:
listeners: that:
- protocol: http - 'result.failed'
load_balancer_port: 80 - 'result.msg.startswith("No handler was ready to authenticate.")'
instance_port: 80
environment:
EC2_URL: '{{ec2_url}}' # ============================================================
register: result - name: test valid ec2_url parameter
ignore_errors: true ec2_elb_lb:
name: "{{ tag_prefix }}"
- name: assert valid ec2_url parameter region: "{{ ec2_region }}"
assert: state: present
that: zones:
- 'result.failed' - us-east-1a
- 'result.msg.startswith("No handler was ready to authenticate.")' - us-east-1d
listeners:
- protocol: http
# ============================================================ load_balancer_port: 80
- name: test credentials from environment instance_port: 80
ec2_elb_lb: environment:
name: "{{ tag_prefix }}" EC2_URL: '{{ec2_url}}'
region: "{{ ec2_region }}" register: result
state: present ignore_errors: true
zones:
- us-east-1a - name: assert valid ec2_url parameter
- us-east-1d assert:
listeners: that:
- protocol: http - 'result.failed'
load_balancer_port: 80 - 'result.msg.startswith("No handler was ready to authenticate.")'
instance_port: 80
environment:
EC2_ACCESS_KEY: bogus_access_key # ============================================================
EC2_SECRET_KEY: bogus_secret_key - name: test credentials from environment
register: result ec2_elb_lb:
ignore_errors: true name: "{{ tag_prefix }}"
region: "{{ ec2_region }}"
- name: assert credentials from environment state: present
assert: zones:
that: - us-east-1a
- 'result.failed' - us-east-1d
- '"InvalidClientTokenId" in result.msg' listeners:
- protocol: http
load_balancer_port: 80
# ============================================================ instance_port: 80
- name: test credential parameters environment:
ec2_elb_lb: EC2_ACCESS_KEY: bogus_access_key
name: "{{ tag_prefix }}" EC2_SECRET_KEY: bogus_secret_key
region: "{{ ec2_region }}" register: result
state: present ignore_errors: true
zones:
- us-east-1a - name: assert credentials from environment
- us-east-1d assert:
listeners: that:
- protocol: http - 'result.failed'
load_balancer_port: 80 - '"InvalidClientTokenId" in result.exception'
instance_port: 80
register: result
ignore_errors: true # ============================================================
- name: test credential parameters
- name: assert credential parameters ec2_elb_lb:
assert: name: "{{ tag_prefix }}"
that: region: "{{ ec2_region }}"
- 'result.failed' state: present
- '"No handler was ready to authenticate. 1 handlers were checked." in result.msg' zones:
- us-east-1a
# ============================================================ - us-east-1d
- name: remove the test load balancer completely listeners:
ec2_elb_lb: - protocol: http
name: "{{ tag_prefix }}" load_balancer_port: 80
region: "{{ ec2_region }}" instance_port: 80
state: absent register: result
ec2_access_key: "{{ ec2_access_key }}" ignore_errors: true
ec2_secret_key: "{{ ec2_secret_key }}"
register: result - name: assert credential parameters
assert:
- name: assert the load balancer was removed that:
assert: - 'result.failed'
that: - '"No handler was ready to authenticate. 1 handlers were checked." in result.msg'
- 'result.changed'
- 'result.elb.name == "{{tag_prefix}}"' always:
- 'result.elb.status == "deleted"'
# ============================================================
- name: remove the test load balancer completely
ec2_elb_lb:
name: "{{ tag_prefix }}"
region: "{{ ec2_region }}"
state: absent
ec2_access_key: "{{ ec2_access_key }}"
ec2_secret_key: "{{ ec2_secret_key }}"
security_token: "{{ security_token }}"
register: result
- name: assert the load balancer was removed
assert:
that:
- 'result.changed'
- 'result.elb.name == "{{tag_prefix}}"'
- 'result.elb.status == "deleted"'

@ -8,270 +8,280 @@
# - include: ../../setup_ec2/tasks/common.yml module_name=ec2_group # - include: ../../setup_ec2/tasks/common.yml module_name=ec2_group
# ============================================================ - block:
- name: test failure with no parameters
ec2_group: # ============================================================
register: result - name: test failure with no parameters
ignore_errors: true ec2_group:
register: result
- name: assert failure with no parameters ignore_errors: true
assert:
that: - name: assert failure with no parameters
- 'result.failed' assert:
- 'result.msg == "missing required arguments: name"' that:
- 'result.failed'
# ============================================================ - 'result.msg == "missing required arguments: name"'
- name: test failure with only name
ec2_group: # ============================================================
name='{{ec2_group_name}}' - name: test failure with only name
register: result ec2_group:
ignore_errors: true name='{{ec2_group_name}}'
register: result
- name: assert failure with only name ignore_errors: true
assert:
that: - name: assert failure with only name
- 'result.failed' assert:
- 'result.msg == "Must provide description when state is present."' that:
- 'result.failed'
# ============================================================ - 'result.msg == "Must provide description when state is present."'
- name: test failure with only description
ec2_group: # ============================================================
description='{{ec2_group_description}}' - name: test failure with only description
register: result ec2_group:
ignore_errors: true description='{{ec2_group_description}}'
register: result
- name: assert failure with only description ignore_errors: true
assert:
that: - name: assert failure with only description
- 'result.failed' assert:
- 'result.msg == "missing required arguments: name"' that:
- 'result.failed'
# ============================================================ - 'result.msg == "missing required arguments: name"'
- name: test failure with empty description (AWS API requires non-empty string desc)
ec2_group: # ============================================================
name='{{ec2_group_name}}' - name: test failure with empty description (AWS API requires non-empty string desc)
description='' ec2_group:
region='{{ec2_region}}' name='{{ec2_group_name}}'
register: result description=''
ignore_errors: true region='{{ec2_region}}'
register: result
- name: assert failure with empty description ignore_errors: true
assert:
that: - name: assert failure with empty description
- 'result.failed' assert:
- 'result.msg == "Must provide description when state is present."' that:
- 'result.failed'
# ============================================================ - 'result.msg == "Must provide description when state is present."'
- name: test invalid region parameter
ec2_group: # ============================================================
name='{{ec2_group_name}}' - name: test invalid region parameter
description='{{ec2_group_description}}' ec2_group:
region='asdf querty 1234' name='{{ec2_group_name}}'
register: result description='{{ec2_group_description}}'
ignore_errors: true region='asdf querty 1234'
register: result
- name: assert invalid region parameter ignore_errors: true
assert:
that: - name: assert invalid region parameter
- 'result.failed' assert:
- 'result.msg.startswith("Region asdf querty 1234 does not seem to be available for aws module boto.ec2. If the region definitely exists, you may need to upgrade boto or extend with endpoints_path")' that:
- 'result.failed'
# ============================================================ - 'result.msg.startswith("Region asdf querty 1234 does not seem to be available for aws module boto.ec2. If the region definitely exists, you may need to upgrade boto or extend with endpoints_path")'
- name: test valid region parameter
ec2_group: # ============================================================
name='{{ec2_group_name}}' - name: test valid region parameter
description='{{ec2_group_description}}' ec2_group:
region='{{ec2_region}}' name='{{ec2_group_name}}'
register: result description='{{ec2_group_description}}'
ignore_errors: true region='{{ec2_region}}'
register: result
- name: assert valid region parameter ignore_errors: true
assert:
that: - name: assert valid region parameter
- 'result.failed' assert:
- 'result.msg.startswith("No handler was ready to authenticate.")' that:
- 'result.failed'
# ============================================================ - 'result.msg.startswith("No handler was ready to authenticate.")'
- name: test environment variable EC2_REGION
ec2_group: # ============================================================
name='{{ec2_group_name}}' - name: test environment variable EC2_REGION
description='{{ec2_group_description}}' ec2_group:
environment: name='{{ec2_group_name}}'
EC2_REGION: '{{ec2_region}}' description='{{ec2_group_description}}'
register: result environment:
ignore_errors: true EC2_REGION: '{{ec2_region}}'
register: result
- name: assert environment variable EC2_REGION ignore_errors: true
assert:
that: - name: assert environment variable EC2_REGION
- 'result.failed' assert:
- 'result.msg.startswith("No handler was ready to authenticate.")' that:
- 'result.failed'
# ============================================================ - 'result.msg.startswith("No handler was ready to authenticate.")'
- name: test invalid ec2_url parameter
ec2_group: # ============================================================
name='{{ec2_group_name}}' - name: test invalid ec2_url parameter
description='{{ec2_group_description}}' ec2_group:
environment: name='{{ec2_group_name}}'
EC2_URL: bogus.example.com description='{{ec2_group_description}}'
register: result environment:
ignore_errors: true EC2_URL: bogus.example.com
register: result
- name: assert invalid ec2_url parameter ignore_errors: true
assert:
that: - name: assert invalid ec2_url parameter
- 'result.failed' assert:
- 'result.msg.startswith("No handler was ready to authenticate.")' that:
- 'result.failed'
# ============================================================ - 'result.msg.startswith("No handler was ready to authenticate.")'
- name: test valid ec2_url parameter
ec2_group: # ============================================================
name='{{ec2_group_name}}' - name: test valid ec2_url parameter
description='{{ec2_group_description}}' ec2_group:
environment: name='{{ec2_group_name}}'
EC2_URL: '{{ec2_url}}' description='{{ec2_group_description}}'
register: result environment:
ignore_errors: true EC2_URL: '{{ec2_url}}'
register: result
- name: assert valid ec2_url parameter ignore_errors: true
assert:
that: - name: assert valid ec2_url parameter
- 'result.failed' assert:
- 'result.msg.startswith("No handler was ready to authenticate.")' that:
- 'result.failed'
# ============================================================ - 'result.msg.startswith("No handler was ready to authenticate.")'
- name: test credentials from environment
ec2_group: # ============================================================
name='{{ec2_group_name}}' - name: test credentials from environment
description='{{ec2_group_description}}' ec2_group:
environment: name='{{ec2_group_name}}'
EC2_REGION: '{{ec2_region}}' description='{{ec2_group_description}}'
EC2_ACCESS_KEY: bogus_access_key environment:
EC2_SECRET_KEY: bogus_secret_key EC2_REGION: '{{ec2_region}}'
register: result EC2_ACCESS_KEY: bogus_access_key
ignore_errors: true EC2_SECRET_KEY: bogus_secret_key
register: result
- name: assert ec2_group with valid ec2_url ignore_errors: true
assert:
that: - name: assert ec2_group with valid ec2_url
- 'result.failed' assert:
- '"Error in get_all_security_groups: AWS was not able to validate the provided access credentials" in result.msg' that:
- 'result.failed'
# ============================================================ - '"Error in get_all_security_groups: AWS was not able to validate the provided access credentials" in result.msg'
- name: test credential parameters
ec2_group: # ============================================================
name='{{ec2_group_name}}' - name: test credential parameters
description='{{ec2_group_description}}' ec2_group:
ec2_region='{{ec2_region}}' name='{{ec2_group_name}}'
ec2_access_key='bogus_access_key' description='{{ec2_group_description}}'
ec2_secret_key='bogus_secret_key' ec2_region='{{ec2_region}}'
register: result ec2_access_key='bogus_access_key'
ignore_errors: true ec2_secret_key='bogus_secret_key'
register: result
- name: assert credential parameters ignore_errors: true
assert:
that: - name: assert credential parameters
- 'result.failed' assert:
- '"Error in get_all_security_groups: AWS was not able to validate the provided access credentials" in result.msg' that:
- 'result.failed'
# ============================================================ - '"Error in get_all_security_groups: AWS was not able to validate the provided access credentials" in result.msg'
- name: test state=absent
ec2_group: # ============================================================
name='{{ec2_group_name}}' - name: test state=absent
description='{{ec2_group_description}}' ec2_group:
ec2_region='{{ec2_region}}' name='{{ec2_group_name}}'
ec2_access_key='{{ec2_access_key}}' description='{{ec2_group_description}}'
ec2_secret_key='{{ec2_secret_key}}' ec2_region='{{ec2_region}}'
state=absent ec2_access_key='{{ec2_access_key}}'
register: result ec2_secret_key='{{ec2_secret_key}}'
security_token='{{security_token}}'
- name: assert state=absent state=absent
assert: register: result
that:
- '"failed" not in result' - name: assert state=absent
assert:
# ============================================================ that:
- name: test state=present (expected changed=true) - '"failed" not in result'
ec2_group:
name='{{ec2_group_name}}' # ============================================================
description='{{ec2_group_description}}' - name: test state=present (expected changed=true)
ec2_region='{{ec2_region}}' ec2_group:
ec2_access_key='{{ec2_access_key}}' name='{{ec2_group_name}}'
ec2_secret_key='{{ec2_secret_key}}' description='{{ec2_group_description}}'
state=present ec2_region='{{ec2_region}}'
register: result ec2_access_key='{{ec2_access_key}}'
ec2_secret_key='{{ec2_secret_key}}'
- name: assert state=present (expected changed=true) security_token='{{security_token}}'
assert: state=present
that: register: result
- 'result.changed'
- 'result.group_id.startswith("sg-")' - name: assert state=present (expected changed=true)
assert:
# ============================================================ that:
- name: test state=present different description raises error - 'result.changed'
ec2_group: - 'result.group_id.startswith("sg-")'
name='{{ec2_group_name}}'
description='{{ec2_group_description}}CHANGED' # ============================================================
ec2_region='{{ec2_region}}' - name: test state=present different description raises error
ec2_access_key='{{ec2_access_key}}' ec2_group:
ec2_secret_key='{{ec2_secret_key}}' name='{{ec2_group_name}}'
state=present description='{{ec2_group_description}}CHANGED'
ignore_errors: true ec2_region='{{ec2_region}}'
register: result ec2_access_key='{{ec2_access_key}}'
ec2_secret_key='{{ec2_secret_key}}'
- name: assert matching group with non-matching description raises error security_token='{{security_token}}'
assert: state=present
that: ignore_errors: true
- 'result.failed' register: result
- '"Group description does not match existing group. ec2_group does not support this case." in result.msg'
- name: assert matching group with non-matching description raises error
# ============================================================ assert:
- name: test state=present (expected changed=false) that:
ec2_group: - 'result.failed'
name='{{ec2_group_name}}' - '"Group description does not match existing group. ec2_group does not support this case." in result.msg'
description='{{ec2_group_description}}'
ec2_region='{{ec2_region}}' # ============================================================
ec2_access_key='{{ec2_access_key}}' - name: test state=present (expected changed=false)
ec2_secret_key='{{ec2_secret_key}}' ec2_group:
state=present name='{{ec2_group_name}}'
register: result description='{{ec2_group_description}}'
ec2_region='{{ec2_region}}'
- name: assert state=present (expected changed=false) ec2_access_key='{{ec2_access_key}}'
assert: ec2_secret_key='{{ec2_secret_key}}'
that: security_token='{{security_token}}'
- 'not result.changed' state=present
- 'result.group_id.startswith("sg-")' register: result
# ============================================================ - name: assert state=present (expected changed=false)
- name: test state=absent (expected changed=true) assert:
ec2_group: that:
name='{{ec2_group_name}}' - 'not result.changed'
state=absent - 'result.group_id.startswith("sg-")'
environment:
EC2_REGION: '{{ec2_region}}' # ============================================================
EC2_ACCESS_KEY: '{{ec2_access_key}}' - name: test state=absent (expected changed=true)
EC2_SECRET_KEY: '{{ec2_secret_key}}' ec2_group:
register: result name='{{ec2_group_name}}'
state=absent
- name: assert state=absent (expected changed=true) environment:
assert: EC2_REGION: '{{ec2_region}}'
that: EC2_ACCESS_KEY: '{{ec2_access_key}}'
- 'result.changed' EC2_SECRET_KEY: '{{ec2_secret_key}}'
- 'not result.group_id' EC2_SECURITY_TOKEN: '{{security_token|default("")}}'
register: result
# ============================================================
- name: test state=absent (expected changed=false) - name: assert state=absent (expected changed=true)
ec2_group: assert:
name='{{ec2_group_name}}' that:
state=absent - 'result.changed'
environment: - 'not result.group_id'
EC2_REGION: '{{ec2_region}}'
EC2_ACCESS_KEY: '{{ec2_access_key}}' always:
EC2_SECRET_KEY: '{{ec2_secret_key}}'
register: result # ============================================================
- name: test state=absent (expected changed=false)
- name: assert state=absent (expected changed=false) ec2_group:
assert: name='{{ec2_group_name}}'
that: state=absent
- 'not result.changed' environment:
- 'not result.group_id' EC2_REGION: '{{ec2_region}}'
EC2_ACCESS_KEY: '{{ec2_access_key}}'
EC2_SECRET_KEY: '{{ec2_secret_key}}'
EC2_SECURITY_TOKEN: '{{security_token|default("")}}'
register: result
- name: assert state=absent (expected changed=false)
assert:
that:
- 'not result.changed'
- 'not result.group_id'

@ -1,3 +1,4 @@
dependencies: dependencies:
- prepare_tests - prepare_tests
- setup_sshkey
- setup_ec2 - setup_ec2

@ -13,325 +13,338 @@
# ============================================================ # ============================================================
# - include: ../../setup_ec2/tasks/common.yml module_name=ec2_key # - include: ../../setup_ec2/tasks/common.yml module_name=ec2_key
# ============================================================ - block:
- name: test with no parameters
ec2_key: # ============================================================
register: result - name: test with no parameters
ignore_errors: true ec2_key:
register: result
- name: assert failure when called with no parameters ignore_errors: true
assert:
that: - name: assert failure when called with no parameters
- 'result.failed' assert:
- 'result.msg == "missing required arguments: name"' that:
- 'result.failed'
# ============================================================ - 'result.msg == "missing required arguments: name"'
- name: test with only name
ec2_key: # ============================================================
name={{ec2_key_name}} - name: test with only name
register: result ec2_key:
ignore_errors: true name={{ec2_key_name}}
register: result
- name: assert failure when called with only 'name' ignore_errors: true
assert:
that: - name: assert failure when called with only 'name'
- 'result.failed' assert:
- 'result.msg == "Either region or ec2_url must be specified"' that:
- 'result.failed'
# ============================================================ - 'result.msg == "Either region or ec2_url must be specified"'
- name: test invalid region parameter
ec2_key: # ============================================================
name={{ec2_key_name}} - name: test invalid region parameter
region='asdf querty 1234' ec2_key:
register: result name={{ec2_key_name}}
ignore_errors: true region='asdf querty 1234'
register: result
- name: assert invalid region parameter ignore_errors: true
assert:
that: - name: assert invalid region parameter
- 'result.failed' assert:
- 'result.msg.startswith("value of region must be one of:")' that:
- 'result.failed'
# ============================================================ - 'result.msg.startswith("Region asdf querty 1234 does not seem to be available ")'
- name: test valid region parameter
ec2_key: # ============================================================
name={{ec2_key_name}} - name: test valid region parameter
region={{ec2_region}} ec2_key:
register: result name={{ec2_key_name}}
ignore_errors: true region={{ec2_region}}
register: result
- name: assert valid region parameter ignore_errors: true
assert:
that: - name: assert valid region parameter
- 'result.failed' assert:
- 'result.msg.startswith("No handler was ready to authenticate.")' that:
- 'result.failed'
# ============================================================ - 'result.msg.startswith("No handler was ready to authenticate.")'
- name: test environment variable EC2_REGION
ec2_key: # ============================================================
name={{ec2_key_name}} - name: test environment variable EC2_REGION
environment: ec2_key:
EC2_REGION: '{{ec2_region}}' name={{ec2_key_name}}
register: result environment:
ignore_errors: true EC2_REGION: '{{ec2_region}}'
register: result
- name: assert environment variable EC2_REGION ignore_errors: true
assert:
that: - name: assert environment variable EC2_REGION
- 'result.failed' assert:
- 'result.msg.startswith("No handler was ready to authenticate.")' that:
- 'result.failed'
# ============================================================ - 'result.msg.startswith("No handler was ready to authenticate.")'
- name: test invalid ec2_url parameter
ec2_key: # ============================================================
name={{ec2_key_name}} - name: test invalid ec2_url parameter
environment: ec2_key:
EC2_URL: bogus.example.com name={{ec2_key_name}}
register: result environment:
ignore_errors: true EC2_URL: bogus.example.com
register: result
- name: assert invalid ec2_url parameter ignore_errors: true
assert:
that: - name: assert invalid ec2_url parameter
- 'result.failed' assert:
- 'result.msg.startswith("No handler was ready to authenticate.")' that:
- 'result.failed'
# ============================================================ - 'result.msg.startswith("No handler was ready to authenticate.")'
- name: test valid ec2_url parameter
ec2_key: # ============================================================
name={{ec2_key_name}} - name: test valid ec2_url parameter
environment: ec2_key:
EC2_URL: '{{ec2_url}}' name={{ec2_key_name}}
register: result environment:
ignore_errors: true EC2_URL: '{{ec2_url}}'
register: result
- name: assert valid ec2_url parameter ignore_errors: true
assert:
that: - name: assert valid ec2_url parameter
- 'result.failed' assert:
- 'result.msg.startswith("No handler was ready to authenticate.")' that:
- 'result.failed'
# ============================================================ - 'result.msg.startswith("No handler was ready to authenticate.")'
- name: test credentials from environment
ec2_key: # ============================================================
name={{ec2_key_name}} - name: test credentials from environment
environment: ec2_key:
EC2_REGION: '{{ec2_region}}' name={{ec2_key_name}}
EC2_ACCESS_KEY: bogus_access_key environment:
EC2_SECRET_KEY: bogus_secret_key EC2_REGION: '{{ec2_region}}'
register: result EC2_ACCESS_KEY: bogus_access_key
ignore_errors: true EC2_SECRET_KEY: bogus_secret_key
register: result
- name: assert ec2_key with valid ec2_url ignore_errors: true
assert:
that: - name: assert ec2_key with valid ec2_url
- 'result.failed' assert:
- '"EC2ResponseError: 401 Unauthorized" in result.msg' that:
- 'result.failed'
# ============================================================ - '"EC2ResponseError: 401 Unauthorized" in result.module_stderr'
- name: test credential parameters
ec2_key: # ============================================================
name={{ec2_key_name}} - name: test credential parameters
ec2_region={{ec2_region}} ec2_key:
ec2_access_key=bogus_access_key name={{ec2_key_name}}
ec2_secret_key=bogus_secret_key ec2_region={{ec2_region}}
register: result ec2_access_key=bogus_access_key
ignore_errors: true ec2_secret_key=bogus_secret_key
register: result
- name: assert credential parameters ignore_errors: true
assert:
that: - name: assert credential parameters
- 'result.failed' assert:
- '"EC2ResponseError: 401 Unauthorized" in result.msg' that:
- 'result.failed'
# ============================================================ - '"EC2ResponseError: 401 Unauthorized" in result.module_stderr'
- name: test state=absent with key_material
ec2_key: # ============================================================
name='{{ec2_key_name}}' - name: test state=absent with key_material
ec2_region={{ec2_region}} ec2_key:
ec2_access_key={{ec2_access_key}} name='{{ec2_key_name}}'
ec2_secret_key={{ec2_secret_key}} ec2_region={{ec2_region}}
state=absent ec2_access_key={{ec2_access_key}}
register: result ec2_secret_key={{ec2_secret_key}}
security_token={{security_token}}
- name: assert state=absent with key_material state=absent
assert: register: result
that:
- '"failed" not in result' - name: assert state=absent with key_material
assert:
# ============================================================ that:
- name: test state=present without key_material - '"failed" not in result'
ec2_key:
name='{{ec2_key_name}}' # ============================================================
ec2_region={{ec2_region}} - name: test state=present without key_material
ec2_access_key={{ec2_access_key}} ec2_key:
ec2_secret_key={{ec2_secret_key}} name='{{ec2_key_name}}'
state=present ec2_region={{ec2_region}}
register: result ec2_access_key={{ec2_access_key}}
ec2_secret_key={{ec2_secret_key}}
- name: assert state=present without key_material security_token={{security_token}}
assert: state=present
that: register: result
- 'result.changed'
- '"failed" not in result' - name: assert state=present without key_material
- '"key" in result' assert:
- '"name" in result.key' that:
- '"fingerprint" in result.key' - 'result.changed'
- '"private_key" in result.key' - '"failed" not in result'
- 'result.key.name == "{{ec2_key_name}}"' - '"key" in result'
- '"name" in result.key'
# ============================================================ - '"fingerprint" in result.key'
- name: test state=absent without key_material - '"private_key" in result.key'
ec2_key: - 'result.key.name == "{{ec2_key_name}}"'
name='{{ec2_key_name}}'
state=absent # ============================================================
environment: - name: test state=absent without key_material
EC2_REGION: '{{ec2_region}}' ec2_key:
EC2_ACCESS_KEY: '{{ec2_access_key}}' name='{{ec2_key_name}}'
EC2_SECRET_KEY: '{{ec2_secret_key}}' state=absent
register: result environment:
EC2_REGION: '{{ec2_region}}'
- name: assert state=absent without key_material EC2_ACCESS_KEY: '{{ec2_access_key}}'
assert: EC2_SECRET_KEY: '{{ec2_secret_key}}'
that: EC2_SECURITY_TOKEN: '{{security_token|default("")}}'
- 'result.changed' register: result
- '"failed" not in result'
- '"key" in result' - name: assert state=absent without key_material
- 'result.key == None' assert:
that:
# ============================================================ - 'result.changed'
- name: test state=present with key_material - '"failed" not in result'
ec2_key: - '"key" in result'
name='{{ec2_key_name}}' - 'result.key == None'
key_material='{{key_material}}'
state=present # ============================================================
environment: - name: test state=present with key_material
EC2_REGION: '{{ec2_region}}' ec2_key:
EC2_ACCESS_KEY: '{{ec2_access_key}}' name='{{ec2_key_name}}'
EC2_SECRET_KEY: '{{ec2_secret_key}}' key_material='{{key_material}}'
register: result state=present
environment:
- name: assert state=present with key_material EC2_REGION: '{{ec2_region}}'
assert: EC2_ACCESS_KEY: '{{ec2_access_key}}'
that: EC2_SECRET_KEY: '{{ec2_secret_key}}'
- '"failed" not in result' EC2_SECURITY_TOKEN: '{{security_token|default("")}}'
- 'result.changed == True' register: result
- '"key" in result'
- '"name" in result.key' - name: assert state=present with key_material
- 'result.key.name == "{{ec2_key_name}}"' assert:
- '"fingerprint" in result.key' that:
- '"private_key" not in result.key' - '"failed" not in result'
# FIXME - why don't the fingerprints match? - 'result.changed == True'
# - 'result.key.fingerprint == "{{fingerprint}}"' - '"key" in result'
- '"name" in result.key'
# ============================================================ - 'result.key.name == "{{ec2_key_name}}"'
- name: test state=absent with key_material - '"fingerprint" in result.key'
ec2_key: - '"private_key" not in result.key'
name='{{ec2_key_name}}' # FIXME - why don't the fingerprints match?
key_material='{{key_material}}' # - 'result.key.fingerprint == "{{fingerprint}}"'
ec2_region='{{ec2_region}}'
ec2_access_key='{{ec2_access_key}}' # ============================================================
ec2_secret_key='{{ec2_secret_key}}' - name: test state=absent with key_material
state=absent ec2_key:
register: result name='{{ec2_key_name}}'
key_material='{{key_material}}'
- name: assert state=absent with key_material ec2_region='{{ec2_region}}'
assert: ec2_access_key='{{ec2_access_key}}'
that: ec2_secret_key='{{ec2_secret_key}}'
- 'result.changed' security_token='{{security_token}}'
- '"failed" not in result' state=absent
- '"key" in result' register: result
- 'result.key == None'
- name: assert state=absent with key_material
# ============================================================ assert:
- name: test state=present with key_material with_files (expect changed=true) that:
ec2_key: - 'result.changed'
name='{{ec2_key_name}}' - '"failed" not in result'
state=present - '"key" in result'
key_material='{{ item }}' - 'result.key == None'
with_file: sshkey ~ '.pub'
environment: # ============================================================
EC2_REGION: '{{ec2_region}}' - name: test state=present with key_material with_files (expect changed=true)
EC2_ACCESS_KEY: '{{ec2_access_key}}' ec2_key:
EC2_SECRET_KEY: '{{ec2_secret_key}}' name='{{ec2_key_name}}'
register: result state=present
key_material='{{ item }}'
- name: assert state=present with key_material with_files (expect changed=true) with_file: '{{sshkey}}.pub'
assert: environment:
that: EC2_REGION: '{{ec2_region}}'
- 'result.msg == "All items completed"' EC2_ACCESS_KEY: '{{ec2_access_key}}'
- 'result.changed == True' EC2_SECRET_KEY: '{{ec2_secret_key}}'
- '"results" in result' EC2_SECURITY_TOKEN: '{{security_token|default("")}}'
- '"item" in result.results[0]' register: result
- '"key" in result.results[0]'
- '"name" in result.results[0].key' - name: assert state=present with key_material with_files (expect changed=true)
- 'result.results[0].key.name == "{{ec2_key_name}}"' assert:
- '"fingerprint" in result.results[0].key' that:
- '"private_key" not in result.results[0].key' - 'result.msg == "All items completed"'
# FIXME - why doesn't result.key.fingerprint == {{fingerprint}} - 'result.changed == True'
# - 'result.key.fingerprint == "{{fingerprint}}"' - '"results" in result'
- '"item" in result.results[0]'
# ============================================================ - '"key" in result.results[0]'
- name: test state=present with key_material with_files (expect changed=false) - '"name" in result.results[0].key'
ec2_key: - 'result.results[0].key.name == "{{ec2_key_name}}"'
name='{{ec2_key_name}}' - '"fingerprint" in result.results[0].key'
state=present - '"private_key" not in result.results[0].key'
key_material='{{ item }}' # FIXME - why doesn't result.key.fingerprint == {{fingerprint}}
with_file: sshkey ~ '.pub' # - 'result.key.fingerprint == "{{fingerprint}}"'
environment:
EC2_REGION: '{{ec2_region}}' # ============================================================
EC2_ACCESS_KEY: '{{ec2_access_key}}' - name: test state=present with key_material with_files (expect changed=false)
EC2_SECRET_KEY: '{{ec2_secret_key}}' ec2_key:
register: result name='{{ec2_key_name}}'
state=present
- name: assert state=present with key_material with_files (expect changed=false) key_material='{{ item }}'
assert: with_file: '{{sshkey}}.pub'
that: environment:
- 'result.msg == "All items completed"' EC2_REGION: '{{ec2_region}}'
- 'not result.changed' EC2_ACCESS_KEY: '{{ec2_access_key}}'
- '"results" in result' EC2_SECRET_KEY: '{{ec2_secret_key}}'
- '"item" in result.results[0]' EC2_SECURITY_TOKEN: '{{security_token|default("")}}'
- '"key" in result.results[0]' register: result
- '"name" in result.results[0].key'
- 'result.results[0].key.name == "{{ec2_key_name}}"' - name: assert state=present with key_material with_files (expect changed=false)
- '"fingerprint" in result.results[0].key' assert:
- '"private_key" not in result.results[0].key' that:
# FIXME - why doesn't result.key.fingerprint == {{fingerprint}} - 'result.msg == "All items completed"'
# - 'result.key.fingerprint == "{{fingerprint}}"' - 'not result.changed'
- '"results" in result'
# ============================================================ - '"item" in result.results[0]'
- name: test state=absent with key_material (expect changed=true) - '"key" in result.results[0]'
ec2_key: - '"name" in result.results[0].key'
name='{{ec2_key_name}}' - 'result.results[0].key.name == "{{ec2_key_name}}"'
ec2_region='{{ec2_region}}' - '"fingerprint" in result.results[0].key'
ec2_access_key='{{ec2_access_key}}' - '"private_key" not in result.results[0].key'
ec2_secret_key='{{ec2_secret_key}}' # FIXME - why doesn't result.key.fingerprint == {{fingerprint}}
key_material='{{key_material}}' # - 'result.key.fingerprint == "{{fingerprint}}"'
state=absent
register: result # ============================================================
- name: test state=absent with key_material (expect changed=true)
- name: assert state=absent with key_material (expect changed=true) ec2_key:
assert: name='{{ec2_key_name}}'
that: ec2_region='{{ec2_region}}'
- 'result.changed' ec2_access_key='{{ec2_access_key}}'
- '"failed" not in result' ec2_secret_key='{{ec2_secret_key}}'
- '"key" in result' security_token='{{security_token}}'
- 'result.key == None' key_material='{{key_material}}'
state=absent
# ============================================================ register: result
- name: test state=absent (expect changed=false)
ec2_key: - name: assert state=absent with key_material (expect changed=true)
name='{{ec2_key_name}}' assert:
ec2_region='{{ec2_region}}' that:
ec2_access_key='{{ec2_access_key}}' - 'result.changed'
ec2_secret_key='{{ec2_secret_key}}' - '"failed" not in result'
state=absent - '"key" in result'
register: result - 'result.key == None'
- name: assert state=absent with key_material (expect changed=false) always:
assert:
that: # ============================================================
- 'not result.changed' - name: test state=absent (expect changed=false)
- '"failed" not in result' ec2_key:
- '"key" in result' name='{{ec2_key_name}}'
- 'result.key == None' ec2_region='{{ec2_region}}'
ec2_access_key='{{ec2_access_key}}'
ec2_secret_key='{{ec2_secret_key}}'
security_token='{{security_token}}'
state=absent
register: result
- name: assert state=absent with key_material (expect changed=false)
assert:
that:
- 'not result.changed'
- '"failed" not in result'
- '"key" in result'
- 'result.key == None'

@ -0,0 +1,3 @@
dependencies:
- prepare_tests
- setup_ec2

@ -3,8 +3,14 @@
ecr_name: 'ecr-test-{{ ansible_date_time.epoch }}' ecr_name: 'ecr-test-{{ ansible_date_time.epoch }}'
- block: - block:
- name: When creating with check mode - name: When creating with check mode
ecs_ecr: name='{{ ecr_name }}' region='{{ ec2_region }}' ecs_ecr:
name: '{{ ecr_name }}'
region: '{{ ec2_region }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
check_mode: yes check_mode: yes
@ -17,7 +23,13 @@
- name: When specifying a registry that is inaccessible - name: When specifying a registry that is inaccessible
ecs_ecr: registry_id=999999999999 name='{{ ecr_name }}' region='{{ ec2_region }}' ecs_ecr:
registry_id: 999999999999
name: '{{ ecr_name }}'
region: '{{ ec2_region }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
ignore_errors: true ignore_errors: true
@ -29,7 +41,12 @@
- name: When creating a repository - name: When creating a repository
ecs_ecr: name='{{ ecr_name }}' region='{{ ec2_region }}' ecs_ecr:
name: '{{ ecr_name }}'
region: '{{ ec2_region }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
- name: it should change and create - name: it should change and create
@ -40,7 +57,12 @@
- name: When creating a repository that already exists in check mode - name: When creating a repository that already exists in check mode
ecs_ecr: name='{{ ecr_name }}' region='{{ ec2_region }}' ecs_ecr:
name: '{{ ecr_name }}'
region: '{{ ec2_region }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
check_mode: yes check_mode: yes
@ -52,7 +74,12 @@
- name: When creating a repository that already exists - name: When creating a repository that already exists
ecs_ecr: name='{{ ecr_name }}' region='{{ ec2_region }}' ecs_ecr:
name: '{{ ecr_name }}'
region: '{{ ec2_region }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
- name: it should not change - name: it should not change
@ -65,6 +92,9 @@
ecs_ecr: ecs_ecr:
region: '{{ ec2_region }}' region: '{{ ec2_region }}'
name: '{{ ecr_name }}' name: '{{ ecr_name }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
delete_policy: yes delete_policy: yes
register: result register: result
check_mode: yes check_mode: yes
@ -81,6 +111,9 @@
region: '{{ ec2_region }}' region: '{{ ec2_region }}'
name: '{{ ecr_name }}' name: '{{ ecr_name }}'
policy: '{{ policy }}' policy: '{{ policy }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
check_mode: yes check_mode: yes
@ -97,6 +130,9 @@
region: '{{ ec2_region }}' region: '{{ ec2_region }}'
name: '{{ ecr_name }}' name: '{{ ecr_name }}'
policy: '{{ policy }}' policy: '{{ policy }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
- name: it should change and not create - name: it should change and not create
@ -111,6 +147,9 @@
region: '{{ ec2_region }}' region: '{{ ec2_region }}'
name: '{{ ecr_name }}' name: '{{ ecr_name }}'
delete_policy: yes delete_policy: yes
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
check_mode: yes check_mode: yes
@ -127,6 +166,9 @@
region: '{{ ec2_region }}' region: '{{ ec2_region }}'
name: '{{ ecr_name }}' name: '{{ ecr_name }}'
delete_policy: yes delete_policy: yes
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
- name: it should change and not create - name: it should change and not create
@ -141,6 +183,9 @@
region: '{{ ec2_region }}' region: '{{ ec2_region }}'
name: '{{ ecr_name }}' name: '{{ ecr_name }}'
policy: '{{ policy | to_json }}' policy: '{{ policy | to_json }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
- name: it should change and not create - name: it should change and not create
@ -155,6 +200,9 @@
region: '{{ ec2_region }}' region: '{{ ec2_region }}'
name: '{{ ecr_name }}' name: '{{ ecr_name }}'
policy: '{{ policy }}' policy: '{{ policy }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
- name: it should not change - name: it should not change
@ -167,6 +215,9 @@
ecs_ecr: ecs_ecr:
region: '{{ ec2_region }}' region: '{{ ec2_region }}'
name: '{{ ecr_name }}' name: '{{ ecr_name }}'
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
- name: it should not change - name: it should not change
@ -181,6 +232,9 @@
name: '{{ ecr_name }}' name: '{{ ecr_name }}'
policy: '{{ policy }}' policy: '{{ policy }}'
delete_policy: yes delete_policy: yes
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
ignore_errors: true ignore_errors: true
@ -195,6 +249,9 @@
region: '{{ ec2_region }}' region: '{{ ec2_region }}'
name: '{{ ecr_name }}' name: '{{ ecr_name }}'
policy_text: "Ceci n'est pas une JSON" policy_text: "Ceci n'est pas une JSON"
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
ignore_errors: true ignore_errors: true
@ -205,7 +262,13 @@
- name: When in check mode, deleting a policy that exists - name: When in check mode, deleting a policy that exists
ecs_ecr: name='{{ ecr_name }}' region='{{ ec2_region }}' state=absent ecs_ecr:
name: '{{ ecr_name }}'
region: '{{ ec2_region }}'
state: absent
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
check_mode: yes check_mode: yes
@ -218,7 +281,13 @@
- name: When deleting a policy that exists - name: When deleting a policy that exists
ecs_ecr: name='{{ ecr_name }}' region='{{ ec2_region }}' state=absent ecs_ecr:
name: '{{ ecr_name }}'
region: '{{ ec2_region }}'
state: absent
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
- name: it should change - name: it should change
@ -228,7 +297,13 @@
- name: When in check mode, deleting a policy that does not exist - name: When in check mode, deleting a policy that does not exist
ecs_ecr: name='{{ ecr_name }}' region='{{ ec2_region }}' state=absent ecs_ecr:
name: '{{ ecr_name }}'
region: '{{ ec2_region }}'
state: absent
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
check_mode: yes check_mode: yes
@ -240,7 +315,13 @@
- name: When deleting a policy that does not exist - name: When deleting a policy that does not exist
ecs_ecr: name='{{ ecr_name }}' region='{{ ec2_region }}' state=absent ecs_ecr:
name: '{{ ecr_name }}'
region: '{{ ec2_region }}'
state: absent
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'
register: result register: result
- name: it should not change - name: it should not change
@ -249,5 +330,12 @@
- not result|changed - not result|changed
always: always:
- name: Delete lingering ECR repository - name: Delete lingering ECR repository
ecs_ecr: name='{{ ecr_name }}' region='{{ ec2_region }}' state=absent ecs_ecr:
name: '{{ ecr_name }}'
region: '{{ ec2_region }}'
state: absent
ec2_access_key: '{{ec2_access_key}}'
ec2_secret_key: '{{ec2_secret_key}}'
security_token: '{{security_token}}'

Loading…
Cancel
Save