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
aac194e639
commit
a1aec8dadd
1 changed files with 7 additions and 6 deletions
|
@ -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