Commit d6b912c4 by James Cammarata

Modifying the wait logic for newly created images to avoid tracebacks

Fixes #4619
parent a37a6983
...@@ -199,17 +199,17 @@ def create_image(module, ec2): ...@@ -199,17 +199,17 @@ def create_image(module, ec2):
# Wait until the image is recognized. EC2 API has eventual consistency, # Wait until the image is recognized. EC2 API has eventual consistency,
# such that a successful CreateImage API call doesn't guarantee the success # such that a successful CreateImage API call doesn't guarantee the success
# of subsequent DescribeImages API call using the new image id returned. # of subsequent DescribeImages API call using the new image id returned.
for i in range(30): for i in range(wait_timeout):
try: try:
img = ec2.get_image(image_id) img = ec2.get_image(image_id)
break break
except boto.exception.EC2ResponseError, e: except boto.exception.EC2ResponseError, e:
if e.error_code == 'InvalidAMIID.NotFound': if 'InvalidAMIID.NotFound' in e.error_code and wait:
time.sleep(1) time.sleep(1)
else: else:
raise module.fail_json(msg="Error while trying to find the new image. Using wait=yes and/or a longer wait_timeout may help.")
else: else:
module.fail_json(msg = "timed out waiting for image to be recognized") module.fail_json(msg="timed out waiting for image to be recognized")
# wait here until the image is created # wait here until the image is created
wait_timeout = time.time() + wait_timeout wait_timeout = time.time() + wait_timeout
...@@ -221,7 +221,6 @@ def create_image(module, ec2): ...@@ -221,7 +221,6 @@ def create_image(module, ec2):
module.fail_json(msg = "timed out waiting for image to be created") module.fail_json(msg = "timed out waiting for image to be created")
module.exit_json(msg="AMI creation operation complete", image_id=image_id, state=img.state, changed=True) module.exit_json(msg="AMI creation operation complete", image_id=image_id, state=img.state, changed=True)
sys.exit(0)
def deregister_image(module, ec2): def deregister_image(module, ec2):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment