fixed issue in grpc get emane model configs that would allow key collision

This commit is contained in:
Blake Harnden 2019-12-13 14:18:13 -08:00
parent 9ada94107e
commit 9d988a4b13
3 changed files with 16 additions and 12 deletions

View file

@ -228,13 +228,12 @@ class CoreClient:
# get emane model config
response = self.client.get_emane_model_configs(self.session_id)
for node_id in response.configs:
config = response.configs[node_id]
for config in response.configs:
interface = None
if config.interface != -1:
interface = config.interface
self.set_emane_model_config(
node_id, config.model, config.config, interface
config.node_id, config.model, config.config, interface
)
# get wlan configurations

View file

@ -1394,22 +1394,26 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
"""
logging.debug("get emane model configs: %s", request)
session = self.get_session(request.session_id, context)
response = core_pb2.GetEmaneModelConfigsResponse()
configs = []
for _id in session.emane.node_configurations:
if _id == -1:
continue
model_config = session.emane.node_configurations[_id]
for model_name in model_config:
model_configs = session.emane.node_configurations[_id]
for model_name in model_configs:
model = session.emane.models[model_name]
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=model_name, config=config, interface=interface
node_id=node_id,
model=model_name,
interface=interface,
config=config,
)
response.configs[node_id].CopyFrom(model_config)
return response
configs.append(model_config)
return core_pb2.GetEmaneModelConfigsResponse(configs=configs)
def SaveXml(self, request, context):
"""

View file

@ -664,11 +664,12 @@ message GetEmaneModelConfigsRequest {
message GetEmaneModelConfigsResponse {
message ModelConfig {
string model = 1;
map<string, ConfigOption> config = 2;
int32 node_id = 1;
string model = 2;
int32 interface = 3;
map<string, ConfigOption> config = 4;
}
map<int32, ModelConfig> configs = 1;
repeated ModelConfig configs = 1;
}
message SaveXmlRequest {