From 4792269168d2c8a60becf228d7079722baa90a04 Mon Sep 17 00:00:00 2001 From: thatmattlove Date: Thu, 16 Sep 2021 13:59:39 -0700 Subject: [PATCH] Fix query JSON serialization --- hyperglass/execution/drivers/_construct.py | 3 ++- hyperglass/execution/main.py | 4 ++-- hyperglass/models/api/query.py | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/hyperglass/execution/drivers/_construct.py b/hyperglass/execution/drivers/_construct.py index b2b8520..9d5efba 100644 --- a/hyperglass/execution/drivers/_construct.py +++ b/hyperglass/execution/drivers/_construct.py @@ -90,7 +90,8 @@ class Construct: rules = [r for r in self.directive.rules if r._passed is True] if len(rules) < 1: raise InputInvalid( - error="No validation rules matched target '{target}'", query=self.query + error="No validation rules matched target '{target}'", + target=self.query.query_target, ) for rule in [r for r in self.directive.rules if r._passed is True]: diff --git a/hyperglass/execution/main.py b/hyperglass/execution/main.py index f2c4421..04ba9e9 100644 --- a/hyperglass/execution/main.py +++ b/hyperglass/execution/main.py @@ -50,8 +50,8 @@ async def execute(query: "Query") -> Union["OutputDataModel", str]: params = use_state("params") output = params.messages.general - log.debug("Received query {}", query.json()) - log.debug("Matched device config: {}", query.device) + log.debug("Received query {}", query.export_dict()) + log.debug("Matched device config: {!s}", query.device) mapped_driver = map_driver(query.device.driver) driver: "Connection" = mapped_driver(query.device, query) diff --git a/hyperglass/models/api/query.py b/hyperglass/models/api/query.py index b61bcc1..d4817c0 100644 --- a/hyperglass/models/api/query.py +++ b/hyperglass/models/api/query.py @@ -74,7 +74,7 @@ class Query(BaseModel): super().__init__(**kwargs) self.timestamp = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") state = use_state() - self.state = state + self._state = state try: self.validate_query_target() except InputValidationError as err: @@ -117,7 +117,7 @@ class Query(BaseModel): @property def device(self) -> Device: """Get this query's device object by query_location.""" - return self.state.devices[self.query_location] + return self._state.devices[self.query_location] @property def directive(self) -> Directive: