mirror of
https://github.com/ansible/awx.git
synced 2026-03-21 02:47:35 -02:30
Merge pull request #6459 from chrismeyersfsu/fix-register_queue_race2
fix register_queue race conditionn Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
This commit is contained in:
@@ -6,6 +6,7 @@ from awx.main.utils.pglock import advisory_lock
|
|||||||
from awx.main.models import Instance, InstanceGroup
|
from awx.main.models import Instance, InstanceGroup
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand, CommandError
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
|
from django.db import transaction
|
||||||
|
|
||||||
|
|
||||||
class InstanceNotFound(Exception):
|
class InstanceNotFound(Exception):
|
||||||
@@ -97,26 +98,27 @@ class Command(BaseCommand):
|
|||||||
if options.get('hostnames'):
|
if options.get('hostnames'):
|
||||||
hostname_list = options.get('hostnames').split(",")
|
hostname_list = options.get('hostnames').split(",")
|
||||||
|
|
||||||
with advisory_lock('instance_group_registration'):
|
with advisory_lock('cluster_policy_lock'):
|
||||||
changed2 = False
|
with transaction.atomic():
|
||||||
changed3 = False
|
changed2 = False
|
||||||
(ig, created, changed1) = self.get_create_update_instance_group(queuename, inst_per, inst_min)
|
changed3 = False
|
||||||
if created:
|
(ig, created, changed1) = self.get_create_update_instance_group(queuename, inst_per, inst_min)
|
||||||
print("Creating instance group {}".format(ig.name))
|
if created:
|
||||||
elif not created:
|
print("Creating instance group {}".format(ig.name))
|
||||||
print("Instance Group already registered {}".format(ig.name))
|
elif not created:
|
||||||
|
print("Instance Group already registered {}".format(ig.name))
|
||||||
|
|
||||||
if ctrl:
|
if ctrl:
|
||||||
(ig_ctrl, changed2) = self.update_instance_group_controller(ig, ctrl)
|
(ig_ctrl, changed2) = self.update_instance_group_controller(ig, ctrl)
|
||||||
if changed2:
|
if changed2:
|
||||||
print("Set controller group {} on {}.".format(ctrl, queuename))
|
print("Set controller group {} on {}.".format(ctrl, queuename))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
(instances, changed3) = self.add_instances_to_group(ig, hostname_list)
|
(instances, changed3) = self.add_instances_to_group(ig, hostname_list)
|
||||||
for i in instances:
|
for i in instances:
|
||||||
print("Added instance {} to {}".format(i.hostname, ig.name))
|
print("Added instance {} to {}".format(i.hostname, ig.name))
|
||||||
except InstanceNotFound as e:
|
except InstanceNotFound as e:
|
||||||
instance_not_found_err = e
|
instance_not_found_err = e
|
||||||
|
|
||||||
if any([changed1, changed2, changed3]):
|
if any([changed1, changed2, changed3]):
|
||||||
print('(changed: True)')
|
print('(changed: True)')
|
||||||
|
|||||||
Reference in New Issue
Block a user