Loading src/slice/service/slice_grouper/Tools.py +35 −11 Original line number Diff line number Diff line Loading @@ -115,11 +115,25 @@ def add_slice_to_group(slice_obj : Slice, selected_group : Tuple[str, float, flo if slice_group_obj is None: raise NotFoundException('Slice', group_name, extra_details='while adding to group') for subslice_id in slice_group_obj.slice_subslice_ids: if subslice_id == slice_obj.slice_id: break # already added else: del slice_group_obj.slice_endpoint_ids[:] for endpoint_id in slice_obj.slice_endpoint_ids: slice_group_obj.slice_endpoint_ids.add().CopyFrom(endpoint_id) del slice_group_obj.slice_constraints[:] del slice_group_obj.slice_service_ids[:] del slice_group_obj.slice_subslice_ids[:] slice_group_obj.slice_subslice_ids.add().CopyFrom(slice_obj.slice_id) # TODO: add other logic, such as re-configure parent slice del slice_group_obj.slice_config.config_rules[:] for config_rule in slice_obj.slice_config.config_rules: group_config_rule = slice_group_obj.slice_config.config_rules.add() group_config_rule.CopyFrom(config_rule) if config_rule.WhichOneof('config_rule') != 'custom': continue TEMPLATE = '/subslice[{:s}]{:s}' slice_resource_key = config_rule.custom.resource_key group_resource_key = TEMPLATE.format(slice_uuid, slice_resource_key) group_config_rule.custom.resource_key = group_resource_key context_client.SetSlice(slice_group_obj) Loading @@ -139,13 +153,23 @@ def remove_slice_from_group(slice_obj : Slice, selected_group : Tuple[str, float raise NotFoundException('Slice', group_name, extra_details='while removing from group') if slice_obj.slice_id in slice_group_obj.slice_subslice_ids: slice_group_obj.slice_subslice_ids.remove(slice_obj.slice_id) # TODO: other logic, such as deconfigure parent slice tmp_slice_group_obj = Slice() tmp_slice_group_obj.slice_id.CopyFrom(slice_group_obj.slice_id) # pylint: disable=no-member slice_subslice_id = tmp_slice_group_obj.slice_subslice_ids.add() # pylint: disable=no-member slice_subslice_id.CopyFrom(slice_obj.slice_id) tmp_slice_group_obj.slice_subslice_ids.add().CopyFrom(slice_obj.slice_id) # pylint: disable=no-member for endpoint_id in slice_obj.slice_endpoint_ids: tmp_slice_group_obj.slice_endpoint_ids.add().CopyFrom(endpoint_id) # pylint: disable=no-member for config_rule in slice_obj.slice_config.config_rules: group_config_rule = tmp_slice_group_obj.slice_config.config_rules.add() # pylint: disable=no-member group_config_rule.CopyFrom(config_rule) if group_config_rule.WhichOneof('config_rule') != 'custom': continue TEMPLATE = '/subslice[{:s}]{:s}' slice_resource_key = group_config_rule.custom.resource_key group_resource_key = TEMPLATE.format(slice_uuid, slice_resource_key) group_config_rule.custom.resource_key = group_resource_key context_client.UnsetSlice(tmp_slice_group_obj) metrics_exporter = MetricsExporter() Loading Loading
src/slice/service/slice_grouper/Tools.py +35 −11 Original line number Diff line number Diff line Loading @@ -115,11 +115,25 @@ def add_slice_to_group(slice_obj : Slice, selected_group : Tuple[str, float, flo if slice_group_obj is None: raise NotFoundException('Slice', group_name, extra_details='while adding to group') for subslice_id in slice_group_obj.slice_subslice_ids: if subslice_id == slice_obj.slice_id: break # already added else: del slice_group_obj.slice_endpoint_ids[:] for endpoint_id in slice_obj.slice_endpoint_ids: slice_group_obj.slice_endpoint_ids.add().CopyFrom(endpoint_id) del slice_group_obj.slice_constraints[:] del slice_group_obj.slice_service_ids[:] del slice_group_obj.slice_subslice_ids[:] slice_group_obj.slice_subslice_ids.add().CopyFrom(slice_obj.slice_id) # TODO: add other logic, such as re-configure parent slice del slice_group_obj.slice_config.config_rules[:] for config_rule in slice_obj.slice_config.config_rules: group_config_rule = slice_group_obj.slice_config.config_rules.add() group_config_rule.CopyFrom(config_rule) if config_rule.WhichOneof('config_rule') != 'custom': continue TEMPLATE = '/subslice[{:s}]{:s}' slice_resource_key = config_rule.custom.resource_key group_resource_key = TEMPLATE.format(slice_uuid, slice_resource_key) group_config_rule.custom.resource_key = group_resource_key context_client.SetSlice(slice_group_obj) Loading @@ -139,13 +153,23 @@ def remove_slice_from_group(slice_obj : Slice, selected_group : Tuple[str, float raise NotFoundException('Slice', group_name, extra_details='while removing from group') if slice_obj.slice_id in slice_group_obj.slice_subslice_ids: slice_group_obj.slice_subslice_ids.remove(slice_obj.slice_id) # TODO: other logic, such as deconfigure parent slice tmp_slice_group_obj = Slice() tmp_slice_group_obj.slice_id.CopyFrom(slice_group_obj.slice_id) # pylint: disable=no-member slice_subslice_id = tmp_slice_group_obj.slice_subslice_ids.add() # pylint: disable=no-member slice_subslice_id.CopyFrom(slice_obj.slice_id) tmp_slice_group_obj.slice_subslice_ids.add().CopyFrom(slice_obj.slice_id) # pylint: disable=no-member for endpoint_id in slice_obj.slice_endpoint_ids: tmp_slice_group_obj.slice_endpoint_ids.add().CopyFrom(endpoint_id) # pylint: disable=no-member for config_rule in slice_obj.slice_config.config_rules: group_config_rule = tmp_slice_group_obj.slice_config.config_rules.add() # pylint: disable=no-member group_config_rule.CopyFrom(config_rule) if group_config_rule.WhichOneof('config_rule') != 'custom': continue TEMPLATE = '/subslice[{:s}]{:s}' slice_resource_key = group_config_rule.custom.resource_key group_resource_key = TEMPLATE.format(slice_uuid, slice_resource_key) group_config_rule.custom.resource_key = group_resource_key context_client.UnsetSlice(tmp_slice_group_obj) metrics_exporter = MetricsExporter() Loading