From e0e4b05b7fa0f8049441eb03f5ac894ba8933638 Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Thu, 8 Jun 2023 20:40:49 -0700 Subject: [PATCH] gui/grpc: updated GetConfigServiceDefaults to require a session and node id, this will allow retrieving data with the context of the associated node --- daemon/core/api/grpc/client.py | 12 ++++++++++-- daemon/core/api/grpc/server.py | 4 +++- daemon/core/gui/coreclient.py | 6 ++++++ daemon/core/gui/dialogs/configserviceconfig.py | 4 +++- daemon/proto/core/api/grpc/configservices.proto | 2 ++ 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/daemon/core/api/grpc/client.py b/daemon/core/api/grpc/client.py index c66b5b7c..b6f6ce38 100644 --- a/daemon/core/api/grpc/client.py +++ b/daemon/core/api/grpc/client.py @@ -952,14 +952,22 @@ class CoreGrpcClient: response = self.stub.GetInterfaces(request) return list(response.ifaces) - def get_config_service_defaults(self, name: str) -> wrappers.ConfigServiceDefaults: + def get_config_service_defaults( + self, session_id: int, node_id: int, name: str + ) -> wrappers.ConfigServiceDefaults: """ Retrieves config service default values. + :param session_id: session id to get node from + :param node_id: node id to get service data from :param name: name of service to get defaults for :return: config service defaults """ - request = GetConfigServiceDefaultsRequest(name=name) + request = GetConfigServiceDefaultsRequest( + name=name, + session_id=session_id, + node_id=node_id, + ) response = self.stub.GetConfigServiceDefaults(request) return wrappers.ConfigServiceDefaults.from_proto(response) diff --git a/daemon/core/api/grpc/server.py b/daemon/core/api/grpc/server.py index 8796d604..6a86ab0a 100644 --- a/daemon/core/api/grpc/server.py +++ b/daemon/core/api/grpc/server.py @@ -1285,8 +1285,10 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer): :param context: grpc context :return: get config service defaults response """ + session = self.get_session(request.session_id, context) + node = self.get_node(session, request.node_id, context, CoreNode) service_class = self.validate_service(request.name, context) - service = service_class(None) + service = service_class(node) templates = service.get_templates() config = {} for configuration in service.default_configs: diff --git a/daemon/core/gui/coreclient.py b/daemon/core/gui/coreclient.py index 5bebe77e..da2ca6d6 100644 --- a/daemon/core/gui/coreclient.py +++ b/daemon/core/gui/coreclient.py @@ -17,6 +17,7 @@ from core.api.grpc import client, configservices_pb2, core_pb2 from core.api.grpc.wrappers import ( ConfigOption, ConfigService, + ConfigServiceDefaults, EmaneModelConfig, Event, ExceptionEvent, @@ -753,6 +754,11 @@ class CoreClient: def get_config_service_rendered(self, node_id: int, name: str) -> dict[str, str]: return self.client.get_config_service_rendered(self.session.id, node_id, name) + def get_config_service_defaults( + self, node_id: int, name: str + ) -> ConfigServiceDefaults: + return self.client.get_config_service_defaults(self.session.id, node_id, name) + def get_config_service_configs_proto( self, ) -> list[configservices_pb2.ConfigServiceConfig]: diff --git a/daemon/core/gui/dialogs/configserviceconfig.py b/daemon/core/gui/dialogs/configserviceconfig.py index e252ec5e..0e873a79 100644 --- a/daemon/core/gui/dialogs/configserviceconfig.py +++ b/daemon/core/gui/dialogs/configserviceconfig.py @@ -87,7 +87,9 @@ class ConfigServiceConfigDialog(Dialog): self.validation_mode = service.validation_mode self.validation_time = service.validation_timer self.validation_period.set(service.validation_period) - defaults = self.core.client.get_config_service_defaults(self.service_name) + defaults = self.core.get_config_service_defaults( + self.node.id, self.service_name + ) self.original_service_files = defaults.templates self.temp_service_files = dict(self.original_service_files) self.modes = sorted(defaults.modes) diff --git a/daemon/proto/core/api/grpc/configservices.proto b/daemon/proto/core/api/grpc/configservices.proto index 28e00bcb..25be616d 100644 --- a/daemon/proto/core/api/grpc/configservices.proto +++ b/daemon/proto/core/api/grpc/configservices.proto @@ -41,6 +41,8 @@ message ConfigMode { message GetConfigServiceDefaultsRequest { string name = 1; + int32 session_id = 2; + int32 node_id = 3; } message GetConfigServiceDefaultsResponse {