From c2240d92c65000865bd977e465ccf194e393323d Mon Sep 17 00:00:00 2001 From: thatmattlove Date: Sat, 25 Sep 2021 21:50:51 -0700 Subject: [PATCH] Remove `query_group` from query fields --- hyperglass/api/routes.py | 2 +- hyperglass/exceptions/public.py | 8 ------ hyperglass/models/api/query.py | 49 ++------------------------------- hyperglass/models/config/web.py | 1 - hyperglass/ui/types/config.ts | 1 - 5 files changed, 3 insertions(+), 58 deletions(-) diff --git a/hyperglass/api/routes.py b/hyperglass/api/routes.py index 725a624..7e546ce 100644 --- a/hyperglass/api/routes.py +++ b/hyperglass/api/routes.py @@ -71,7 +71,7 @@ async def send_webhook( await hook.send( query={ - **query_data.export_dict(pretty=True), + **query_data.dict(), "headers": headers, "source": host, "network": network_info.get(host, {}), diff --git a/hyperglass/exceptions/public.py b/hyperglass/exceptions/public.py index 12d607a..8126b58 100644 --- a/hyperglass/exceptions/public.py +++ b/hyperglass/exceptions/public.py @@ -97,14 +97,6 @@ class QueryTypeNotFound(NotFound): super().__init__(type=TEXT.query_type, name=str(query_type), **kwargs) -class QueryGroupNotFound(NotFound): - """Raised when a query group is not found.""" - - def __init__(self, group: Any, **kwargs: Dict[str, Any]) -> None: - """Initialize a NotFound error for a query group.""" - super().__init__(type=TEXT.query_group, name=str(group), **kwargs) - - class InputInvalid(PublicHyperglassError, template=MESSAGES.invalid_input): """Raised when input validation fails.""" diff --git a/hyperglass/models/api/query.py b/hyperglass/models/api/query.py index a455448..c2c93ab 100644 --- a/hyperglass/models/api/query.py +++ b/hyperglass/models/api/query.py @@ -1,10 +1,8 @@ """Input query validation model.""" # Standard Library -import json import hashlib import secrets -from typing import Optional from datetime import datetime # Third Party @@ -30,12 +28,8 @@ from ..config.devices import Device class Query(BaseModel): """Validation model for input query parameters.""" - # Device `name` field - query_location: StrictStr - # Directive `id` field - query_type: StrictStr - # Directive `groups` member - query_group: Optional[StrictStr] = None + query_location: StrictStr # Device `name` field + query_type: StrictStr # Directive `id` field query_target: constr(strip_whitespace=True, min_length=1) class Config: @@ -54,11 +48,6 @@ class Query(BaseModel): "description": "Type of Query to Execute", "example": "bgp_route", }, - "query_group": { - "title": TEXT.query_group, - "description": "Routing Table/VRF", - "example": "default", - }, "query_target": { "title": TEXT.query_target, "description": "IP Address, Community, or AS Path", @@ -105,45 +94,11 @@ class Query(BaseModel): self.directive.validate_target(self.query_target) log.debug("Validation passed for query {!r}", self) - @property - def summary(self): - """Create abbreviated representation of instance.""" - items = ( - f"query_location={self.query_location}", - f"query_type={self.query_type}", - f"query_group={self.query_group}", - f"query_target={self.query_target!s}", - ) - return f'Query({", ".join(items)})' - @property def device(self) -> Device: """Get this query's device object by query_location.""" return self._state.devices[self.query_location] - def export_dict(self, pretty=False): - """Create dictionary representation of instance.""" - - if pretty: - items = { - "query_location": self.device.name, - "query_type": self.query.display_name, - "query_group": self.query_group, - "query_target": str(self.query_target), - } - else: - items = { - "query_location": self.query_location, - "query_type": self.query_type, - "query_group": self.query_group, - "query_target": str(self.query_target), - } - return items - - def export_json(self): - """Create JSON representation of instance.""" - return json.dumps(self.export_dict(), default=str) - @validator("query_type") def validate_query_type(cls, value): """Ensure a requested query type exists.""" diff --git a/hyperglass/models/config/web.py b/hyperglass/models/config/web.py index b778a90..9e537f8 100644 --- a/hyperglass/models/config/web.py +++ b/hyperglass/models/config/web.py @@ -141,7 +141,6 @@ class Text(HyperglassModel): query_location: StrictStr = "Location" query_type: StrictStr = "Query Type" query_target: StrictStr = "Target" - query_group: StrictStr = "Routing Table" fqdn_tooltip: StrictStr = "Use {protocol}" # Formatted by Javascript fqdn_message: StrictStr = "Your browser has resolved {fqdn} to" # Formatted by Javascript fqdn_error: StrictStr = "Unable to resolve {fqdn}" # Formatted by Javascript diff --git a/hyperglass/ui/types/config.ts b/hyperglass/ui/types/config.ts index fe3f467..efe3255 100644 --- a/hyperglass/ui/types/config.ts +++ b/hyperglass/ui/types/config.ts @@ -36,7 +36,6 @@ interface _Text { query_location: string; query_type: string; query_target: string; - query_group: string; fqdn_tooltip: string; fqdn_message: string; fqdn_error: string;