Skip to content
Snippets Groups Projects
Commit f8d94aec authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Load Generator component:

- Improved list_scalar_range helper method names
parent 4b5eff48
No related branches found
No related tags found
2 merge requests!142Release TeraFlowSDN 2.1,!92New features in Load Generator
...@@ -21,7 +21,7 @@ from common.proto.load_generator_pb2_grpc import LoadGeneratorServiceServicer ...@@ -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.Parameters import Parameters as LoadGen_Parameters
from load_generator.load_gen.RequestGenerator import RequestGenerator from load_generator.load_gen.RequestGenerator import RequestGenerator
from load_generator.load_gen.RequestScheduler import RequestScheduler 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 from .Constants import REQUEST_TYPE_MAP, REQUEST_TYPE_REVERSE_MAP
LOGGER = logging.getLogger(__name__) LOGGER = logging.getLogger(__name__)
...@@ -40,9 +40,9 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer): ...@@ -40,9 +40,9 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer):
offered_load = request.offered_load if request.offered_load > 1.e-12 else None, 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, 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, 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 ), availability_ranges = list_scalar_range__grpc_to_list(request.availability ),
capacity_gbps_ranges = grpc__to__list_scalar_range(request.capacity_gbps ), capacity_gbps_ranges = list_scalar_range__grpc_to_list(request.capacity_gbps ),
e2e_latency_ms_ranges = grpc__to__list_scalar_range(request.e2e_latency_ms), 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 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 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 record_to_dlt = request.record_to_dlt, # if set, upload changes to DLT
...@@ -74,19 +74,21 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer): ...@@ -74,19 +74,21 @@ class LoadGeneratorServiceServicerImpl(LoadGeneratorServiceServicer):
status.num_generated = self._scheduler.num_generated status.num_generated = self._scheduler.num_generated
status.infinite_loop = self._scheduler.infinite_loop status.infinite_loop = self._scheduler.infinite_loop
status.running = self._scheduler.running 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 stat_pars = status.parameters # pylint: disable=no-member
list_scalar_range__to__grpc(params.capacity_gbps_ranges, status.capacity_gbps ) # pylint: disable=no-member stat_pars.num_requests = params.num_requests # pylint: disable=no-member
list_scalar_range__to__grpc(params.e2e_latency_ms_ranges, status.e2e_latency_ms) # 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 return status
......
...@@ -30,7 +30,7 @@ def parse_list_scalar_range(value : str) -> Type_ListScalarRange: ...@@ -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(',')] ranges = [[float(value) for value in item.split('..')] for item in str_value.split(',')]
return ranges 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): for i,scalar_or_range in enumerate(list_scalar_range):
if isinstance(scalar_or_range, (float, str)): if isinstance(scalar_or_range, (float, str)):
_scalar = obj.add() _scalar = obj.add()
...@@ -50,7 +50,19 @@ def list_scalar_range__to__grpc(list_scalar_range : Type_ListScalarRange, obj : ...@@ -50,7 +50,19 @@ def list_scalar_range__to__grpc(list_scalar_range : Type_ListScalarRange, obj :
MSG = 'Type({:s}) in item(#{:d}, {:s})' MSG = 'Type({:s}) in item(#{:d}, {:s})'
raise NotImplementedError(MSG.format(str(type(scalar_or_range), i, str(scalar_or_range)))) 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() list_scalar_range = list()
for item in obj: for item in obj:
item_kind = item.WhichOneof('value') item_kind = item.WhichOneof('value')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment