mirror of
https://github.com/ansible/awx.git
synced 2026-03-21 10:57:36 -02:30
[hop_node] Validate listener_port is defined for peers (#14056)
add peer listener_port validation and update install bundle if listener_port is defined or not defined.
This commit is contained in:
committed by
Seth Foster
parent
148111a072
commit
40fca6db57
@@ -5486,6 +5486,7 @@ class InstanceSerializer(BaseSerializer):
|
|||||||
raise serializers.ValidationError("Can only create instances on Kubernetes or OpenShift.")
|
raise serializers.ValidationError("Can only create instances on Kubernetes or OpenShift.")
|
||||||
node_type = get_field_from_model_or_attrs("node_type")
|
node_type = get_field_from_model_or_attrs("node_type")
|
||||||
peers_from_control_nodes = get_field_from_model_or_attrs("peers_from_control_nodes")
|
peers_from_control_nodes = get_field_from_model_or_attrs("peers_from_control_nodes")
|
||||||
|
listener_port = get_field_from_model_or_attrs("listener_port")
|
||||||
|
|
||||||
if peers_from_control_nodes and node_type not in (Instance.Types.EXECUTION, Instance.Types.HOP):
|
if peers_from_control_nodes and node_type not in (Instance.Types.EXECUTION, Instance.Types.HOP):
|
||||||
raise serializers.ValidationError("peers_from_control_nodes can only be enabled for execution or hop nodes.")
|
raise serializers.ValidationError("peers_from_control_nodes can only be enabled for execution or hop nodes.")
|
||||||
@@ -5496,6 +5497,12 @@ class InstanceSerializer(BaseSerializer):
|
|||||||
"Setting peers manually for control nodes is not allowed. Enable peers_from_control_nodes on the hop and execution nodes instead."
|
"Setting peers manually for control nodes is not allowed. Enable peers_from_control_nodes on the hop and execution nodes instead."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if peers_from_control_nodes and listener_port is None:
|
||||||
|
raise serializers.ValidationError(_("Field listener_port must be a valid integer when peers_from_control_nodes is enabled."))
|
||||||
|
for peer in attrs.get('peers', []):
|
||||||
|
if peer.listener_port is None:
|
||||||
|
raise serializers.ValidationError(_("Field listener_port must be set on peer ") + peer.hostname + ".")
|
||||||
|
|
||||||
return super().validate(attrs)
|
return super().validate(attrs)
|
||||||
|
|
||||||
def validate_node_type(self, value):
|
def validate_node_type(self, value):
|
||||||
|
|||||||
@@ -15,8 +15,12 @@ custom_tls_certfile: receptor/tls/receptor.crt
|
|||||||
custom_tls_keyfile: receptor/tls/receptor.key
|
custom_tls_keyfile: receptor/tls/receptor.key
|
||||||
custom_ca_certfile: receptor/tls/ca/mesh-CA.crt
|
custom_ca_certfile: receptor/tls/ca/mesh-CA.crt
|
||||||
receptor_protocol: 'tcp'
|
receptor_protocol: 'tcp'
|
||||||
|
{% if instance.listener_port %}
|
||||||
receptor_listener: true
|
receptor_listener: true
|
||||||
receptor_port: {{ instance.listener_port }}
|
receptor_port: {{ instance.listener_port }}
|
||||||
|
{% else %}
|
||||||
|
receptor_listener: false
|
||||||
|
{% endif %}
|
||||||
{% if peers %}
|
{% if peers %}
|
||||||
receptor_peers:
|
receptor_peers:
|
||||||
{% for peer in peers %}
|
{% for peer in peers %}
|
||||||
|
|||||||
@@ -35,15 +35,7 @@ class Command(BaseCommand):
|
|||||||
|
|
||||||
def host_metric_summary_monthly_queryset(self, result, offset=0, limit=BATCHED_FETCH_COUNT):
|
def host_metric_summary_monthly_queryset(self, result, offset=0, limit=BATCHED_FETCH_COUNT):
|
||||||
list_of_queryset = list(
|
list_of_queryset = list(
|
||||||
result.values(
|
result.values('id', 'date', 'license_consumed', 'license_capacity', 'hosts_added', 'hosts_deleted', 'indirectly_managed_hosts',).order_by(
|
||||||
'id',
|
|
||||||
'date',
|
|
||||||
'license_consumed',
|
|
||||||
'license_capacity',
|
|
||||||
'hosts_added',
|
|
||||||
'hosts_deleted',
|
|
||||||
'indirectly_managed_hosts',
|
|
||||||
).order_by(
|
|
||||||
'date'
|
'date'
|
||||||
)[offset : offset + limit]
|
)[offset : offset + limit]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
# Generated by Django 4.2 on 2023-05-17 18:31
|
# Generated by Django 4.2 on 2023-05-17 18:31
|
||||||
|
|
||||||
|
import django.core.validators
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
@@ -32,4 +33,15 @@ class Migration(migrations.Migration):
|
|||||||
model_name='instancelink',
|
model_name='instancelink',
|
||||||
constraint=models.CheckConstraint(check=models.Q(('source', models.F('target')), _negated=True), name='source_and_target_can_not_be_equal'),
|
constraint=models.CheckConstraint(check=models.Q(('source', models.F('target')), _negated=True), name='source_and_target_can_not_be_equal'),
|
||||||
),
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='instance',
|
||||||
|
name='listener_port',
|
||||||
|
field=models.PositiveIntegerField(
|
||||||
|
blank=True,
|
||||||
|
default=None,
|
||||||
|
help_text='Port that Receptor will listen for incoming connections on.',
|
||||||
|
null=True,
|
||||||
|
validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(65535)],
|
||||||
|
),
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -178,7 +178,8 @@ class Instance(HasPolicyEditsMixin, BaseModel):
|
|||||||
)
|
)
|
||||||
listener_port = models.PositiveIntegerField(
|
listener_port = models.PositiveIntegerField(
|
||||||
blank=True,
|
blank=True,
|
||||||
default=27199,
|
null=True,
|
||||||
|
default=None,
|
||||||
validators=[MinValueValidator(1), MaxValueValidator(65535)],
|
validators=[MinValueValidator(1), MaxValueValidator(65535)],
|
||||||
help_text=_("Port that Receptor will listen for incoming connections on."),
|
help_text=_("Port that Receptor will listen for incoming connections on."),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user