mirror of
https://github.com/ansible/awx.git
synced 2026-05-20 07:17:40 -02:30
Add peers_from_control_nodes to ReceptorAddress
- write_receptor_config peers to ReceptorAddress entries that have peers_from_control_nodes enabled - peers_from_control_nodes and listener_port removed from Instance model - peers_from_control_nodes added to ReceptorAddress model - ReceptorAddress is now unique by address and protocol combination - Write receptor config task is dispatched upon ReceptorAddress creation or deletion, and when control node is first created - InstanceLinkSerializer adds a target_address field and has logic to grab the instance hostname associated with the peered ReceptorAddress Signed-off-by: Seth Foster <fosterbseth@gmail.com>
This commit is contained in:
@@ -22,6 +22,7 @@ class Command(BaseCommand):
|
||||
parser.add_argument('--protocol', dest='protocol', type=str, default='tcp', choices=['tcp', 'ws'], help="Protocol of the backend connection")
|
||||
parser.add_argument('--websocket_path', dest='websocket_path', type=str, default="", help="Path for websockets")
|
||||
parser.add_argument('--is_internal', action='store_true', help="If true, address only resolvable within the Kubernetes cluster")
|
||||
parser.add_argument('--peers_from_control_nodes', action='store_true', help="If true, control nodes will peer to this address")
|
||||
|
||||
def _add_address(self, **kwargs):
|
||||
try:
|
||||
@@ -34,10 +35,9 @@ class Command(BaseCommand):
|
||||
self.changed = False
|
||||
print(f"Error adding receptor address: {e}")
|
||||
|
||||
@transaction.atomic
|
||||
def handle(self, **options):
|
||||
self.changed = False
|
||||
address_options = {k: options[k] for k in ('hostname', 'address', 'port', 'protocol', 'websocket_path', 'is_internal')}
|
||||
address_options = {k: options[k] for k in ('hostname', 'address', 'port', 'protocol', 'websocket_path', 'is_internal', 'peers_from_control_nodes')}
|
||||
self._add_address(**address_options)
|
||||
if self.changed:
|
||||
print("(changed: True)")
|
||||
|
||||
@@ -28,9 +28,8 @@ class Command(BaseCommand):
|
||||
parser.add_argument('--listener_port', dest='listener_port', type=int, help="Receptor listener port")
|
||||
parser.add_argument('--node_type', type=str, default='hybrid', choices=['control', 'execution', 'hop', 'hybrid'], help="Instance Node type")
|
||||
parser.add_argument('--uuid', type=str, help="Instance UUID")
|
||||
parser.add_argument('--peers_from_control_nodes', action='store_true', help="If set, will automatically peer from control nodes")
|
||||
|
||||
def _register_hostname(self, hostname, node_type, uuid, listener_port, peers_from_control_nodes):
|
||||
def _register_hostname(self, hostname, node_type, uuid, listener_port):
|
||||
if not hostname:
|
||||
if not settings.AWX_AUTO_DEPROVISION_INSTANCES:
|
||||
raise CommandError('Registering with values from settings only intended for use in K8s installs')
|
||||
@@ -52,9 +51,7 @@ class Command(BaseCommand):
|
||||
max_concurrent_jobs=settings.DEFAULT_EXECUTION_QUEUE_MAX_CONCURRENT_JOBS,
|
||||
).register()
|
||||
else:
|
||||
(changed, instance) = Instance.objects.register(
|
||||
hostname=hostname, node_type=node_type, node_uuid=uuid, listener_port=listener_port, peers_from_control_nodes=peers_from_control_nodes
|
||||
)
|
||||
(changed, instance) = Instance.objects.register(hostname=hostname, node_type=node_type, node_uuid=uuid, listener_port=listener_port)
|
||||
if changed:
|
||||
print("Successfully registered instance {}".format(hostname))
|
||||
else:
|
||||
@@ -64,8 +61,6 @@ class Command(BaseCommand):
|
||||
@transaction.atomic
|
||||
def handle(self, **options):
|
||||
self.changed = False
|
||||
self._register_hostname(
|
||||
options.get('hostname'), options.get('node_type'), options.get('uuid'), options.get('listener_port'), options.get('peers_from_control_nodes')
|
||||
)
|
||||
self._register_hostname(options.get('hostname'), options.get('node_type'), options.get('uuid'), options.get('listener_port'))
|
||||
if self.changed:
|
||||
print("(changed: True)")
|
||||
|
||||
Reference in New Issue
Block a user