Peers_from_control_nodes requires listener port

Adds validation and a unit test to ensure:

- peers_from_control_nodes=True should fail if
listener_port is not set
- peers_from_control_nodes=False should be NOOP if
listener_port is not set

Signed-off-by: Seth Foster <fosterbseth@gmail.com>
This commit is contained in:
Seth Foster
2024-01-23 17:42:33 -05:00
committed by Seth Foster
parent a4cf55bdba
commit 1b44bebed3
2 changed files with 16 additions and 4 deletions

View File

@@ -5708,6 +5708,11 @@ class InstanceSerializer(BaseSerializer):
if len(set(peers_instances)) != len(peers_instances):
raise serializers.ValidationError(_("Cannot peer to the same instance more than once."))
# cannot enable peers_from_control_nodes if listener_port is not set
if attrs.get('peers_from_control_nodes'):
if not attrs.get('listener_port') and self.instance and self.instance.canonical_address_port is None:
raise serializers.ValidationError(_("Cannot enable peers_from_control_nodes if listener_port is not set."))
return super().validate(attrs)
def validate_node_type(self, value):