@ -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'