updates to break up core.proto into separate logical files

This commit is contained in:
Blake Harnden 2020-03-22 22:57:50 -07:00
parent 38f9f44cdf
commit 6a41012857
14 changed files with 673 additions and 555 deletions

View file

@ -19,6 +19,7 @@ from core.api.grpc import (
core_pb2_grpc,
grpcutils,
)
from core.api.grpc.common_pb2 import MappedConfig
from core.api.grpc.configservices_pb2 import (
ConfigService,
GetConfigServiceDefaultsRequest,
@ -34,10 +35,24 @@ from core.api.grpc.configservices_pb2 import (
SetNodeConfigServiceRequest,
SetNodeConfigServiceResponse,
)
from core.api.grpc.core_pb2 import (
ExecuteScriptResponse,
from core.api.grpc.core_pb2 import ExecuteScriptResponse
from core.api.grpc.emane_pb2 import (
EmaneLinkRequest,
EmaneLinkResponse,
GetEmaneConfigRequest,
GetEmaneConfigResponse,
GetEmaneEventChannelRequest,
GetEmaneEventChannelResponse,
GetEmaneModelConfigRequest,
GetEmaneModelConfigResponse,
GetEmaneModelConfigsRequest,
GetEmaneModelConfigsResponse,
GetEmaneModelsRequest,
GetEmaneModelsResponse,
SetEmaneConfigRequest,
SetEmaneConfigResponse,
SetEmaneModelConfigRequest,
SetEmaneModelConfigResponse,
)
from core.api.grpc.events import EventStreamer
from core.api.grpc.grpcutils import (
@ -46,6 +61,48 @@ from core.api.grpc.grpcutils import (
get_links,
get_net_stats,
)
from core.api.grpc.mobility_pb2 import (
GetMobilityConfigRequest,
GetMobilityConfigResponse,
GetMobilityConfigsRequest,
GetMobilityConfigsResponse,
MobilityAction,
MobilityActionRequest,
MobilityActionResponse,
SetMobilityConfigRequest,
SetMobilityConfigResponse,
)
from core.api.grpc.services_pb2 import (
GetNodeServiceConfigsRequest,
GetNodeServiceConfigsResponse,
GetNodeServiceFileRequest,
GetNodeServiceFileResponse,
GetNodeServiceRequest,
GetNodeServiceResponse,
GetServiceDefaultsRequest,
GetServiceDefaultsResponse,
GetServicesRequest,
GetServicesResponse,
Service,
ServiceAction,
ServiceActionRequest,
ServiceActionResponse,
ServiceDefaults,
SetNodeServiceFileRequest,
SetNodeServiceFileResponse,
SetNodeServiceRequest,
SetNodeServiceResponse,
SetServiceDefaultsRequest,
SetServiceDefaultsResponse,
)
from core.api.grpc.wlan_pb2 import (
GetWlanConfigRequest,
GetWlanConfigResponse,
GetWlanConfigsRequest,
GetWlanConfigsResponse,
SetWlanConfigRequest,
SetWlanConfigResponse,
)
from core.emane.nodes import EmaneNet
from core.emulator.coreemu import CoreEmu
from core.emulator.data import LinkData
@ -919,8 +976,8 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
return core_pb2.AddHookResponse(result=True)
def GetMobilityConfigs(
self, request: core_pb2.GetMobilityConfigsRequest, context: ServicerContext
) -> core_pb2.GetMobilityConfigsResponse:
self, request: GetMobilityConfigsRequest, context: ServicerContext
) -> GetMobilityConfigsResponse:
"""
Retrieve all mobility configurations from a session
@ -931,7 +988,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
"""
logging.debug("get mobility configs: %s", request)
session = self.get_session(request.session_id, context)
response = core_pb2.GetMobilityConfigsResponse()
response = GetMobilityConfigsResponse()
for node_id in session.mobility.node_configurations:
model_config = session.mobility.node_configurations[node_id]
if node_id == -1:
@ -941,13 +998,13 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
continue
current_config = session.mobility.get_model_config(node_id, model_name)
config = get_config_options(current_config, Ns2ScriptedMobility)
mapped_config = core_pb2.MappedConfig(config=config)
mapped_config = MappedConfig(config=config)
response.configs[node_id].CopyFrom(mapped_config)
return response
def GetMobilityConfig(
self, request: core_pb2.GetMobilityConfigRequest, context: ServicerContext
) -> core_pb2.GetMobilityConfigResponse:
self, request: GetMobilityConfigRequest, context: ServicerContext
) -> GetMobilityConfigResponse:
"""
Retrieve mobility configuration of a node
@ -962,11 +1019,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
request.node_id, Ns2ScriptedMobility.name
)
config = get_config_options(current_config, Ns2ScriptedMobility)
return core_pb2.GetMobilityConfigResponse(config=config)
return GetMobilityConfigResponse(config=config)
def SetMobilityConfig(
self, request: core_pb2.SetMobilityConfigRequest, context: ServicerContext
) -> core_pb2.SetMobilityConfigResponse:
self, request: SetMobilityConfigRequest, context: ServicerContext
) -> SetMobilityConfigResponse:
"""
Set mobility configuration of a node
@ -981,11 +1038,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
session.mobility.set_model_config(
mobility_config.node_id, Ns2ScriptedMobility.name, mobility_config.config
)
return core_pb2.SetMobilityConfigResponse(result=True)
return SetMobilityConfigResponse(result=True)
def MobilityAction(
self, request: core_pb2.MobilityActionRequest, context: ServicerContext
) -> core_pb2.MobilityActionResponse:
self, request: MobilityActionRequest, context: ServicerContext
) -> MobilityActionResponse:
"""
Take mobility action whether to start, pause, stop or none of those
@ -998,19 +1055,19 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
session = self.get_session(request.session_id, context)
node = self.get_node(session, request.node_id, context)
result = True
if request.action == core_pb2.MobilityAction.START:
if request.action == MobilityAction.START:
node.mobility.start()
elif request.action == core_pb2.MobilityAction.PAUSE:
elif request.action == MobilityAction.PAUSE:
node.mobility.pause()
elif request.action == core_pb2.MobilityAction.STOP:
elif request.action == MobilityAction.STOP:
node.mobility.stop(move_initial=True)
else:
result = False
return core_pb2.MobilityActionResponse(result=result)
return MobilityActionResponse(result=result)
def GetServices(
self, request: core_pb2.GetServicesRequest, context: ServicerContext
) -> core_pb2.GetServicesResponse:
self, request: GetServicesRequest, context: ServicerContext
) -> GetServicesResponse:
"""
Retrieve all the services that are running
@ -1022,13 +1079,13 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
services = []
for name in ServiceManager.services:
service = ServiceManager.services[name]
service_proto = core_pb2.Service(group=service.group, name=service.name)
service_proto = Service(group=service.group, name=service.name)
services.append(service_proto)
return core_pb2.GetServicesResponse(services=services)
return GetServicesResponse(services=services)
def GetServiceDefaults(
self, request: core_pb2.GetServiceDefaultsRequest, context: ServicerContext
) -> core_pb2.GetServiceDefaultsResponse:
self, request: GetServiceDefaultsRequest, context: ServicerContext
) -> GetServiceDefaultsResponse:
"""
Retrieve all the default services of all node types in a session
@ -1042,15 +1099,13 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
all_service_defaults = []
for node_type in session.services.default_services:
services = session.services.default_services[node_type]
service_defaults = core_pb2.ServiceDefaults(
node_type=node_type, services=services
)
service_defaults = ServiceDefaults(node_type=node_type, services=services)
all_service_defaults.append(service_defaults)
return core_pb2.GetServiceDefaultsResponse(defaults=all_service_defaults)
return GetServiceDefaultsResponse(defaults=all_service_defaults)
def SetServiceDefaults(
self, request: core_pb2.SetServiceDefaultsRequest, context: ServicerContext
) -> core_pb2.SetServiceDefaultsResponse:
self, request: SetServiceDefaultsRequest, context: ServicerContext
) -> SetServiceDefaultsResponse:
"""
Set new default services to the session after whipping out the old ones
:param request: set-service-defaults
@ -1065,11 +1120,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
session.services.default_services[
service_defaults.node_type
] = service_defaults.services
return core_pb2.SetServiceDefaultsResponse(result=True)
return SetServiceDefaultsResponse(result=True)
def GetNodeServiceConfigs(
self, request: core_pb2.GetNodeServiceConfigsRequest, context: ServicerContext
) -> core_pb2.GetNodeServiceConfigsResponse:
self, request: GetNodeServiceConfigsRequest, context: ServicerContext
) -> GetNodeServiceConfigsResponse:
"""
Retrieve all node service configurations.
@ -1085,18 +1140,18 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
for name in service_configs:
service = session.services.get_service(node_id, name)
service_proto = grpcutils.get_service_configuration(service)
config = core_pb2.GetNodeServiceConfigsResponse.ServiceConfig(
config = GetNodeServiceConfigsResponse.ServiceConfig(
node_id=node_id,
service=name,
data=service_proto,
files=service.config_data,
)
configs.append(config)
return core_pb2.GetNodeServiceConfigsResponse(configs=configs)
return GetNodeServiceConfigsResponse(configs=configs)
def GetNodeService(
self, request: core_pb2.GetNodeServiceRequest, context: ServicerContext
) -> core_pb2.GetNodeServiceResponse:
self, request: GetNodeServiceRequest, context: ServicerContext
) -> GetNodeServiceResponse:
"""
Retrieve a requested service from a node
@ -1111,11 +1166,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
request.node_id, request.service, default_service=True
)
service_proto = grpcutils.get_service_configuration(service)
return core_pb2.GetNodeServiceResponse(service=service_proto)
return GetNodeServiceResponse(service=service_proto)
def GetNodeServiceFile(
self, request: core_pb2.GetNodeServiceFileRequest, context: ServicerContext
) -> core_pb2.GetNodeServiceFileResponse:
self, request: GetNodeServiceFileRequest, context: ServicerContext
) -> GetNodeServiceFileResponse:
"""
Retrieve a requested service file from a node
@ -1130,11 +1185,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
file_data = session.services.get_service_file(
node, request.service, request.file
)
return core_pb2.GetNodeServiceFileResponse(data=file_data.data)
return GetNodeServiceFileResponse(data=file_data.data)
def SetNodeService(
self, request: core_pb2.SetNodeServiceRequest, context: ServicerContext
) -> core_pb2.SetNodeServiceResponse:
self, request: SetNodeServiceRequest, context: ServicerContext
) -> SetNodeServiceResponse:
"""
Set a node service for a node
@ -1147,11 +1202,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
session = self.get_session(request.session_id, context)
config = request.config
grpcutils.service_configuration(session, config)
return core_pb2.SetNodeServiceResponse(result=True)
return SetNodeServiceResponse(result=True)
def SetNodeServiceFile(
self, request: core_pb2.SetNodeServiceFileRequest, context: ServicerContext
) -> core_pb2.SetNodeServiceFileResponse:
self, request: SetNodeServiceFileRequest, context: ServicerContext
) -> SetNodeServiceFileResponse:
"""
Store the customized service file in the service config
@ -1166,11 +1221,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
session.services.set_service_file(
config.node_id, config.service, config.file, config.data
)
return core_pb2.SetNodeServiceFileResponse(result=True)
return SetNodeServiceFileResponse(result=True)
def ServiceAction(
self, request: core_pb2.ServiceActionRequest, context: ServicerContext
) -> core_pb2.ServiceActionResponse:
self, request: ServiceActionRequest, context: ServicerContext
) -> ServiceActionResponse:
"""
Take action whether to start, stop, restart, validate the service or none of
the above.
@ -1192,26 +1247,26 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
context.abort(grpc.StatusCode.NOT_FOUND, "service not found")
status = -1
if request.action == core_pb2.ServiceAction.START:
if request.action == ServiceAction.START:
status = session.services.startup_service(node, service, wait=True)
elif request.action == core_pb2.ServiceAction.STOP:
elif request.action == ServiceAction.STOP:
status = session.services.stop_service(node, service)
elif request.action == core_pb2.ServiceAction.RESTART:
elif request.action == ServiceAction.RESTART:
status = session.services.stop_service(node, service)
if not status:
status = session.services.startup_service(node, service, wait=True)
elif request.action == core_pb2.ServiceAction.VALIDATE:
elif request.action == ServiceAction.VALIDATE:
status = session.services.validate_service(node, service)
result = False
if not status:
result = True
return core_pb2.ServiceActionResponse(result=result)
return ServiceActionResponse(result=result)
def GetWlanConfigs(
self, request: core_pb2.GetWlanConfigsRequest, context: ServicerContext
) -> core_pb2.GetWlanConfigsResponse:
self, request: GetWlanConfigsRequest, context: ServicerContext
) -> GetWlanConfigsResponse:
"""
Retrieve all wireless-lan configurations.
@ -1221,7 +1276,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
"""
logging.debug("get wlan configs: %s", request)
session = self.get_session(request.session_id, context)
response = core_pb2.GetWlanConfigsResponse()
response = GetWlanConfigsResponse()
for node_id in session.mobility.node_configurations:
model_config = session.mobility.node_configurations[node_id]
if node_id == -1:
@ -1231,13 +1286,13 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
continue
current_config = session.mobility.get_model_config(node_id, model_name)
config = get_config_options(current_config, BasicRangeModel)
mapped_config = core_pb2.MappedConfig(config=config)
mapped_config = MappedConfig(config=config)
response.configs[node_id].CopyFrom(mapped_config)
return response
def GetWlanConfig(
self, request: core_pb2.GetWlanConfigRequest, context: ServicerContext
) -> core_pb2.GetWlanConfigResponse:
self, request: GetWlanConfigRequest, context: ServicerContext
) -> GetWlanConfigResponse:
"""
Retrieve wireless-lan configuration of a node
@ -1251,11 +1306,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
request.node_id, BasicRangeModel.name
)
config = get_config_options(current_config, BasicRangeModel)
return core_pb2.GetWlanConfigResponse(config=config)
return GetWlanConfigResponse(config=config)
def SetWlanConfig(
self, request: core_pb2.SetWlanConfigRequest, context: ServicerContext
) -> core_pb2.SetWlanConfigResponse:
self, request: SetWlanConfigRequest, context: ServicerContext
) -> SetWlanConfigResponse:
"""
Set configuration data for a model
@ -1272,11 +1327,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
if session.state == EventTypes.RUNTIME_STATE:
node = self.get_node(session, wlan_config.node_id, context)
node.updatemodel(wlan_config.config)
return core_pb2.SetWlanConfigResponse(result=True)
return SetWlanConfigResponse(result=True)
def GetEmaneConfig(
self, request: core_pb2.GetEmaneConfigRequest, context: ServicerContext
) -> core_pb2.GetEmaneConfigResponse:
self, request: GetEmaneConfigRequest, context: ServicerContext
) -> GetEmaneConfigResponse:
"""
Retrieve EMANE configuration of a session
@ -1288,11 +1343,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
session = self.get_session(request.session_id, context)
current_config = session.emane.get_configs()
config = get_config_options(current_config, session.emane.emane_config)
return core_pb2.GetEmaneConfigResponse(config=config)
return GetEmaneConfigResponse(config=config)
def SetEmaneConfig(
self, request: core_pb2.SetEmaneConfigRequest, context: ServicerContext
) -> core_pb2.SetEmaneConfigResponse:
self, request: SetEmaneConfigRequest, context: ServicerContext
) -> SetEmaneConfigResponse:
"""
Set EMANE configuration of a session
@ -1304,11 +1359,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
session = self.get_session(request.session_id, context)
config = session.emane.get_configs()
config.update(request.config)
return core_pb2.SetEmaneConfigResponse(result=True)
return SetEmaneConfigResponse(result=True)
def GetEmaneModels(
self, request: core_pb2.GetEmaneModelsRequest, context: ServicerContext
) -> core_pb2.GetEmaneModelsResponse:
self, request: GetEmaneModelsRequest, context: ServicerContext
) -> GetEmaneModelsResponse:
"""
Retrieve all the EMANE models in the session
@ -1323,11 +1378,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
if len(model.split("_")) != 2:
continue
models.append(model)
return core_pb2.GetEmaneModelsResponse(models=models)
return GetEmaneModelsResponse(models=models)
def GetEmaneModelConfig(
self, request: core_pb2.GetEmaneModelConfigRequest, context: ServicerContext
) -> core_pb2.GetEmaneModelConfigResponse:
self, request: GetEmaneModelConfigRequest, context: ServicerContext
) -> GetEmaneModelConfigResponse:
"""
Retrieve EMANE model configuration of a node
@ -1342,11 +1397,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
_id = get_emane_model_id(request.node_id, request.interface)
current_config = session.emane.get_model_config(_id, request.model)
config = get_config_options(current_config, model)
return core_pb2.GetEmaneModelConfigResponse(config=config)
return GetEmaneModelConfigResponse(config=config)
def SetEmaneModelConfig(
self, request: core_pb2.SetEmaneModelConfigRequest, context: ServicerContext
) -> core_pb2.SetEmaneModelConfigResponse:
self, request: SetEmaneModelConfigRequest, context: ServicerContext
) -> SetEmaneModelConfigResponse:
"""
Set EMANE model configuration of a node
@ -1360,11 +1415,11 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
model_config = request.emane_model_config
_id = get_emane_model_id(model_config.node_id, model_config.interface_id)
session.emane.set_model_config(_id, model_config.model, model_config.config)
return core_pb2.SetEmaneModelConfigResponse(result=True)
return SetEmaneModelConfigResponse(result=True)
def GetEmaneModelConfigs(
self, request: core_pb2.GetEmaneModelConfigsRequest, context: ServicerContext
) -> core_pb2.GetEmaneModelConfigsResponse:
self, request: GetEmaneModelConfigsRequest, context: ServicerContext
) -> GetEmaneModelConfigsResponse:
"""
Retrieve all EMANE model configurations of a session
@ -1388,14 +1443,14 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
current_config = session.emane.get_model_config(_id, model_name)
config = get_config_options(current_config, model)
node_id, interface = grpcutils.parse_emane_model_id(_id)
model_config = core_pb2.GetEmaneModelConfigsResponse.ModelConfig(
model_config = GetEmaneModelConfigsResponse.ModelConfig(
node_id=node_id,
model=model_name,
interface=interface,
config=config,
)
configs.append(model_config)
return core_pb2.GetEmaneModelConfigsResponse(configs=configs)
return GetEmaneModelConfigsResponse(configs=configs)
def SaveXml(
self, request: core_pb2.SaveXmlRequest, context: ServicerContext
@ -1469,8 +1524,8 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
return core_pb2.GetInterfacesResponse(interfaces=interfaces)
def EmaneLink(
self, request: core_pb2.EmaneLinkRequest, context: ServicerContext
) -> core_pb2.EmaneLinkResponse:
self, request: EmaneLinkRequest, context: ServicerContext
) -> EmaneLinkResponse:
"""
Helps broadcast wireless link/unlink between EMANE nodes.
@ -1505,9 +1560,9 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
network_id=emane_one.id,
)
session.broadcast_link(link)
return core_pb2.EmaneLinkResponse(result=True)
return EmaneLinkResponse(result=True)
else:
return core_pb2.EmaneLinkResponse(result=False)
return EmaneLinkResponse(result=False)
def GetConfigServices(
self, request: GetConfigServicesRequest, context: ServicerContext