added files to config services, added default logic for creating files from templates, added new method to provide extra data to templates, updated gui to display templates raw
This commit is contained in:
parent
9447ddb94f
commit
7b5df11dc7
11 changed files with 120 additions and 52 deletions
|
@ -15,6 +15,8 @@ from core.api.grpc import core_pb2, core_pb2_grpc
|
|||
from core.api.grpc.configservices_pb2 import (
|
||||
GetConfigServicesRequest,
|
||||
GetConfigServicesResponse,
|
||||
GetConfigServiceTemplatesRequest,
|
||||
GetConfigServiceTemplatesResponse,
|
||||
GetNodeConfigServiceRequest,
|
||||
GetNodeConfigServiceResponse,
|
||||
GetNodeConfigServicesRequest,
|
||||
|
@ -1092,6 +1094,12 @@ class CoreGrpcClient:
|
|||
request = GetConfigServicesRequest()
|
||||
return self.stub.GetConfigServices(request)
|
||||
|
||||
def get_config_service_templates(
|
||||
self, name: str
|
||||
) -> GetConfigServiceTemplatesResponse:
|
||||
request = GetConfigServiceTemplatesRequest(name=name)
|
||||
return self.stub.GetConfigServiceTemplates(request)
|
||||
|
||||
def get_node_config_service(
|
||||
self, session_id: int, node_id: int, name: str
|
||||
) -> GetNodeConfigServiceResponse:
|
||||
|
|
|
@ -5,6 +5,7 @@ import re
|
|||
import tempfile
|
||||
import time
|
||||
from concurrent import futures
|
||||
from typing import Type
|
||||
|
||||
import grpc
|
||||
from grpc import ServicerContext
|
||||
|
@ -14,6 +15,8 @@ from core.api.grpc.configservices_pb2 import (
|
|||
ConfigService,
|
||||
GetConfigServicesRequest,
|
||||
GetConfigServicesResponse,
|
||||
GetConfigServiceTemplatesRequest,
|
||||
GetConfigServiceTemplatesResponse,
|
||||
GetNodeConfigServiceRequest,
|
||||
GetNodeConfigServiceResponse,
|
||||
GetNodeConfigServicesRequest,
|
||||
|
@ -112,9 +115,13 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
except CoreError:
|
||||
context.abort(grpc.StatusCode.NOT_FOUND, f"node {node_id} not found")
|
||||
|
||||
def validate_service(self, name: str, context: ServicerContext) -> None:
|
||||
if name not in self.coreemu.service_manager.services:
|
||||
def validate_service(
|
||||
self, name: str, context: ServicerContext
|
||||
) -> Type[ConfigService]:
|
||||
service = self.coreemu.service_manager.services.get(name)
|
||||
if not service:
|
||||
context.abort(grpc.StatusCode.NOT_FOUND, f"unknown service {name}")
|
||||
return service
|
||||
|
||||
def StartSession(
|
||||
self, request: core_pb2.StartSessionRequest, context: ServicerContext
|
||||
|
@ -1456,6 +1463,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
executables=service.executables,
|
||||
dependencies=service.dependencies,
|
||||
directories=service.directories,
|
||||
files=service.files,
|
||||
startup=service.startup,
|
||||
validate=service.validate,
|
||||
shutdown=service.shutdown,
|
||||
|
@ -1481,6 +1489,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
config = {x.id: x.default for x in service.default_configs}
|
||||
return GetNodeConfigServiceResponse(config=config)
|
||||
|
||||
def GetConfigServiceTemplates(
|
||||
self, request: GetConfigServiceTemplatesRequest, context: ServicerContext
|
||||
) -> GetConfigServiceTemplatesResponse:
|
||||
service_class = self.validate_service(request.name, context)
|
||||
service = service_class(None)
|
||||
templates = service.get_templates()
|
||||
return GetConfigServiceTemplatesResponse(templates=templates)
|
||||
|
||||
def GetNodeConfigServices(
|
||||
self, request: GetNodeConfigServicesRequest, context: ServicerContext
|
||||
) -> GetNodeConfigServicesResponse:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue