gui/grpc: updated GetConfigServiceDefaults to require a session and node id, this will allow retrieving data with the context of the associated node

This commit is contained in:
Blake Harnden 2023-06-08 20:40:49 -07:00
parent 41e473eefc
commit e0e4b05b7f
5 changed files with 24 additions and 4 deletions

View file

@ -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)

View file

@ -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:

View file

@ -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]:

View file

@ -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)

View file

@ -41,6 +41,8 @@ message ConfigMode {
message GetConfigServiceDefaultsRequest {
string name = 1;
int32 session_id = 2;
int32 node_id = 3;
}
message GetConfigServiceDefaultsResponse {