From 5d39ff054f46ce08796d69c564a918259e88fe4e Mon Sep 17 00:00:00 2001 From: thatmattlove Date: Tue, 19 Mar 2024 23:27:38 -0400 Subject: [PATCH] fix ip validation rule when querying an IPv6 target --- hyperglass/models/directive.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hyperglass/models/directive.py b/hyperglass/models/directive.py index 45e53416..d546563f 100644 --- a/hyperglass/models/directive.py +++ b/hyperglass/models/directive.py @@ -91,7 +91,7 @@ def validate_target(self, target: str, *, multiple: bool) -> bool: class RuleWithIP(Rule): """Base IP-based rule.""" - condition: IPvAnyNetwork + condition: t.Union[IPv4Network, IPv6Network] allow_reserved: bool = False allow_unspecified: bool = False allow_loopback: bool = False @@ -140,6 +140,10 @@ def validate_target(self, target: str, *, multiple: bool) -> bool: except ValueError as err: raise InputValidationError(error=str(err), target=target) from err + if valid_target.version != self.condition.version: + log.debug("{!s} is not the same IP version as {!s}", target, self.condition) + return False + is_member = self.membership(valid_target, self.condition) in_range = self.in_range(valid_target)