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: