mirror of
https://github.com/ansible/awx.git
synced 2026-05-12 20:07:37 -02:30
handle case where default IG does not exist
* also, only add discovered execution node to default group if `register`-ing the node actually resulted in a confirmed change
This commit is contained in:
@@ -449,15 +449,7 @@ def inspect_execution_nodes(instance_list):
|
|||||||
else:
|
else:
|
||||||
defaults = dict(enabled=False)
|
defaults = dict(enabled=False)
|
||||||
(changed, instance) = Instance.objects.register(hostname=hostname, node_type='execution', defaults=defaults)
|
(changed, instance) = Instance.objects.register(hostname=hostname, node_type='execution', defaults=defaults)
|
||||||
logger.warn("Registered execution node '{}' (marked as disabled by default)".format(hostname))
|
logger.warn("Registered execution node '{}' (marked disabled by default)".format(hostname))
|
||||||
|
|
||||||
default_ig = InstanceGroup.objects.get(name='default')
|
|
||||||
if instance.hostname not in default_ig.policy_instance_list:
|
|
||||||
default_ig.policy_instance_list += [instance.hostname]
|
|
||||||
default_ig.save()
|
|
||||||
logger.warn("Updated `default` instance group's policy_instance_list to include execution node '{}'".format(hostname))
|
|
||||||
else:
|
|
||||||
logger.warn("`default` instance group's policy_instance_list already listed execution node '{}'".format(hostname))
|
|
||||||
|
|
||||||
was_lost = instance.is_lost(ref_time=nowtime)
|
was_lost = instance.is_lost(ref_time=nowtime)
|
||||||
last_seen = parse_date(ad['Time'])
|
last_seen = parse_date(ad['Time'])
|
||||||
@@ -468,6 +460,17 @@ def inspect_execution_nodes(instance_list):
|
|||||||
instance.save(update_fields=['last_seen'])
|
instance.save(update_fields=['last_seen'])
|
||||||
|
|
||||||
if changed:
|
if changed:
|
||||||
|
try:
|
||||||
|
default_ig = InstanceGroup.objects.get(name='default')
|
||||||
|
if instance.hostname not in default_ig.policy_instance_list:
|
||||||
|
default_ig.policy_instance_list += [instance.hostname]
|
||||||
|
default_ig.save()
|
||||||
|
logger.warn("Updated `default` instance group's policy_instance_list to include execution node '{}'".format(hostname))
|
||||||
|
else:
|
||||||
|
logger.warn("`default` instance group's policy_instance_list already listed execution node '{}'".format(hostname))
|
||||||
|
except InstanceGroup.DoesNotExist:
|
||||||
|
logger.error(f"Unable to add execution node '{hostname}' to 'default' instance group; group not found.")
|
||||||
|
|
||||||
execution_node_health_check.apply_async([hostname])
|
execution_node_health_check.apply_async([hostname])
|
||||||
elif was_lost:
|
elif was_lost:
|
||||||
# if the instance *was* lost, but has appeared again,
|
# if the instance *was* lost, but has appeared again,
|
||||||
|
|||||||
Reference in New Issue
Block a user