From 73c1ccf53e60ad4afa4f085071708191d8e2c584 Mon Sep 17 00:00:00 2001 From: Kevin Bell Date: Tue, 27 May 2014 21:36:42 -0700 Subject: [PATCH] Added an integration test for the ec2_asg module --- test/integration/amazon.yml | 1 + test/integration/cleanup_ec2.py | 11 +++++- .../roles/test_ec2_asg/tasks/main.yml | 36 +++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 test/integration/roles/test_ec2_asg/tasks/main.yml diff --git a/test/integration/amazon.yml b/test/integration/amazon.yml index 73c4aacaf75..25abbd08707 100644 --- a/test/integration/amazon.yml +++ b/test/integration/amazon.yml @@ -11,6 +11,7 @@ #- { role: test_ec2_eip, tags: test_ec2_eip } #- { role: test_ec2_ami, tags: test_ec2_ami } #- { role: test_ec2, tags: test_ec2 } + - { role: test_ec2_asg, tags: test_ec2_asg } # complex test for ec2_elb, split up over multiple plays # since there is a setup component as well as the test which diff --git a/test/integration/cleanup_ec2.py b/test/integration/cleanup_ec2.py index 9d6357883fe..e4241b0d7dc 100644 --- a/test/integration/cleanup_ec2.py +++ b/test/integration/cleanup_ec2.py @@ -117,13 +117,22 @@ if __name__ == '__main__': elb = boto.connect_elb(aws_access_key_id=opts.ec2_access_key, aws_secret_access_key=opts.ec2_secret_key) + asg = boto.connect_autoscale(aws_access_key_id=opts.ec2_access_key, + aws_secret_access_key=opts.ec2_secret_key) + try: # Delete matching keys delete_aws_resources(aws.get_all_key_pairs, 'name', opts) - # Delete matching groups + # Delete matching security groups delete_aws_resources(aws.get_all_security_groups, 'name', opts) + # Delete matching ASGs + delete_aws_resources(asg.get_all_groups, 'name', opts) + + # Delete matching launch configs + delete_aws_resources(asg.get_all_launch_configurations, 'name', opts) + # Delete ELBs delete_aws_resources(elb.get_all_load_balancers, 'name', opts) diff --git a/test/integration/roles/test_ec2_asg/tasks/main.yml b/test/integration/roles/test_ec2_asg/tasks/main.yml new file mode 100644 index 00000000000..6c670375d94 --- /dev/null +++ b/test/integration/roles/test_ec2_asg/tasks/main.yml @@ -0,0 +1,36 @@ +--- +# tasks file for test_ec2_asg + +# ============================================================ +# create and kill an ASG +- name: lookup ami id + ec2_ami_search: distro=ubuntu region={{ ec2_region }} release=trusty + register: ubuntu_image +- name: ensure launch config exists + ec2_lc: + name: "{{ resource_prefix }}-lc" + ec2_access_key: "{{ ec2_access_key }}" + ec2_secret_key: "{{ ec2_secret_key }}" + region: "{{ ec2_region }}" + image_id: "{{ ubuntu_image.ami }}" + instance_type: t1.micro +- name: launch asg + ec2_asg: + name: "{{ resource_prefix }}-asg" + ec2_access_key: "{{ ec2_access_key }}" + ec2_secret_key: "{{ ec2_secret_key }}" + launch_config_name: "{{ resource_prefix }}-lc" + min_size: 1 + max_size: 1 + region: "{{ ec2_region }}" + state: present +- name: pause for a bit to make sure that the group can't be trivially deleted + pause: seconds=30 +- name: kill asg + ec2_asg: + name: "{{ resource_prefix }}-asg" + ec2_access_key: "{{ ec2_access_key }}" + ec2_secret_key: "{{ ec2_secret_key }}" + region: "{{ ec2_region }}" + state: absent + async: 300