summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Coca <bcoca@ansible.com>2015-02-09 10:50:22 -0500
committerBrian Coca <bcoca@ansible.com>2015-02-09 10:50:22 -0500
commit095f8681dbdfd2e9247446822e953287c9bca66c (patch)
tree173a3c85516e165ff2bc540a3889e4ef73a1827e
parent42ab01711d495b8a4cb4589119c9f585ca829d41 (diff)
parent6090c4e109995929ab175e7795868f1b5b882eb2 (diff)
downloadansible-modules-core-095f8681dbdfd2e9247446822e953287c9bca66c.tar.gz
Merge pull request #597 from jbbarth/bug/fix-ec2-spot-provisionning/423
EC2: move logic about terminated instances up (#423)
-rwxr-xr-x[-rw-r--r--]cloud/amazon/ec2.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/cloud/amazon/ec2.py b/cloud/amazon/ec2.py
index 93b496cb..d34931c9 100644..100755
--- a/cloud/amazon/ec2.py
+++ b/cloud/amazon/ec2.py
@@ -915,6 +915,18 @@ def create_instances(module, ec2, override_count=None):
continue
else:
module.fail_json(msg = str(e))
+
+ # The instances returned through ec2.run_instances above can be in
+ # terminated state due to idempotency. See commit 7f11c3d for a complete
+ # explanation.
+ terminated_instances = [
+ str(instance.id) for instance in res.instances if instance.state == 'terminated'
+ ]
+ if terminated_instances:
+ module.fail_json(msg = "Instances with id(s) %s " % terminated_instances +
+ "were created previously but have since been terminated - " +
+ "use a (possibly different) 'instanceid' parameter")
+
else:
if private_ip:
module.fail_json(
@@ -952,15 +964,6 @@ def create_instances(module, ec2, override_count=None):
except boto.exception.BotoServerError, e:
module.fail_json(msg = "Instance creation failed => %s: %s" % (e.error_code, e.error_message))
- # The instances returned through run_instances can be in
- # terminated state due to idempotency.
- terminated_instances = [ str(instance.id) for instance in res.instances
- if instance.state == 'terminated' ]
- if terminated_instances:
- module.fail_json(msg = "Instances with id(s) %s " % terminated_instances +
- "were created previously but have since been terminated - " +
- "use a (possibly different) 'instanceid' parameter")
-
# wait here until the instances are up
num_running = 0
wait_timeout = time.time() + wait_timeout