diff --git a/src/load_generator/service/LoadGeneratorServiceServicerImpl.py b/src/load_generator/service/LoadGeneratorServiceServicerImpl.py index d358c398f9de8b6c83a9be3b96b3b208b62e924e..6f47ff6ed1504f5321ace19c99bb02017d24835e 100644 --- a/src/load_generator/service/LoadGeneratorServiceServicerImpl.py +++ b/src/load_generator/service/LoadGeneratorServiceServicerImpl.py @@ -21,7 +21,7 @@ from common.proto.load_generator_pb2_grpc import LoadGeneratorServiceServicer from load_generator.load_gen.Parameters import Parameters as LoadGen_Parameters from load_generator.load_gen.RequestGenerator import RequestGenerator from load_generator.load_gen.RequestScheduler import RequestScheduler -from load_generator.tools.ListScalarRange import grpc__to__list_scalar_range, list_scalar_range__to__grpc +from load_generator.tools.ListScalarRange import list_scalar_range__grpc_to_list, list_scalar_range__list_to_grpc from .Constants import REQUEST_TYPE_MAP, REQUEST_TYPE_REVERSE_MAP LOGGER = logging.getLogger(__name__) @@ -40,9 +40,9 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer): offered_load = request.offered_load if request.offered_load > 1.e-12 else None, holding_time = request.holding_time if request.holding_time > 1.e-12 else None, inter_arrival_time = request.inter_arrival_time if request.inter_arrival_time > 1.e-12 else None, - availability_ranges = grpc__to__list_scalar_range(request.availability ), - capacity_gbps_ranges = grpc__to__list_scalar_range(request.capacity_gbps ), - e2e_latency_ms_ranges = grpc__to__list_scalar_range(request.e2e_latency_ms), + availability_ranges = list_scalar_range__grpc_to_list(request.availability ), + capacity_gbps_ranges = list_scalar_range__grpc_to_list(request.capacity_gbps ), + e2e_latency_ms_ranges = list_scalar_range__grpc_to_list(request.e2e_latency_ms), do_teardown = request.do_teardown, # if set, schedule tear down of requests dry_mode = request.dry_mode, # in dry mode, no request is sent to TeraFlowSDN record_to_dlt = request.record_to_dlt, # if set, upload changes to DLT @@ -74,19 +74,21 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer): status.num_generated = self._scheduler.num_generated status.infinite_loop = self._scheduler.infinite_loop status.running = self._scheduler.running - status.parameters.num_requests = params.num_requests # pylint: disable=no-member - status.parameters.offered_load = params.offered_load # pylint: disable=no-member - status.parameters.holding_time = params.holding_time # pylint: disable=no-member - status.parameters.inter_arrival_time = params.inter_arrival_time # pylint: disable=no-member - status.parameters.do_teardown = params.do_teardown # pylint: disable=no-member - status.parameters.dry_mode = params.dry_mode # pylint: disable=no-member - status.parameters.record_to_dlt = params.record_to_dlt # pylint: disable=no-member - status.parameters.dlt_domain_id = params.dlt_domain_id # pylint: disable=no-member - status.parameters.request_types.extend(request_types) # pylint: disable=no-member - list_scalar_range__to__grpc(params.availability_ranges, status.availability ) # pylint: disable=no-member - list_scalar_range__to__grpc(params.capacity_gbps_ranges, status.capacity_gbps ) # pylint: disable=no-member - list_scalar_range__to__grpc(params.e2e_latency_ms_ranges, status.e2e_latency_ms) # pylint: disable=no-member + stat_pars = status.parameters # pylint: disable=no-member + stat_pars.num_requests = params.num_requests # pylint: disable=no-member + stat_pars.offered_load = params.offered_load # pylint: disable=no-member + stat_pars.holding_time = params.holding_time # pylint: disable=no-member + stat_pars.inter_arrival_time = params.inter_arrival_time # pylint: disable=no-member + stat_pars.do_teardown = params.do_teardown # pylint: disable=no-member + stat_pars.dry_mode = params.dry_mode # pylint: disable=no-member + stat_pars.record_to_dlt = params.record_to_dlt # pylint: disable=no-member + stat_pars.dlt_domain_id = params.dlt_domain_id # pylint: disable=no-member + stat_pars.request_types.extend(request_types) # pylint: disable=no-member + + list_scalar_range__list_to_grpc(params.availability_ranges, stat_pars.availability ) # pylint: disable=no-member + list_scalar_range__list_to_grpc(params.capacity_gbps_ranges, stat_pars.capacity_gbps ) # pylint: disable=no-member + list_scalar_range__list_to_grpc(params.e2e_latency_ms_ranges, stat_pars.e2e_latency_ms) # pylint: disable=no-member return status diff --git a/src/load_generator/tools/ListScalarRange.py b/src/load_generator/tools/ListScalarRange.py index c6648404767f5a810f1d53d99eaa970fefe9e46b..9a5a5f39940049adee6dfbe35befd815db9256fe 100644 --- a/src/load_generator/tools/ListScalarRange.py +++ b/src/load_generator/tools/ListScalarRange.py @@ -30,7 +30,7 @@ def parse_list_scalar_range(value : str) -> Type_ListScalarRange: ranges = [[float(value) for value in item.split('..')] for item in str_value.split(',')] return ranges -def list_scalar_range__to__grpc(list_scalar_range : Type_ListScalarRange, obj : List[ScalarOrRange]) -> None: +def list_scalar_range__list_to_grpc(list_scalar_range : Type_ListScalarRange, obj : List[ScalarOrRange]) -> None: for i,scalar_or_range in enumerate(list_scalar_range): if isinstance(scalar_or_range, (float, str)): _scalar = obj.add() @@ -50,7 +50,19 @@ def list_scalar_range__to__grpc(list_scalar_range : Type_ListScalarRange, obj : MSG = 'Type({:s}) in item(#{:d}, {:s})' raise NotImplementedError(MSG.format(str(type(scalar_or_range), i, str(scalar_or_range)))) -def grpc__to__list_scalar_range(obj : List[ScalarOrRange]) -> Type_ListScalarRange: +def list_scalar_range__grpc_to_str(obj : List[ScalarOrRange]) -> str: + str_items = list() + for item in obj: + item_kind = item.WhichOneof('value') + if item_kind == 'scalar': + str_items.append(str(item.scalar)) + elif item_kind == 'range': + str_items.append('{:s}..{:s}'.format(str(item.range.minimum), str(item.range.maximum))) + else: + raise NotImplementedError('Unsupported ScalarOrRange kind({:s})'.format(str(item_kind))) + return ','.join(str_items) + +def list_scalar_range__grpc_to_list(obj : List[ScalarOrRange]) -> Type_ListScalarRange: list_scalar_range = list() for item in obj: item_kind = item.WhichOneof('value')