updated config service grpc to return default templates and config, added logic to check for local custom templates

This commit is contained in:
Blake Harnden 2020-01-20 15:54:47 -08:00
parent 7b5df11dc7
commit a4f3abf27c
7 changed files with 51 additions and 54 deletions

View file

@ -13,10 +13,10 @@ import netaddr
from core import utils
from core.api.grpc import core_pb2, core_pb2_grpc
from core.api.grpc.configservices_pb2 import (
GetConfigServiceDefaultsRequest,
GetConfigServiceDefaultsResponse,
GetConfigServicesRequest,
GetConfigServicesResponse,
GetConfigServiceTemplatesRequest,
GetConfigServiceTemplatesResponse,
GetNodeConfigServiceRequest,
GetNodeConfigServiceResponse,
GetNodeConfigServicesRequest,
@ -1094,11 +1094,11 @@ class CoreGrpcClient:
request = GetConfigServicesRequest()
return self.stub.GetConfigServices(request)
def get_config_service_templates(
def get_config_service_defaults(
self, name: str
) -> GetConfigServiceTemplatesResponse:
request = GetConfigServiceTemplatesRequest(name=name)
return self.stub.GetConfigServiceTemplates(request)
) -> GetConfigServiceDefaultsResponse:
request = GetConfigServiceDefaultsRequest(name=name)
return self.stub.GetConfigServiceDefaults(request)
def get_node_config_service(
self, session_id: int, node_id: int, name: str

View file

@ -13,10 +13,10 @@ from grpc import ServicerContext
from core.api.grpc import core_pb2, core_pb2_grpc, grpcutils
from core.api.grpc.configservices_pb2 import (
ConfigService,
GetConfigServiceDefaultsRequest,
GetConfigServiceDefaultsResponse,
GetConfigServicesRequest,
GetConfigServicesResponse,
GetConfigServiceTemplatesRequest,
GetConfigServiceTemplatesResponse,
GetNodeConfigServiceRequest,
GetNodeConfigServiceResponse,
GetNodeConfigServicesRequest,
@ -1482,20 +1482,20 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
self.validate_service(request.name, context)
service = node.config_services.get(request.name)
if service:
config = service.get_config()
config = service.render_config()
else:
service = self.coreemu.service_manager.get_service(request.name)
config = {x.id: x.default for x in service.default_configs}
return GetNodeConfigServiceResponse(config=config)
def GetConfigServiceTemplates(
self, request: GetConfigServiceTemplatesRequest, context: ServicerContext
) -> GetConfigServiceTemplatesResponse:
def GetConfigServiceDefaults(
self, request: GetConfigServiceDefaultsRequest, context: ServicerContext
) -> GetConfigServiceDefaultsResponse:
service_class = self.validate_service(request.name, context)
service = service_class(None)
templates = service.get_templates()
return GetConfigServiceTemplatesResponse(templates=templates)
config = service.render_config()
return GetConfigServiceDefaultsResponse(templates=templates, config=config)
def GetNodeConfigServices(
self, request: GetNodeConfigServicesRequest, context: ServicerContext