Delay instance tagging to later in the instance creation process
Tagging recently created instances can result in InvalidInstanceID.NotFound errors. By delaying the tagging until the last part of instance creation, we should be typically more fortunate (avoiding all such race conditions might need more work)
This commit is contained in:
parent
abe3655cec
commit
e45858ba7f
1 changed files with 7 additions and 6 deletions
13
cloud/ec2
13
cloud/ec2
|
@ -913,12 +913,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))
|
||||
|
||||
if instance_tags:
|
||||
try:
|
||||
ec2.create_tags(instids, instance_tags)
|
||||
except boto.exception.EC2ResponseError, e:
|
||||
module.fail_json(msg = "Instance tagging failed => %s: %s" % (e.error_code, e.error_message))
|
||||
|
||||
# wait here until the instances are up
|
||||
num_running = 0
|
||||
wait_timeout = time.time() + wait_timeout
|
||||
|
@ -950,6 +944,13 @@ def create_instances(module, ec2, override_count=None):
|
|||
for inst in res.instances:
|
||||
inst.modify_attribute('sourceDestCheck', False)
|
||||
|
||||
# Leave this as late as possible to try and avoid InvalidInstanceID.NotFound
|
||||
if instance_tags:
|
||||
try:
|
||||
ec2.create_tags(instids, instance_tags)
|
||||
except boto.exception.EC2ResponseError, e:
|
||||
module.fail_json(msg = "Instance tagging failed => %s: %s" % (e.error_code, e.error_message))
|
||||
|
||||
instance_dict_array = []
|
||||
created_instance_ids = []
|
||||
for inst in running_instances:
|
||||
|
|
Loading…
Reference in a new issue