From 80586f7c644644d171ce55d710e1867bc649e443 Mon Sep 17 00:00:00 2001 From: kpoulakakis Date: Mon, 11 Aug 2025 17:09:46 +0300 Subject: [PATCH 1/8] Remove booleanOperator and conditionList variable from the policy AddService endpoint. Fix necessary test for those changes. --- proto/policy.proto | 6 +- .../service/zsm_handlers/P4INTZSMPlugin.py | 99 +++ src/context/service/database/PolicyRule.py | 2 - .../java/org/etsi/tfs/policy/Serializer.java | 24 +- .../policy/policy/AddPolicyDeviceImpl.java | 13 - .../policy/policy/AddPolicyServiceImpl.java | 12 +- .../tfs/policy/policy/CommonAlarmService.java | 60 -- .../policy/CommonPolicyServiceImpl.java | 153 +--- .../tfs/policy/policy/PolicyServiceImpl.java | 4 + .../policy/policy/model/PolicyRuleBasic.java | 56 +- .../etsi/tfs/policy/PolicyAddDeviceTest.java | 9 +- .../etsi/tfs/policy/PolicyAddServiceTest.java | 7 +- .../tfs/policy/PolicyDeleteServiceTest.java | 6 +- .../tfs/policy/PolicyGrpcServiceTest.java | 3 - .../policy/PolicyRuleBasicValidationTest.java | 113 +-- .../PolicyRuleDeviceValidationTest.java | 22 +- .../PolicyRuleServiceValidationTest.java | 30 +- .../tfs/policy/PolicyUpdateDeviceTest.java | 9 +- .../tfs/policy/PolicyUpdateServiceTest.java | 4 +- .../org/etsi/tfs/policy/SerializerTest.java | 40 +- .../grpc/context/ContextOuterClass.java | 13 +- .../generated-sources/grpc/policy/Policy.java | 761 +++++------------- src/policy/target/kubernetes/kubernetes.yml | 40 +- 23 files changed, 427 insertions(+), 1059 deletions(-) create mode 100644 src/automation/service/zsm_handlers/P4INTZSMPlugin.py diff --git a/proto/policy.proto b/proto/policy.proto index 575bc5764..51ea63b7f 100644 --- a/proto/policy.proto +++ b/proto/policy.proto @@ -18,6 +18,7 @@ package policy; import "context.proto"; import "policy_condition.proto"; import "policy_action.proto"; +import "monitoring.proto"; // to be migrated to: "kpi_manager.proto" service PolicyService { rpc PolicyAddService (PolicyRuleService) returns (PolicyRuleState) {} @@ -58,11 +59,10 @@ message PolicyRuleBasic { PolicyRuleId policyRuleId = 1; PolicyRuleState policyRuleState = 2; //policy.proto:58:12: Explicit 'optional' labels are disallowed in the Proto3 syntax. To define 'optional' fields in Proto3, simply remove the 'optional' label, as fields are 'optional' by default. uint32 priority = 3; + monitoring.KpiId kpiId = 4; // to be migrated to: "kpi_manager.KpiId" // Event-Condition-Action (ECA) model - repeated PolicyRuleCondition conditionList = 4; // When these policy conditions are met, an event is automatically thrown - BooleanOperator booleanOperator = 5; // Evaluation operator to be used - repeated PolicyRuleAction actionList = 6; // One or more actions should be applied + repeated PolicyRuleAction actionList = 5; // One or more actions should be applied } // Service-oriented policy rule diff --git a/src/automation/service/zsm_handlers/P4INTZSMPlugin.py b/src/automation/service/zsm_handlers/P4INTZSMPlugin.py new file mode 100644 index 000000000..a16979530 --- /dev/null +++ b/src/automation/service/zsm_handlers/P4INTZSMPlugin.py @@ -0,0 +1,99 @@ +# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import grpc , logging +from common.proto.analytics_frontend_pb2 import AnalyzerId +from common.proto.policy_pb2 import PolicyRuleState +from common.proto.automation_pb2 import ZSMCreateRequest, ZSMService + +from analytics.frontend.client.AnalyticsFrontendClient import AnalyticsFrontendClient +from automation.client.PolicyClient import PolicyClient +from context.client.ContextClient import ContextClient +from automation.service.zsm_handler_api._ZSMHandler import _ZSMHandler +from common.proto.policy_condition_pb2 import PolicyRuleCondition + +LOGGER = logging.getLogger(__name__) + +class P4INTZSMPlugin(_ZSMHandler): + def __init__(self): + LOGGER.info('Init P4INTZSMPlugin') + + def zsmCreate(self,request : ZSMCreateRequest, context : grpc.ServicerContext): + # check that service does not exist + context_client = ContextClient() + policy_client = PolicyClient() + analytics_frontend_client = AnalyticsFrontendClient() + + # Verify the input target service ID + try: + target_service_id = context_client.GetService(request.target_service_id) + except grpc.RpcError as ex: + if ex.code() != grpc.StatusCode.NOT_FOUND: raise # pylint: disable=no-member + LOGGER.exception('Unable to get target service({:s})'.format(str(target_service_id))) + context_client.close() + return None + + # Verify the input telemetry service ID + try: + telemetry_service_id = context_client.GetService(request.telemetry_service_id) + except grpc.RpcError as ex: + if ex.code() != grpc.StatusCode.NOT_FOUND: raise # pylint: disable=no-member + LOGGER.exception('Unable to get telemetry service({:s})'.format(str(telemetry_service_id))) + context_client.close() + return None + + # Start an analyzer + try: + analyzer_id_lat: AnalyzerId = analytics_frontend_client.StartAnalyzer(request.analyzer) # type: ignore + LOGGER.info('analyzer_id_lat({:s})'.format(str(analyzer_id_lat))) + except grpc.RpcError as ex: + if ex.code() != grpc.StatusCode.NOT_FOUND: raise # pylint: disable=no-member + LOGGER.exception('Unable to start analyzer({:s})'.format(str(request.analyzer))) + context_client.close() + analytics_frontend_client.close() + return None + + # Create a policy + try: + LOGGER.info('policy({:s})'.format(str(request.policy))) + # PolicyRuleCondition + policyRuleCondition = PolicyRuleCondition() + # policyRuleCondition.kpiId.kpi_id.uuid = request.analyzer.output_kpi_ids[0].kpi_id.uuid + # policyRuleCondition.numericalOperator = 5 + # policyRuleCondition.kpiValue.floatVal = 300 + # request.policy.policyRuleBasic.conditionList.append(policyRuleCondition) + LOGGER.info('policy after({:s})'.format(str(request.policy))) + + policy_rule_state: PolicyRuleState = policy_client.PolicyAddService(request.policy) # type: ignore + LOGGER.info('policy_rule_state({:s})'.format(str(policy_rule_state))) + except grpc.RpcError as ex: + if ex.code() != grpc.StatusCode.NOT_FOUND: raise # pylint: disable=no-member + LOGGER.exception('Unable to create policy({:s})'.format(str(request.policy))) + context_client.close() + policy_client.close() + return None + + context_client.close() + analytics_frontend_client.close() + policy_client.close() + return ZSMService() + + def zsmDelete(self): + LOGGER.info('zsmDelete method') + + def zsmGetById(self): + LOGGER.info('zsmGetById method') + + def zsmGetByService(self): + LOGGER.info('zsmGetByService method') diff --git a/src/context/service/database/PolicyRule.py b/src/context/service/database/PolicyRule.py index 197e94043..032672d1d 100644 --- a/src/context/service/database/PolicyRule.py +++ b/src/context/service/database/PolicyRule.py @@ -79,8 +79,6 @@ def policyrule_set(db_engine : Engine, messagebroker : MessageBroker, request : json_policyrule_basic = grpc_message_to_json(policyrule_basic) policyrule_eca_data = json.dumps({ - 'conditionList': json_policyrule_basic.get('conditionList', []), - 'booleanOperator': json_policyrule_basic['booleanOperator'], 'actionList': json_policyrule_basic.get('actionList', []), }, sort_keys=True) diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java b/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java index bf7055e14..dc2b83781 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java @@ -1960,23 +1960,18 @@ public class Serializer { final var policyRuleId = policyRuleBasic.getPolicyRuleId(); final var policyRuleState = policyRuleBasic.getPolicyRuleState(); final var priority = policyRuleBasic.getPriority(); - final var policyRuleConditions = policyRuleBasic.getPolicyRuleConditions(); - final var booleanOperator = policyRuleBasic.getBooleanOperator(); + final var kpiId = policyRuleBasic.getKpiId(); final var policyRuleActions = policyRuleBasic.getPolicyRuleActions(); final var serializedPolicyRuleId = serializePolicyRuleId(policyRuleId); final var serializedPolicyRuleState = serialize(policyRuleState); - final var serializedPolicyRuleConditions = - policyRuleConditions.stream().map(this::serialize).collect(Collectors.toList()); - final var serializedBooleanOperator = serialize(booleanOperator); final var serializedPolicyRuleActions = policyRuleActions.stream().map(this::serialize).collect(Collectors.toList()); builder.setPolicyRuleId(serializedPolicyRuleId); builder.setPolicyRuleState(serializedPolicyRuleState); builder.setPriority(priority); - builder.addAllConditionList(serializedPolicyRuleConditions); - builder.setBooleanOperator(serializedBooleanOperator); + builder.setKpiId(KpiId.newBuilder().setKpiId(Uuid.newBuilder().setUuid("kpiId").build())); builder.addAllActionList(serializedPolicyRuleActions); return builder.build(); @@ -1986,25 +1981,16 @@ public class Serializer { final var serializedPolicyRuleId = serializedPolicyRuleBasic.getPolicyRuleId(); final var serializedPolicyRuleState = serializedPolicyRuleBasic.getPolicyRuleState(); final var priority = serializedPolicyRuleBasic.getPriority(); - final var serializedPolicyRuleConditions = serializedPolicyRuleBasic.getConditionListList(); - final var serializedBooleanOperator = serializedPolicyRuleBasic.getBooleanOperator(); final var serializedPolicyRuleActions = serializedPolicyRuleBasic.getActionListList(); + final var serializedKpiId = serializedPolicyRuleBasic.getKpiId(); final var policyRuleId = deserialize(serializedPolicyRuleId); + final var kpiId = deserialize(serializedKpiId); final var policyRuleState = deserialize(serializedPolicyRuleState); - final var policyRuleConditions = - serializedPolicyRuleConditions.stream().map(this::deserialize).collect(Collectors.toList()); - final var booleanOperator = deserialize(serializedBooleanOperator); final var policyRuleActions = serializedPolicyRuleActions.stream().map(this::deserialize).collect(Collectors.toList()); - return new PolicyRuleBasic( - policyRuleId, - policyRuleState, - priority, - policyRuleConditions, - booleanOperator, - policyRuleActions); + return new PolicyRuleBasic(policyRuleId, kpiId, policyRuleState, priority, policyRuleActions); } public Policy.PolicyRuleService serialize(PolicyRuleService policyRuleService) { diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyDeviceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyDeviceImpl.java index bb1cc59c3..29113ca0f 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyDeviceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyDeviceImpl.java @@ -70,17 +70,6 @@ public class AddPolicyDeviceImpl { final var policyRuleTypeDevice = new PolicyRuleTypeDevice(policyRuleDevice); final var policyRule = new PolicyRule(policyRuleTypeDevice); - final var alarmDescriptorList = commonPolicyServiceImpl.createAlarmDescriptorList(policyRule); - if (alarmDescriptorList.isEmpty()) { - var policyRuleState = - new PolicyRuleState( - PolicyRuleStateEnum.POLICY_FAILED, - String.format( - "Invalid PolicyRuleConditions in PolicyRule with ID: %s", - policyRuleBasic.getPolicyRuleId())); - return Uni.createFrom().item(policyRuleState); - } - return contextService .setPolicyRule(policyRule) .onFailure() @@ -88,8 +77,6 @@ public class AddPolicyDeviceImpl { .onItem() .transform( policyId -> { - commonAlarmService.startMonitoringBasedOnAlarmDescriptors( - policyId, policyRuleDevice, alarmDescriptorList); return VALIDATED_POLICYRULE_STATE; }); } diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyServiceImpl.java index a95daa161..d82463bff 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyServiceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyServiceImpl.java @@ -30,6 +30,7 @@ import org.etsi.tfs.policy.policy.model.PolicyRuleService; import org.etsi.tfs.policy.policy.model.PolicyRuleState; import org.etsi.tfs.policy.policy.model.PolicyRuleStateEnum; import org.etsi.tfs.policy.policy.model.PolicyRuleTypeService; +import org.jboss.logging.Logger; @ApplicationScoped public class AddPolicyServiceImpl { @@ -37,6 +38,8 @@ public class AddPolicyServiceImpl { @Inject private CommonPolicyServiceImpl commonPolicyService; @Inject private ContextService contextService; + private static final Logger LOGGER = Logger.getLogger(AddPolicyServiceImpl.class); + public Uni constructPolicyStateBasedOnCriteria( Boolean isService, ServiceId serviceId, PolicyRuleService policyRuleService) { @@ -47,14 +50,17 @@ public class AddPolicyServiceImpl { return Uni.createFrom().item(policyRuleState); } - + LOGGER.error("!isService"); final var policyRuleTypeService = new PolicyRuleTypeService(policyRuleService); final var policyRule = new PolicyRule(policyRuleTypeService); - final String kpiId = - policyRuleService.getPolicyRuleBasic().getPolicyRuleConditions().get(0).getKpiId(); + LOGGER.error("policyRule "); + + final String kpiId = policyRuleService.getPolicyRuleBasic().getKpiId(); commonPolicyService.getKpiPolicyRuleServiceMap().put(kpiId, policyRuleService); + LOGGER.error("kpiId " + kpiId); + return setPolicyRuleOnContextAndReturnState(policyRule); } diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonAlarmService.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonAlarmService.java index 2ce0ee2fd..c46704368 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonAlarmService.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonAlarmService.java @@ -16,9 +16,6 @@ package org.etsi.tfs.policy.policy; -import static org.etsi.tfs.policy.common.ApplicationProperties.PROVISIONED_POLICYRULE_STATE; -import static org.etsi.tfs.policy.common.ApplicationProperties.VALIDATED_POLICYRULE_STATE; - import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.subscription.Cancellable; @@ -41,63 +38,6 @@ public class CommonAlarmService { @Inject private CommonPolicyServiceImpl commonPolicyServiceImpl; @Inject private MonitoringService monitoringService; - public void startMonitoringBasedOnAlarmDescriptors( - String policyId, - PolicyRuleDevice policyRuleDevice, - List alarmDescriptorList) { - commonPolicyServiceImpl.setPolicyRuleDeviceToContext( - policyRuleDevice, VALIDATED_POLICYRULE_STATE); - commonPolicyServiceImpl.noAlarms = 0; - - List> alarmIds = createAlarmList(alarmDescriptorList); - - List> alarmResponseStreamList = - transformAlarmIds(alarmIds, policyRuleDevice); - - // Merge the promised alarms into one stream (Multi Object) - final var multi = Multi.createBy().merging().streams(alarmResponseStreamList); - commonPolicyServiceImpl.setPolicyRuleDeviceToContext( - policyRuleDevice, PROVISIONED_POLICYRULE_STATE); - - commonPolicyServiceImpl - .getSubscriptionList() - .put(policyId, monitorAlarmResponseForDevice(multi)); - - // TODO: Resubscribe to the stream, if it has ended - - // TODO: Redesign evaluation of action - // evaluateAction(policyRule, alarmDescriptorList, multi); - } - - public void startMonitoringBasedOnAlarmDescriptors( - String policyId, - PolicyRuleService policyRuleService, - List alarmDescriptorList) { - commonPolicyServiceImpl.setPolicyRuleServiceToContext( - policyRuleService, VALIDATED_POLICYRULE_STATE); - commonPolicyServiceImpl.noAlarms = 0; - - List> alarmIds = - createAlarmList(alarmDescriptorList); // setAllarmtomonitoring get back alarmid - - List> alarmResponseStreamList = - transformAlarmIds(alarmIds, policyRuleService); - - // Merge the promised alarms into one stream (Multi Object) - final var multi = Multi.createBy().merging().streams(alarmResponseStreamList); - commonPolicyServiceImpl.setPolicyRuleServiceToContext( - policyRuleService, PROVISIONED_POLICYRULE_STATE); - - commonPolicyServiceImpl - .getSubscriptionList() - .put(policyId, monitorAlarmResponseForService(multi)); - - // TODO: Resubscribe to the stream, if it has ended - - // TODO: Redesign evaluation of action - // evaluateAction(policyRule, alarmDescriptorList, multi); - } - /** * Transform the alarmIds into promised alarms returned from the getAlarmResponseStream * diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonPolicyServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonPolicyServiceImpl.java index c5afff68e..c85cdd928 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonPolicyServiceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/CommonPolicyServiceImpl.java @@ -25,7 +25,6 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import java.time.Instant; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Random; @@ -43,12 +42,10 @@ import org.etsi.tfs.policy.device.DeviceService; import org.etsi.tfs.policy.monitoring.MonitoringService; import org.etsi.tfs.policy.monitoring.model.AlarmDescriptor; import org.etsi.tfs.policy.monitoring.model.KpiValueRange; -import org.etsi.tfs.policy.policy.model.BooleanOperator; import org.etsi.tfs.policy.policy.model.PolicyRule; import org.etsi.tfs.policy.policy.model.PolicyRuleAction; import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; import org.etsi.tfs.policy.policy.model.PolicyRuleActionEnum; -import org.etsi.tfs.policy.policy.model.PolicyRuleBasic; import org.etsi.tfs.policy.policy.model.PolicyRuleCondition; import org.etsi.tfs.policy.policy.model.PolicyRuleDevice; import org.etsi.tfs.policy.policy.model.PolicyRuleService; @@ -139,7 +136,6 @@ public class CommonPolicyServiceImpl { callUpdateServiceRpc(policyRuleService, policyRuleAction); default: LOGGER.errorf(INVALID_MESSAGE, policyRuleAction.getPolicyRuleActionEnum()); - return; } } @@ -148,145 +144,18 @@ public class CommonPolicyServiceImpl { PolicyRuleAction policyRuleAction = policyRuleService.getPolicyRuleBasic().getPolicyRuleActions().get(0); - if (noAlarms == 0) { - noAlarms++; - setPolicyRuleServiceToContext(policyRuleService, ACTIVE_POLICYRULE_STATE); - - switch (policyRuleAction.getPolicyRuleActionEnum()) { - case POLICY_RULE_ACTION_ADD_SERVICE_CONSTRAINT: - addServiceConstraint(policyRuleService, policyRuleAction); - case POLICY_RULE_ACTION_ADD_SERVICE_CONFIGRULE: - addServiceConfigRule(policyRuleService, policyRuleAction); - case POLICY_RULE_ACTION_RECALCULATE_PATH: - callRecalculatePathRPC(policyRuleService, policyRuleAction); - default: - LOGGER.errorf(INVALID_MESSAGE, policyRuleAction.getPolicyRuleActionEnum()); - return; - } - } else if (noAlarms == 2) { - noAlarms = 0; - } else { - noAlarms++; - } - } - - public List createAlarmDescriptorList(PolicyRule policyRule) { - final var policyRuleType = policyRule.getPolicyRuleType(); - final var policyRuleTypeSpecificType = policyRuleType.getPolicyRuleType(); - - List alarmDescriptorList = new ArrayList<>(); - if (policyRuleTypeSpecificType instanceof PolicyRuleService) { - final var policyRuleService = (PolicyRuleService) policyRuleTypeSpecificType; - final var policyRuleBasic = policyRuleService.getPolicyRuleBasic(); - - alarmDescriptorList = parsePolicyRuleCondition(policyRuleBasic); - if (alarmDescriptorList.isEmpty()) { - return List.of(); - } - } else { - final var policyRuleDevice = (PolicyRuleDevice) policyRuleTypeSpecificType; - final var policyRuleBasic = policyRuleDevice.getPolicyRuleBasic(); - - alarmDescriptorList = parsePolicyRuleCondition(policyRuleBasic); - if (alarmDescriptorList.isEmpty()) { - return List.of(); - } - for (AlarmDescriptor alarmDescriptor : alarmDescriptorList) { - alarmPolicyRuleDeviceMap.put(alarmDescriptor.getAlarmId(), policyRuleDevice); - } - } - - return alarmDescriptorList; - } - - private List parsePolicyRuleCondition(PolicyRuleBasic policyRuleBasic) { - BooleanOperator booleanOperator = policyRuleBasic.getBooleanOperator(); - if (booleanOperator == BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR) { - return parsePolicyRuleConditionOr(policyRuleBasic); - } - if (booleanOperator == BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_AND) { - return Arrays.asList(parsePolicyRuleConditionAnd(policyRuleBasic)); - } - return List.of(); - } - - private List parsePolicyRuleConditionOr(PolicyRuleBasic policyRuleBasic) { - - List policyRuleConditions = policyRuleBasic.getPolicyRuleConditions(); - List alarmDescriptorList = new ArrayList<>(); - - for (PolicyRuleCondition policyRuleCondition : policyRuleConditions) { - var kpiValueRange = convertPolicyRuleConditionToKpiValueRange(policyRuleCondition); - - // TODO: Temp fix for AlarmDescriptor object - AlarmDescriptor alarmDescriptor = - new AlarmDescriptor( - "", - "alarmDescription", - "alarmName-" + gen(), - policyRuleCondition.getKpiId(), - kpiValueRange, - getTimeStamp()); - - alarmDescriptorList.add(alarmDescriptor); - } - - HashMap policyRuleActionMap = new HashMap<>(); - List policyRuleActions = policyRuleBasic.getPolicyRuleActions(); - - for (int i = 0; i < policyRuleActions.size(); i++) { - policyRuleActionMap.put(alarmDescriptorList.get(i).getAlarmId(), policyRuleActions.get(i)); - } - - return alarmDescriptorList; - } - - private AlarmDescriptor parsePolicyRuleConditionAnd(PolicyRuleBasic policyRuleBasic) { - - // TODO: KpiIds should be the same. Add check. - - List policyRuleConditionList = policyRuleBasic.getPolicyRuleConditions(); - List kpisList = new ArrayList(); - - for (PolicyRuleCondition policyRuleCondition : policyRuleConditionList) { - kpisList.add(policyRuleCondition.getKpiId()); - } - - if (policyRuleConditionList.size() > 1) { - return createAlarmDescriptorWithRange(policyRuleConditionList); - } - - return createAlarmDescriptorWithoutRange(policyRuleConditionList.get(0)); - } - - private AlarmDescriptor createAlarmDescriptorWithRange( - List policyRuleConditionList) { - - final var kpiId = policyRuleConditionList.get(0).getKpiId(); - - HashMap KpiValueRangeMap = new HashMap<>(); - for (PolicyRuleCondition policyRuleCondition : policyRuleConditionList) { - - if (!KpiValueRangeMap.containsKey(kpiId)) { - var kpiValueRange = convertPolicyRuleConditionToKpiValueRange(policyRuleCondition); - KpiValueRangeMap.put(kpiId, kpiValueRange); - continue; - } + setPolicyRuleServiceToContext(policyRuleService, ACTIVE_POLICYRULE_STATE); - var kpiValueRange = convertPolicyRuleConditionToKpiValueRange(policyRuleCondition); - // TODO: Handle combineKpiValueRanges exceptions - var combinedKpiValueRange = - combineKpiValueRanges(kpiId, KpiValueRangeMap.get(kpiId), kpiValueRange); - KpiValueRangeMap.put(kpiId, combinedKpiValueRange); + switch (policyRuleAction.getPolicyRuleActionEnum()) { + case POLICY_RULE_ACTION_ADD_SERVICE_CONSTRAINT: + addServiceConstraint(policyRuleService, policyRuleAction); + case POLICY_RULE_ACTION_ADD_SERVICE_CONFIGRULE: + addServiceConfigRule(policyRuleService, policyRuleAction); + case POLICY_RULE_ACTION_RECALCULATE_PATH: + callRecalculatePathRPC(policyRuleService, policyRuleAction); + default: + LOGGER.errorf(INVALID_MESSAGE, policyRuleAction.getPolicyRuleActionEnum()); } - - return new AlarmDescriptor( - "", - "alarmDescription", - "alarmName-" + gen(), - kpiId, - KpiValueRangeMap.get(kpiId), - getTimeStamp()); } private KpiValueRange convertPolicyRuleConditionToKpiValueRange( @@ -570,7 +439,6 @@ public class CommonPolicyServiceImpl { LOGGER.infof("Setting Policy Rule state to [%s]", policyRuleState.toString()); final var policyRuleBasic = policyRuleService.getPolicyRuleBasic(); - policyRuleBasic.setPolicyRuleState(policyRuleState); policyRuleService.setPolicyRuleBasic(policyRuleBasic); final var policyRuleTypeService = new PolicyRuleTypeService(policyRuleService); @@ -583,7 +451,6 @@ public class CommonPolicyServiceImpl { LOGGER.infof("Setting Policy Rule state to [%s]", policyRuleState.toString()); final var policyRuleBasic = policyRuleDevice.getPolicyRuleBasic(); - policyRuleBasic.setPolicyRuleState(policyRuleState); policyRuleDevice.setPolicyRuleBasic(policyRuleBasic); final var policyRuleTypeService = new PolicyRuleTypeDevice(policyRuleDevice); diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java index 775d1a3e1..b0506ba61 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java @@ -79,9 +79,13 @@ public class PolicyServiceImpl implements PolicyService { return Uni.createFrom().item(policyRuleState); } + LOGGER.error("final var policyRuleBasic = policyRuleService.getPolicyRuleBasic();"); + final var serviceId = policyRuleService.getServiceId(); final var deviceIds = policyRuleService.getDeviceIds(); final var isServiceValid = policyRuleConditionValidator.isServiceIdValid(serviceId, deviceIds); + LOGGER.error("serviceId" + serviceId); + LOGGER.error("deviceIds" + deviceIds); return isServiceValid .onFailure() diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java index 0a6074273..cfc88a08e 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java @@ -17,6 +17,7 @@ package org.etsi.tfs.policy.policy.model; import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; import java.util.ArrayList; import java.util.List; @@ -24,35 +25,30 @@ import org.etsi.tfs.policy.common.Util; public class PolicyRuleBasic { + private String kpiId; private String policyRuleId; private PolicyRuleState policyRuleState; private int priority; - private List policyRuleConditions; - private BooleanOperator booleanOperator; private List policyRuleActions; private Boolean isValid; private String exceptionMessage; public PolicyRuleBasic( String policyRuleId, + String kpiId, PolicyRuleState policyRuleState, int priority, - List policyRuleConditions, - BooleanOperator booleanOperator, List policyRuleActions) { try { checkArgument(!policyRuleId.isBlank(), "Policy rule ID must not be empty."); this.policyRuleId = policyRuleId; this.policyRuleState = policyRuleState; - checkArgument(priority >= 0, "Priority value must be greater or equal than zero."); this.priority = priority; - checkArgument(!policyRuleConditions.isEmpty(), "Policy Rule conditions cannot be empty."); - this.policyRuleConditions = policyRuleConditions; - checkArgument( - booleanOperator != BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED, - "Boolean operator cannot be undefined"); - this.booleanOperator = booleanOperator; + checkArgument(priority >= 0, "Priority value must be greater or equal than zero."); + checkNotNull(kpiId, "Kpi ID must not be null."); + checkArgument(!kpiId.isBlank(), "Kpi ID must not be empty."); + this.kpiId = kpiId; checkArgument(!policyRuleActions.isEmpty(), "Policy Rule actions cannot be empty."); this.policyRuleActions = policyRuleActions; this.isValid = true; @@ -60,8 +56,6 @@ public class PolicyRuleBasic { } catch (Exception e) { this.policyRuleId = ""; this.priority = 0; - this.policyRuleConditions = new ArrayList(); - this.booleanOperator = BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED; this.policyRuleActions = new ArrayList(); this.isValid = false; this.exceptionMessage = e.getMessage(); @@ -76,44 +70,50 @@ public class PolicyRuleBasic { return exceptionMessage; } + public List getPolicyRuleActions() { + return policyRuleActions; + } + + public String getKpiId() { + return kpiId; + } + + public void setKpiId(String kpiId) { + this.kpiId = kpiId; + } + public String getPolicyRuleId() { return policyRuleId; } + public void setPolicyRuleId(String policyRuleId) { + this.policyRuleId = policyRuleId; + } + public PolicyRuleState getPolicyRuleState() { return policyRuleState; } - public void setPolicyRuleState(PolicyRuleState state) { - this.policyRuleState = state; + public void setPolicyRuleState(PolicyRuleState policyRuleState) { + this.policyRuleState = policyRuleState; } public int getPriority() { return priority; } - public List getPolicyRuleConditions() { - return policyRuleConditions; - } - - public BooleanOperator getBooleanOperator() { - return booleanOperator; - } - - public List getPolicyRuleActions() { - return policyRuleActions; + public void setPriority(int priority) { + this.priority = priority; } @Override public String toString() { return String.format( - "%s:{policyRuleId:\"%s\", %s, priority:%d, [%s], booleanOperator:\"%s\", [%s]}", + "%s:{policyRuleId:\"%s\", %s, priority:%d, [%s]}", getClass().getSimpleName(), policyRuleId, policyRuleState, priority, - Util.toString(policyRuleConditions), - booleanOperator.toString(), Util.toString(policyRuleActions)); } } diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java index db3bbb8be..3e0837449 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java @@ -36,7 +36,6 @@ import org.etsi.tfs.policy.monitoring.MonitoringService; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; import org.etsi.tfs.policy.policy.PolicyServiceImpl; -import org.etsi.tfs.policy.policy.model.BooleanOperator; import org.etsi.tfs.policy.policy.model.NumericalOperator; import org.etsi.tfs.policy.policy.model.PolicyRuleAction; import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; @@ -84,10 +83,9 @@ class PolicyAddDeviceTest { policyRuleBasic = new PolicyRuleBasic( policyId, + "kpiId", new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), 1, - Arrays.asList(policyRuleCondition), - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, Arrays.asList(policyRuleAction)); List deviceIds = Arrays.asList("device1", "device2"); @@ -124,10 +122,9 @@ class PolicyAddDeviceTest { PolicyRuleBasic policyRuleBasic = new PolicyRuleBasic( "policyId", + "kpiId", new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), 0, - new ArrayList<>(), - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, new ArrayList<>()); PolicyRuleDevice policyRuleDevice = @@ -135,7 +132,7 @@ class PolicyAddDeviceTest { PolicyRuleState expectedResult = new PolicyRuleState( - PolicyRuleStateEnum.POLICY_FAILED, "Policy Rule conditions cannot be empty."); + PolicyRuleStateEnum.POLICY_FAILED, "Policy Rule actions cannot be empty."); policyService .addPolicyDevice(policyRuleDevice) diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java index 478826c04..f14b51735 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java @@ -39,7 +39,6 @@ import org.etsi.tfs.policy.monitoring.MonitoringService; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; import org.etsi.tfs.policy.policy.PolicyServiceImpl; -import org.etsi.tfs.policy.policy.model.BooleanOperator; import org.etsi.tfs.policy.policy.model.NumericalOperator; import org.etsi.tfs.policy.policy.model.PolicyRule; import org.etsi.tfs.policy.policy.model.PolicyRuleAction; @@ -89,10 +88,9 @@ public class PolicyAddServiceTest { policyRuleBasic = new PolicyRuleBasic( policyId, + "kpiId", new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), 1, - Arrays.asList(policyRuleCondition), - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, Arrays.asList(policyRuleAction)); ServiceId serviceId = new ServiceId("contextId", "serviceId"); @@ -163,10 +161,9 @@ public class PolicyAddServiceTest { PolicyRuleBasic policyRuleBasic = new PolicyRuleBasic( policyId, + "kpiId", new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), 1, - new ArrayList<>(), - null, new ArrayList<>()); ServiceId serviceId = new ServiceId("contextId", "serviceId"); diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java index 4630ccbdd..47d1c0b81 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java @@ -37,7 +37,6 @@ import org.etsi.tfs.policy.monitoring.MonitoringService; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; import org.etsi.tfs.policy.policy.PolicyServiceImpl; -import org.etsi.tfs.policy.policy.model.BooleanOperator; import org.etsi.tfs.policy.policy.model.NumericalOperator; import org.etsi.tfs.policy.policy.model.PolicyRule; import org.etsi.tfs.policy.policy.model.PolicyRuleAction; @@ -85,10 +84,9 @@ class PolicyDeleteServiceTest { policyRuleBasic = new PolicyRuleBasic( policyId, - new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), + "kpiId", + new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors1"), 1, - Arrays.asList(policyRuleCondition), - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, Arrays.asList(policyRuleAction)); ServiceId serviceId = new ServiceId("contextId", "serviceId"); diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java index 9726a7a47..084841499 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java @@ -41,7 +41,6 @@ import policy.Policy.PolicyRuleStateEnum; import policy.PolicyAction; import policy.PolicyAction.PolicyRuleActionEnum; import policy.PolicyCondition; -import policy.PolicyCondition.BooleanOperator; import policy.PolicyCondition.NumericalOperator; import policy.PolicyCondition.PolicyRuleCondition; import policy.PolicyService; @@ -141,8 +140,6 @@ class PolicyGrpcServiceTest { return PolicyRuleBasic.newBuilder() .setPolicyRuleId(expectedPolicyRuleId) .setPolicyRuleState(expectedPolicyRuleState) - .addAllConditionList(expectedPolicyRuleConditions) - .setBooleanOperator(BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR) .addAllActionList(expectedPolicyRuleActions) .build(); } diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java index 1904d74b5..b2bebd343 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java @@ -43,19 +43,12 @@ class PolicyRuleBasicValidationTestHelper { private PolicyRuleBasic createPolicyRuleBasic( String policyRuleId, - int priority, + String kpiId, PolicyRuleState policyRuleState, - BooleanOperator booleanOperator, - List policyRuleConditions, + int priority, List policyRuleActions) { - return new PolicyRuleBasic( - policyRuleId, - policyRuleState, - priority, - policyRuleConditions, - booleanOperator, - policyRuleActions); + return new PolicyRuleBasic(policyRuleId, kpiId, policyRuleState, priority, policyRuleActions); } private List createPolicyRuleConditions( @@ -89,15 +82,7 @@ class PolicyRuleBasicValidationTestHelper { final var policyRuleState = new PolicyRuleState(PolicyRuleStateEnum.POLICY_EFFECTIVE, "1"); assertThatExceptionOfType(NullPointerException.class) - .isThrownBy( - () -> - createPolicyRuleBasic( - null, - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - policyRuleConditions, - policyRuleActions)); + .isThrownBy(() -> createPolicyRuleBasic(null, "", policyRuleState, 3, policyRuleActions)); } @Test @@ -117,15 +102,7 @@ class PolicyRuleBasicValidationTestHelper { final var policyRuleState = new PolicyRuleState(PolicyRuleStateEnum.POLICY_ENFORCED, "1"); assertThatExceptionOfType(IllegalArgumentException.class) - .isThrownBy( - () -> - createPolicyRuleBasic( - "", - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - policyRuleConditions, - policyRuleActions)); + .isThrownBy(() -> createPolicyRuleBasic("", "", policyRuleState, 3, policyRuleActions)); } @Test @@ -145,15 +122,7 @@ class PolicyRuleBasicValidationTestHelper { final var policyRuleState = new PolicyRuleState(PolicyRuleStateEnum.POLICY_ENFORCED, "1"); assertThatExceptionOfType(IllegalArgumentException.class) - .isThrownBy( - () -> - createPolicyRuleBasic( - " ", - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - policyRuleConditions, - policyRuleActions)); + .isThrownBy(() -> createPolicyRuleBasic(" ", "", policyRuleState, 3, policyRuleActions)); } @Test @@ -176,14 +145,7 @@ class PolicyRuleBasicValidationTestHelper { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy( - () -> - createPolicyRuleBasic( - policyRuleId, - -3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - policyRuleConditions, - policyRuleActions)); + () -> createPolicyRuleBasic(policyRuleId, "", policyRuleState, 3, policyRuleActions)); } @Test @@ -200,15 +162,7 @@ class PolicyRuleBasicValidationTestHelper { final var policyRuleId = UUID.randomUUID().toString(); assertThatExceptionOfType(NullPointerException.class) - .isThrownBy( - () -> - createPolicyRuleBasic( - policyRuleId, - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - null, - policyRuleActions)); + .isThrownBy(() -> createPolicyRuleBasic(null, "", policyRuleState, 3, policyRuleActions)); } @Test @@ -226,15 +180,7 @@ class PolicyRuleBasicValidationTestHelper { final var policyRuleId = UUID.randomUUID().toString(); assertThatExceptionOfType(IllegalArgumentException.class) - .isThrownBy( - () -> - createPolicyRuleBasic( - policyRuleId, - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - policyRuleConditions, - policyRuleActions)); + .isThrownBy(() -> createPolicyRuleBasic(null, "", policyRuleState, 3, policyRuleActions)); } @Test @@ -256,15 +202,7 @@ class PolicyRuleBasicValidationTestHelper { final var policyRuleId = UUID.randomUUID().toString(); assertThatExceptionOfType(IllegalArgumentException.class) - .isThrownBy( - () -> - createPolicyRuleBasic( - policyRuleId, - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED, - policyRuleConditions, - policyRuleActions)); + .isThrownBy(() -> createPolicyRuleBasic(null, "", policyRuleState, 3, policyRuleActions)); } @Test @@ -280,15 +218,7 @@ class PolicyRuleBasicValidationTestHelper { final var policyRuleId = UUID.randomUUID().toString(); assertThatExceptionOfType(NullPointerException.class) - .isThrownBy( - () -> - createPolicyRuleBasic( - policyRuleId, - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - policyRuleConditions, - null)); + .isThrownBy(() -> createPolicyRuleBasic(null, "", policyRuleState, 3, null)); } @Test @@ -305,15 +235,7 @@ class PolicyRuleBasicValidationTestHelper { final var policyRuleId = UUID.randomUUID().toString(); assertThatExceptionOfType(IllegalArgumentException.class) - .isThrownBy( - () -> - createPolicyRuleBasic( - policyRuleId, - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - policyRuleConditions, - policyRuleActions)); + .isThrownBy(() -> createPolicyRuleBasic(null, "", policyRuleState, 3, policyRuleActions)); } @Test @@ -345,10 +267,9 @@ class PolicyRuleBasicValidationTestHelper { final var expectedPolicyRuleBasic = new PolicyRuleBasic( expectedPolicyRuleId, + "kpiId", expectedPolicyRuleState, expectedPriority, - expectedPolicyRuleConditions, - expectedBooleanOperator, expectedPolicyRuleActions); final var policyRuleConditions = @@ -364,13 +285,7 @@ class PolicyRuleBasicValidationTestHelper { final var policyRuleState = new PolicyRuleState(PolicyRuleStateEnum.POLICY_EFFECTIVE, "1"); final var policyRuleBasic = - createPolicyRuleBasic( - "expectedPolicyRuleId", - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - policyRuleConditions, - policyRuleActions); + createPolicyRuleBasic(null, "kpiId", policyRuleState, 3, policyRuleActions); assertThat(policyRuleBasic).usingRecursiveComparison().isEqualTo(expectedPolicyRuleBasic); } diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java index 57dd7fe32..1a4720e3a 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.UUID; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; -import org.etsi.tfs.policy.policy.model.BooleanOperator; import org.etsi.tfs.policy.policy.model.NumericalOperator; import org.etsi.tfs.policy.policy.model.PolicyRuleAction; import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; @@ -40,19 +39,12 @@ class PolicyRuleDeviceValidationTest { private PolicyRuleBasic createPolicyRuleBasic( String policyRuleId, - int priority, + String kpiId, PolicyRuleState policyRuleState, - BooleanOperator booleanOperator, - List policyRuleConditions, + int priority, List policyRuleActions) { - return new PolicyRuleBasic( - policyRuleId, - policyRuleState, - priority, - policyRuleConditions, - booleanOperator, - policyRuleActions); + return new PolicyRuleBasic(policyRuleId, kpiId, policyRuleState, priority, policyRuleActions); } private List createPolicyRuleConditions( @@ -162,13 +154,7 @@ class PolicyRuleDeviceValidationTest { final var policyRuleState = new PolicyRuleState(PolicyRuleStateEnum.POLICY_EFFECTIVE, "1"); final var policyRuleBasic = - createPolicyRuleBasic( - "policyRuleId", - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - policyRuleConditions, - policyRuleActions); + createPolicyRuleBasic("policyRuleId", "", policyRuleState, 3, policyRuleActions); final var deviceIds = createDeviceIds(); diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java index 30e7952aa..05bd3e847 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java @@ -44,7 +44,6 @@ import org.etsi.tfs.policy.context.model.TopologyId; import org.etsi.tfs.policy.kpi_sample_types.model.KpiSampleType; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; -import org.etsi.tfs.policy.policy.model.BooleanOperator; import org.etsi.tfs.policy.policy.model.NumericalOperator; import org.etsi.tfs.policy.policy.model.PolicyRuleAction; import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; @@ -145,19 +144,12 @@ class PolicyRuleServiceValidationTest { private PolicyRuleBasic createPolicyRuleBasic( String policyRuleId, - int priority, + String kpiId, PolicyRuleState policyRuleState, - BooleanOperator booleanOperator, - List policyRuleConditions, + int priority, List policyRuleActions) { - return new PolicyRuleBasic( - policyRuleId, - policyRuleState, - priority, - policyRuleConditions, - booleanOperator, - policyRuleActions); + return new PolicyRuleBasic(policyRuleId, kpiId, policyRuleState, priority, policyRuleActions); } private ServiceId createServiceId(String contextId, String id) { @@ -263,13 +255,7 @@ class PolicyRuleServiceValidationTest { final var policyRuleState = new PolicyRuleState(PolicyRuleStateEnum.POLICY_EFFECTIVE, "1"); final var policyRuleBasic = - createPolicyRuleBasic( - "policyRuleId", - 777, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_AND, - policyRuleConditions, - policyRuleActions); + createPolicyRuleBasic("policyRuleId", "kpiId", policyRuleState, 0, policyRuleActions); final var expectedPolicyRuleService = new PolicyRuleService(policyRuleBasic, serviceId, deviceIds); @@ -299,13 +285,7 @@ class PolicyRuleServiceValidationTest { final var policyRuleState = new PolicyRuleState(PolicyRuleStateEnum.POLICY_EFFECTIVE, "1"); final var policyRuleBasic = - createPolicyRuleBasic( - "policyRuleId", - 3, - policyRuleState, - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, - policyRuleConditions, - policyRuleActions); + createPolicyRuleBasic("policyRuleId", "kpiId", policyRuleState, 0, policyRuleActions); final var expectedPolicyRuleService = new PolicyRuleService(policyRuleBasic, serviceId, deviceIds); diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java index 825cfebbd..ddc8c7b05 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java @@ -35,7 +35,6 @@ import org.etsi.tfs.policy.monitoring.MonitoringService; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; import org.etsi.tfs.policy.policy.PolicyServiceImpl; -import org.etsi.tfs.policy.policy.model.BooleanOperator; import org.etsi.tfs.policy.policy.model.NumericalOperator; import org.etsi.tfs.policy.policy.model.PolicyRuleAction; import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; @@ -82,10 +81,9 @@ class PolicyUpdateDeviceTest { policyRuleBasic = new PolicyRuleBasic( policyId, + "kpiId", new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), 1, - Arrays.asList(policyRuleCondition), - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, Arrays.asList(policyRuleAction)); List deviceIds = Arrays.asList("device1", "device2"); @@ -122,10 +120,9 @@ class PolicyUpdateDeviceTest { PolicyRuleBasic policyRuleBasic = new PolicyRuleBasic( "policyId", + "kpiId", new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), 0, - new ArrayList<>(), - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, new ArrayList<>()); PolicyRuleDevice policyRuleDevice = @@ -133,7 +130,7 @@ class PolicyUpdateDeviceTest { PolicyRuleState expectedResult = new PolicyRuleState( - PolicyRuleStateEnum.POLICY_FAILED, "Policy Rule conditions cannot be empty."); + PolicyRuleStateEnum.POLICY_FAILED, "Policy Rule actions cannot be empty."); policyService .updatePolicyDevice(policyRuleDevice) diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java index d71736607..8c8bcf47e 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java @@ -39,7 +39,6 @@ import org.etsi.tfs.policy.monitoring.MonitoringService; import org.etsi.tfs.policy.monitoring.model.IntegerKpiValue; import org.etsi.tfs.policy.monitoring.model.KpiValue; import org.etsi.tfs.policy.policy.PolicyServiceImpl; -import org.etsi.tfs.policy.policy.model.BooleanOperator; import org.etsi.tfs.policy.policy.model.NumericalOperator; import org.etsi.tfs.policy.policy.model.PolicyRuleAction; import org.etsi.tfs.policy.policy.model.PolicyRuleActionConfig; @@ -88,10 +87,9 @@ class PolicyUpdateServiceTest { policyRuleBasic = new PolicyRuleBasic( policyId, + "kpiId", new PolicyRuleState(PolicyRuleStateEnum.POLICY_INSERTED, "Failed due to some errors"), 1, - Arrays.asList(policyRuleCondition), - BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, Arrays.asList(policyRuleAction)); ServiceId serviceId = new ServiceId("contextId", "serviceId"); diff --git a/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java b/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java index 46e656801..19a7179a7 100644 --- a/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java +++ b/src/policy/src/test/java/org/etsi/tfs/policy/SerializerTest.java @@ -165,11 +165,6 @@ class SerializerTest { NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_EQUAL, secondKpiValue); - final var expectedPolicyRuleConditions = - List.of(firstExpectedPolicyRuleCondition, secondExpectedPolicyRuleCondition); - - final var expectedBooleanOperator = BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR; - final var firstExpectedPolicyRuleAction = new PolicyRuleAction( PolicyRuleActionEnum.POLICY_RULE_ACTION_SET_DEVICE_STATUS, @@ -185,10 +180,9 @@ class SerializerTest { return new PolicyRuleBasic( expectedPolicyRuleId, + "kpiId", expectedPolicyRuleState, expectedPriority, - expectedPolicyRuleConditions, - expectedBooleanOperator, expectedPolicyRuleActions); } @@ -3060,18 +3054,13 @@ class SerializerTest { final var expectedPolicyRuleId = policyRuleBasic.getPolicyRuleId(); final var expectedPolicyRuleState = policyRuleBasic.getPolicyRuleState(); - final var expectedPriority = policyRuleBasic.getPriority(); - final var expectedPolicyRuleConditions = policyRuleBasic.getPolicyRuleConditions(); - final var expectedBooleanOperator = policyRuleBasic.getBooleanOperator(); final var expectedPolicyRuleActions = policyRuleBasic.getPolicyRuleActions(); + final var expectedPriority = policyRuleBasic.getPriority(); + final var expectedKpiId = policyRuleBasic.getKpiId(); final var serializedPolicyRuleId = serializer.serializePolicyRuleId(expectedPolicyRuleId); final var serializedPolicyRuleState = serializer.serialize(expectedPolicyRuleState); - final var serializedPolicyRuleConditions = - expectedPolicyRuleConditions.stream() - .map(policyRuleCondition -> serializer.serialize(policyRuleCondition)) - .collect(Collectors.toList()); - final var serializedBooleanOperator = serializer.serialize(expectedBooleanOperator); + final var serializedPolicyRuleActions = expectedPolicyRuleActions.stream() .map(policyRuleAction -> serializer.serialize(policyRuleAction)) @@ -3080,10 +3069,9 @@ class SerializerTest { final var expectedPolicyRuleBasic = Policy.PolicyRuleBasic.newBuilder() .setPolicyRuleId(serializedPolicyRuleId) - .setPolicyRuleState(serializedPolicyRuleState) .setPriority(expectedPriority) - .addAllConditionList(serializedPolicyRuleConditions) - .setBooleanOperator(serializedBooleanOperator) + .setKpiId(KpiId.newBuilder().setKpiId(Uuid.newBuilder().setUuid("kpiId").build())) + .setPolicyRuleState(serializedPolicyRuleState) .addAllActionList(serializedPolicyRuleActions) .build(); @@ -3101,17 +3089,12 @@ class SerializerTest { final var expectedPolicyRuleId = expectedPolicyRuleBasic.getPolicyRuleId(); final var expectedPolicyRuleState = expectedPolicyRuleBasic.getPolicyRuleState(); final var expectedPriority = expectedPolicyRuleBasic.getPriority(); - final var expectedPolicyRuleConditions = expectedPolicyRuleBasic.getPolicyRuleConditions(); - final var expectedBooleanOperator = expectedPolicyRuleBasic.getBooleanOperator(); + final var expectedKpiId = expectedPolicyRuleBasic.getKpiId(); final var expectedPolicyRuleActions = expectedPolicyRuleBasic.getPolicyRuleActions(); final var serializedPolicyRuleId = serializer.serializePolicyRuleId(expectedPolicyRuleId); final var serializedPolicyRuleState = serializer.serialize(expectedPolicyRuleState); - final var serializedPolicyRuleConditions = - expectedPolicyRuleConditions.stream() - .map(policyRuleCondition -> serializer.serialize(policyRuleCondition)) - .collect(Collectors.toList()); - final var serializedBooleanOperator = serializer.serialize(expectedBooleanOperator); + final var serializedPolicyRuleActions = expectedPolicyRuleActions.stream() .map(policyRuleAction -> serializer.serialize(policyRuleAction)) @@ -3121,9 +3104,8 @@ class SerializerTest { Policy.PolicyRuleBasic.newBuilder() .setPolicyRuleId(serializedPolicyRuleId) .setPolicyRuleState(serializedPolicyRuleState) + .setKpiId(KpiId.newBuilder().setKpiId(Uuid.newBuilder().setUuid("kpiId").build())) .setPriority(expectedPriority) - .addAllConditionList(serializedPolicyRuleConditions) - .setBooleanOperator(serializedBooleanOperator) .addAllActionList(serializedPolicyRuleActions) .build(); @@ -3230,7 +3212,9 @@ class SerializerTest { final var serializedPolicyRuleDevice = Policy.PolicyRuleDevice.newBuilder() .setPolicyRuleBasic(serializedPolicyRuleBasic) - .addAllDeviceList(serializedPolicyRuleDeviceIds) + .addAllDeviceList( + (Iterable) + serializedPolicyRuleDeviceIds) .build(); final var policyRuleDevice = serializer.deserialize(serializedPolicyRuleDevice); diff --git a/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java b/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java index 126133075..ef76aed1a 100644 --- a/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java +++ b/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java @@ -219,6 +219,10 @@ public final class ContextOuterClass { * DEVICEDRIVER_MORPHEUS = 17; */ DEVICEDRIVER_MORPHEUS(17), + /** + * DEVICEDRIVER_RYU = 18; + */ + DEVICEDRIVER_RYU(18), UNRECOGNIZED(-1); /** @@ -315,6 +319,11 @@ public final class ContextOuterClass { */ public static final int DEVICEDRIVER_MORPHEUS_VALUE = 17; + /** + * DEVICEDRIVER_RYU = 18; + */ + public static final int DEVICEDRIVER_RYU_VALUE = 18; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); @@ -374,6 +383,8 @@ public final class ContextOuterClass { return DEVICEDRIVER_SMARTNIC; case 17: return DEVICEDRIVER_MORPHEUS; + case 18: + return DEVICEDRIVER_RYU; default: return null; } @@ -81195,7 +81206,7 @@ public final class ContextOuterClass { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - java.lang.String[] descriptorData = { "\n\rcontext.proto\022\007context\032\031google/protobu" + "f/any.proto\032\tacl.proto\032\026kpi_sample_types" + ".proto\"\007\n\005Empty\"\024\n\004Uuid\022\014\n\004uuid\030\001 \001(\t\"\036\n" + "\tTimestamp\022\021\n\ttimestamp\030\001 \001(\001\"Z\n\005Event\022%" + "\n\ttimestamp\030\001 \001(\0132\022.context.Timestamp\022*\n" + "\nevent_type\030\002 \001(\0162\026.context.EventTypeEnu" + "m\"0\n\tContextId\022#\n\014context_uuid\030\001 \001(\0132\r.c" + "ontext.Uuid\"\351\001\n\007Context\022&\n\ncontext_id\030\001 " + "\001(\0132\022.context.ContextId\022\014\n\004name\030\002 \001(\t\022)\n" + "\014topology_ids\030\003 \003(\0132\023.context.TopologyId" + "\022\'\n\013service_ids\030\004 \003(\0132\022.context.ServiceI" + "d\022#\n\tslice_ids\030\005 \003(\0132\020.context.SliceId\022/" + "\n\ncontroller\030\006 \001(\0132\033.context.TeraFlowCon" + "troller\"8\n\rContextIdList\022\'\n\013context_ids\030" + "\001 \003(\0132\022.context.ContextId\"1\n\013ContextList" + "\022\"\n\010contexts\030\001 \003(\0132\020.context.Context\"U\n\014" + "ContextEvent\022\035\n\005event\030\001 \001(\0132\016.context.Ev" + "ent\022&\n\ncontext_id\030\002 \001(\0132\022.context.Contex" + "tId\"Z\n\nTopologyId\022&\n\ncontext_id\030\001 \001(\0132\022." + "context.ContextId\022$\n\rtopology_uuid\030\002 \001(\013" + "2\r.context.Uuid\"\267\001\n\010Topology\022(\n\013topology" + "_id\030\001 \001(\0132\023.context.TopologyId\022\014\n\004name\030\002" + " \001(\t\022%\n\ndevice_ids\030\003 \003(\0132\021.context.Devic" + "eId\022!\n\010link_ids\030\004 \003(\0132\017.context.LinkId\022)" + "\n\020optical_link_ids\030\005 \003(\0132\017.context.LinkI" + "d\"\266\001\n\017TopologyDetails\022(\n\013topology_id\030\001 \001" + "(\0132\023.context.TopologyId\022\014\n\004name\030\002 \001(\t\022 \n" + "\007devices\030\003 \003(\0132\017.context.Device\022\034\n\005links" + "\030\004 \003(\0132\r.context.Link\022+\n\roptical_links\030\005" + " \003(\0132\024.context.OpticalLink\";\n\016TopologyId" + "List\022)\n\014topology_ids\030\001 \003(\0132\023.context.Top" + "ologyId\"5\n\014TopologyList\022%\n\ntopologies\030\001 " + "\003(\0132\021.context.Topology\"X\n\rTopologyEvent\022" + "\035\n\005event\030\001 \001(\0132\016.context.Event\022(\n\013topolo" + "gy_id\030\002 \001(\0132\023.context.TopologyId\".\n\010Devi" + "ceId\022\"\n\013device_uuid\030\001 \001(\0132\r.context.Uuid" + "\"\372\002\n\006Device\022$\n\tdevice_id\030\001 \001(\0132\021.context" + ".DeviceId\022\014\n\004name\030\002 \001(\t\022\023\n\013device_type\030\003" + " \001(\t\022,\n\rdevice_config\030\004 \001(\0132\025.context.De" + "viceConfig\022G\n\031device_operational_status\030" + "\005 \001(\0162$.context.DeviceOperationalStatusE" + "num\0221\n\016device_drivers\030\006 \003(\0162\031.context.De" + "viceDriverEnum\022+\n\020device_endpoints\030\007 \003(\013" + "2\021.context.EndPoint\022&\n\ncomponents\030\010 \003(\0132" + "\022.context.Component\022(\n\rcontroller_id\030\t \001" + "(\0132\021.context.DeviceId\"\311\001\n\tComponent\022%\n\016c" + "omponent_uuid\030\001 \001(\0132\r.context.Uuid\022\014\n\004na" + "me\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\0226\n\nattributes\030\004 \003" + "(\0132\".context.Component.AttributesEntry\022\016" + "\n\006parent\030\005 \001(\t\0321\n\017AttributesEntry\022\013\n\003key" + "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"9\n\014DeviceConfi" + "g\022)\n\014config_rules\030\001 \003(\0132\023.context.Config" + "Rule\"5\n\014DeviceIdList\022%\n\ndevice_ids\030\001 \003(\013" + "2\021.context.DeviceId\".\n\nDeviceList\022 \n\007dev" + "ices\030\001 \003(\0132\017.context.Device\"\216\001\n\014DeviceFi" + "lter\022)\n\ndevice_ids\030\001 \001(\0132\025.context.Devic" + "eIdList\022\031\n\021include_endpoints\030\002 \001(\010\022\034\n\024in" + "clude_config_rules\030\003 \001(\010\022\032\n\022include_comp" + "onents\030\004 \001(\010\"\200\001\n\013DeviceEvent\022\035\n\005event\030\001 " + "\001(\0132\016.context.Event\022$\n\tdevice_id\030\002 \001(\0132\021" + ".context.DeviceId\022,\n\rdevice_config\030\003 \001(\013" + "2\025.context.DeviceConfig\"*\n\006LinkId\022 \n\tlin" + "k_uuid\030\001 \001(\0132\r.context.Uuid\"I\n\016LinkAttri" + "butes\022\033\n\023total_capacity_gbps\030\001 \001(\002\022\032\n\022us" + "ed_capacity_gbps\030\002 \001(\002\"\275\001\n\004Link\022 \n\007link_" + "id\030\001 \001(\0132\017.context.LinkId\022\014\n\004name\030\002 \001(\t\022" + "(\n\tlink_type\030\003 \001(\0162\025.context.LinkTypeEnu" + "m\022.\n\021link_endpoint_ids\030\004 \003(\0132\023.context.E" + "ndPointId\022+\n\nattributes\030\005 \001(\0132\027.context." + "LinkAttributes\"/\n\nLinkIdList\022!\n\010link_ids" + "\030\001 \003(\0132\017.context.LinkId\"(\n\010LinkList\022\034\n\005l" + "inks\030\001 \003(\0132\r.context.Link\"L\n\tLinkEvent\022\035" + "\n\005event\030\001 \001(\0132\016.context.Event\022 \n\007link_id" + "\030\002 \001(\0132\017.context.LinkId\"X\n\tServiceId\022&\n\n" + "context_id\030\001 \001(\0132\022.context.ContextId\022#\n\014" + "service_uuid\030\002 \001(\0132\r.context.Uuid\"\333\002\n\007Se" + "rvice\022&\n\nservice_id\030\001 \001(\0132\022.context.Serv" + "iceId\022\014\n\004name\030\002 \001(\t\022.\n\014service_type\030\003 \001(" + "\0162\030.context.ServiceTypeEnum\0221\n\024service_e" + "ndpoint_ids\030\004 \003(\0132\023.context.EndPointId\0220" + "\n\023service_constraints\030\005 \003(\0132\023.context.Co" + "nstraint\022.\n\016service_status\030\006 \001(\0132\026.conte" + "xt.ServiceStatus\022.\n\016service_config\030\007 \001(\013" + "2\026.context.ServiceConfig\022%\n\ttimestamp\030\010 " + "\001(\0132\022.context.Timestamp\"C\n\rServiceStatus" + "\0222\n\016service_status\030\001 \001(\0162\032.context.Servi" + "ceStatusEnum\":\n\rServiceConfig\022)\n\014config_" + "rules\030\001 \003(\0132\023.context.ConfigRule\"8\n\rServ" + "iceIdList\022\'\n\013service_ids\030\001 \003(\0132\022.context" + ".ServiceId\"1\n\013ServiceList\022\"\n\010services\030\001 " + "\003(\0132\020.context.Service\"\225\001\n\rServiceFilter\022" + "+\n\013service_ids\030\001 \001(\0132\026.context.ServiceId" + "List\022\034\n\024include_endpoint_ids\030\002 \001(\010\022\033\n\023in" + "clude_constraints\030\003 \001(\010\022\034\n\024include_confi" + "g_rules\030\004 \001(\010\"U\n\014ServiceEvent\022\035\n\005event\030\001" + " \001(\0132\016.context.Event\022&\n\nservice_id\030\002 \001(\013" + "2\022.context.ServiceId\"T\n\007SliceId\022&\n\nconte" + "xt_id\030\001 \001(\0132\022.context.ContextId\022!\n\nslice" + "_uuid\030\002 \001(\0132\r.context.Uuid\"\240\003\n\005Slice\022\"\n\010" + "slice_id\030\001 \001(\0132\020.context.SliceId\022\014\n\004name" + "\030\002 \001(\t\022/\n\022slice_endpoint_ids\030\003 \003(\0132\023.con" + "text.EndPointId\022.\n\021slice_constraints\030\004 \003" + "(\0132\023.context.Constraint\022-\n\021slice_service" + "_ids\030\005 \003(\0132\022.context.ServiceId\022,\n\022slice_" + "subslice_ids\030\006 \003(\0132\020.context.SliceId\022*\n\014" + "slice_status\030\007 \001(\0132\024.context.SliceStatus" + "\022*\n\014slice_config\030\010 \001(\0132\024.context.SliceCo" + "nfig\022(\n\013slice_owner\030\t \001(\0132\023.context.Slic" + "eOwner\022%\n\ttimestamp\030\n \001(\0132\022.context.Time" + "stamp\"E\n\nSliceOwner\022!\n\nowner_uuid\030\001 \001(\0132" + "\r.context.Uuid\022\024\n\014owner_string\030\002 \001(\t\"=\n\013" + "SliceStatus\022.\n\014slice_status\030\001 \001(\0162\030.cont" + "ext.SliceStatusEnum\"8\n\013SliceConfig\022)\n\014co" + "nfig_rules\030\001 \003(\0132\023.context.ConfigRule\"2\n" + "\013SliceIdList\022#\n\tslice_ids\030\001 \003(\0132\020.contex" + "t.SliceId\"+\n\tSliceList\022\036\n\006slices\030\001 \003(\0132\016" + ".context.Slice\"\312\001\n\013SliceFilter\022\'\n\tslice_" + "ids\030\001 \001(\0132\024.context.SliceIdList\022\034\n\024inclu" + "de_endpoint_ids\030\002 \001(\010\022\033\n\023include_constra" + "ints\030\003 \001(\010\022\033\n\023include_service_ids\030\004 \001(\010\022" + "\034\n\024include_subslice_ids\030\005 \001(\010\022\034\n\024include" + "_config_rules\030\006 \001(\010\"O\n\nSliceEvent\022\035\n\005eve" + "nt\030\001 \001(\0132\016.context.Event\022\"\n\010slice_id\030\002 \001" + "(\0132\020.context.SliceId\"6\n\014ConnectionId\022&\n\017" + "connection_uuid\030\001 \001(\0132\r.context.Uuid\"2\n\025" + "ConnectionSettings_L0\022\031\n\021lsp_symbolic_na" + "me\030\001 \001(\t\"\236\001\n\025ConnectionSettings_L2\022\027\n\017sr" + "c_mac_address\030\001 \001(\t\022\027\n\017dst_mac_address\030\002" + " \001(\t\022\022\n\nether_type\030\003 \001(\r\022\017\n\007vlan_id\030\004 \001(" + "\r\022\022\n\nmpls_label\030\005 \001(\r\022\032\n\022mpls_traffic_cl" + "ass\030\006 \001(\r\"t\n\025ConnectionSettings_L3\022\026\n\016sr" + "c_ip_address\030\001 \001(\t\022\026\n\016dst_ip_address\030\002 \001" + "(\t\022\014\n\004dscp\030\003 \001(\r\022\020\n\010protocol\030\004 \001(\r\022\013\n\003tt" + "l\030\005 \001(\r\"[\n\025ConnectionSettings_L4\022\020\n\010src_" + "port\030\001 \001(\r\022\020\n\010dst_port\030\002 \001(\r\022\021\n\ttcp_flag" + "s\030\003 \001(\r\022\013\n\003ttl\030\004 \001(\r\"\304\001\n\022ConnectionSetti" + "ngs\022*\n\002l0\030\001 \001(\0132\036.context.ConnectionSett" + "ings_L0\022*\n\002l2\030\002 \001(\0132\036.context.Connection" + "Settings_L2\022*\n\002l3\030\003 \001(\0132\036.context.Connec" + "tionSettings_L3\022*\n\002l4\030\004 \001(\0132\036.context.Co" + "nnectionSettings_L4\"\363\001\n\nConnection\022,\n\rco" + "nnection_id\030\001 \001(\0132\025.context.ConnectionId" + "\022&\n\nservice_id\030\002 \001(\0132\022.context.ServiceId" + "\0223\n\026path_hops_endpoint_ids\030\003 \003(\0132\023.conte" + "xt.EndPointId\022+\n\017sub_service_ids\030\004 \003(\0132\022" + ".context.ServiceId\022-\n\010settings\030\005 \001(\0132\033.c" + "ontext.ConnectionSettings\"A\n\020ConnectionI" + "dList\022-\n\016connection_ids\030\001 \003(\0132\025.context." + "ConnectionId\":\n\016ConnectionList\022(\n\013connec" + "tions\030\001 \003(\0132\023.context.Connection\"^\n\017Conn" + "ectionEvent\022\035\n\005event\030\001 \001(\0132\016.context.Eve" + "nt\022,\n\rconnection_id\030\002 \001(\0132\025.context.Conn" + "ectionId\"\202\001\n\nEndPointId\022(\n\013topology_id\030\001" + " \001(\0132\023.context.TopologyId\022$\n\tdevice_id\030\002" + " \001(\0132\021.context.DeviceId\022$\n\rendpoint_uuid" + "\030\003 \001(\0132\r.context.Uuid\"\310\002\n\010EndPoint\022(\n\013en" + "dpoint_id\030\001 \001(\0132\023.context.EndPointId\022\014\n\004" + "name\030\002 \001(\t\022\025\n\rendpoint_type\030\003 \001(\t\0229\n\020kpi" + "_sample_types\030\004 \003(\0162\037.kpi_sample_types.K" + "piSampleType\022,\n\021endpoint_location\030\005 \001(\0132" + "\021.context.Location\0229\n\014capabilities\030\006 \003(\013" + "2#.context.EndPoint.CapabilitiesEntry\032I\n" + "\021CapabilitiesEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value" + "\030\002 \001(\0132\024.google.protobuf.Any:\0028\001\"{\n\014EndP" + "ointName\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022\023\n\013device_name\030\002 \001(\t\022\025\n\rendpo" + "int_name\030\003 \001(\t\022\025\n\rendpoint_type\030\004 \001(\t\";\n" + "\016EndPointIdList\022)\n\014endpoint_ids\030\001 \003(\0132\023." + "context.EndPointId\"A\n\020EndPointNameList\022-" + "\n\016endpoint_names\030\001 \003(\0132\025.context.EndPoin" + "tName\"A\n\021ConfigRule_Custom\022\024\n\014resource_k" + "ey\030\001 \001(\t\022\026\n\016resource_value\030\002 \001(\t\"]\n\016Conf" + "igRule_ACL\022(\n\013endpoint_id\030\001 \001(\0132\023.contex" + "t.EndPointId\022!\n\010rule_set\030\002 \001(\0132\017.acl.Acl" + "RuleSet\"\234\001\n\nConfigRule\022)\n\006action\030\001 \001(\0162\031" + ".context.ConfigActionEnum\022,\n\006custom\030\002 \001(" + "\0132\032.context.ConfigRule_CustomH\000\022&\n\003acl\030\003" + " \001(\0132\027.context.ConfigRule_ACLH\000B\r\n\013confi" + "g_rule\"F\n\021Constraint_Custom\022\027\n\017constrain" + "t_type\030\001 \001(\t\022\030\n\020constraint_value\030\002 \001(\t\"E" + "\n\023Constraint_Schedule\022\027\n\017start_timestamp" + "\030\001 \001(\001\022\025\n\rduration_days\030\002 \001(\002\"3\n\014GPS_Pos" + "ition\022\020\n\010latitude\030\001 \001(\002\022\021\n\tlongitude\030\002 \001" + "(\002\"\204\001\n\010Location\022\020\n\006region\030\001 \001(\tH\000\022-\n\014gps" + "_position\030\002 \001(\0132\025.context.GPS_PositionH\000" + "\022\023\n\tinterface\030\003 \001(\tH\000\022\026\n\014circuit_pack\030\004 " + "\001(\tH\000B\n\n\010location\"l\n\033Constraint_EndPoint" + "Location\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022#\n\010location\030\002 \001(\0132\021.context.L" + "ocation\"Y\n\033Constraint_EndPointPriority\022(" + "\n\013endpoint_id\030\001 \001(\0132\023.context.EndPointId" + "\022\020\n\010priority\030\002 \001(\r\"0\n\026Constraint_SLA_Lat" + "ency\022\026\n\016e2e_latency_ms\030\001 \001(\002\"0\n\027Constrai" + "nt_SLA_Capacity\022\025\n\rcapacity_gbps\030\001 \001(\002\"c" + "\n\033Constraint_SLA_Availability\022\032\n\022num_dis" + "joint_paths\030\001 \001(\r\022\022\n\nall_active\030\002 \001(\010\022\024\n" + "\014availability\030\003 \001(\002\"V\n\036Constraint_SLA_Is" + "olation_level\0224\n\017isolation_level\030\001 \003(\0162\033" + ".context.IsolationLevelEnum\"\242\001\n\025Constrai" + "nt_Exclusions\022\024\n\014is_permanent\030\001 \001(\010\022%\n\nd" + "evice_ids\030\002 \003(\0132\021.context.DeviceId\022)\n\014en" + "dpoint_ids\030\003 \003(\0132\023.context.EndPointId\022!\n" + "\010link_ids\030\004 \003(\0132\017.context.LinkId\"5\n\014QoSP" + "rofileId\022%\n\016qos_profile_id\030\001 \001(\0132\r.conte" + "xt.Uuid\"`\n\025Constraint_QoSProfile\022-\n\016qos_" + "profile_id\030\001 \001(\0132\025.context.QoSProfileId\022" + "\030\n\020qos_profile_name\030\002 \001(\t\"\222\005\n\nConstraint" + "\022-\n\006action\030\001 \001(\0162\035.context.ConstraintAct" + "ionEnum\022,\n\006custom\030\002 \001(\0132\032.context.Constr" + "aint_CustomH\000\0220\n\010schedule\030\003 \001(\0132\034.contex" + "t.Constraint_ScheduleH\000\022A\n\021endpoint_loca" + "tion\030\004 \001(\0132$.context.Constraint_EndPoint" + "LocationH\000\022A\n\021endpoint_priority\030\005 \001(\0132$." + "context.Constraint_EndPointPriorityH\000\0228\n" + "\014sla_capacity\030\006 \001(\0132 .context.Constraint" + "_SLA_CapacityH\000\0226\n\013sla_latency\030\007 \001(\0132\037.c" + "ontext.Constraint_SLA_LatencyH\000\022@\n\020sla_a" + "vailability\030\010 \001(\0132$.context.Constraint_S" + "LA_AvailabilityH\000\022@\n\rsla_isolation\030\t \001(\013" + "2\'.context.Constraint_SLA_Isolation_leve" + "lH\000\0224\n\nexclusions\030\n \001(\0132\036.context.Constr" + "aint_ExclusionsH\000\0225\n\013qos_profile\030\013 \001(\0132\036" + ".context.Constraint_QoSProfileH\000B\014\n\ncons" + "traint\"^\n\022TeraFlowController\022&\n\ncontext_" + "id\030\001 \001(\0132\022.context.ContextId\022\022\n\nip_addre" + "ss\030\002 \001(\t\022\014\n\004port\030\003 \001(\r\"U\n\024Authentication" + "Result\022&\n\ncontext_id\030\001 \001(\0132\022.context.Con" + "textId\022\025\n\rauthenticated\030\002 \001(\010\"-\n\017Optical" + "ConfigId\022\032\n\022opticalconfig_uuid\030\001 \001(\t\"y\n\r" + "OpticalConfig\0222\n\020opticalconfig_id\030\001 \001(\0132" + "\030.context.OpticalConfigId\022\016\n\006config\030\002 \001(" + "\t\022$\n\tdevice_id\030\003 \001(\0132\021.context.DeviceId\"" + "C\n\021OpticalConfigList\022.\n\016opticalconfigs\030\001" + " \003(\0132\026.context.OpticalConfig\"g\n\022OpticalC" + "onfigEvent\022\035\n\005event\030\001 \001(\0132\016.context.Even" + "t\0222\n\020opticalconfig_id\030\002 \001(\0132\030.context.Op" + "ticalConfigId\"_\n\021OpticalEndPointId\022$\n\tde" + "vice_id\030\002 \001(\0132\021.context.DeviceId\022$\n\rendp" + "oint_uuid\030\003 \001(\0132\r.context.Uuid\">\n\017Optica" + "lLinkList\022+\n\roptical_links\030\001 \003(\0132\024.conte" + "xt.OpticalLink\"\304\003\n\022OpticalLinkDetails\022\016\n" + "\006length\030\001 \001(\002\022\020\n\010src_port\030\002 \001(\t\022\020\n\010dst_p" + "ort\030\003 \001(\t\022\027\n\017local_peer_port\030\004 \001(\t\022\030\n\020re" + "mote_peer_port\030\005 \001(\t\022\014\n\004used\030\006 \001(\010\0228\n\007c_" + "slots\030\007 \003(\0132\'.context.OpticalLinkDetails" + ".CSlotsEntry\0228\n\007l_slots\030\010 \003(\0132\'.context." + "OpticalLinkDetails.LSlotsEntry\0228\n\007s_slot" + "s\030\t \003(\0132\'.context.OpticalLinkDetails.SSl" + "otsEntry\032-\n\013CSlotsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" + "value\030\002 \001(\005:\0028\001\032-\n\013LSlotsEntry\022\013\n\003key\030\001 " + "\001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\032-\n\013SSlotsEntry\022\013\n" + "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\"\243\001\n\013Optica" + "lLink\022\014\n\004name\030\001 \001(\t\0224\n\017optical_details\030\002" + " \001(\0132\033.context.OpticalLinkDetails\022 \n\007lin" + "k_id\030\003 \001(\0132\017.context.LinkId\022.\n\021link_endp" + "oint_ids\030\004 \003(\0132\023.context.EndPointId\"r\n\021S" + "erviceConfigRule\022&\n\nservice_id\030\001 \001(\0132\022.c" + "ontext.ServiceId\0225\n\021configrule_custom\030\002 " + "\001(\0132\032.context.ConfigRule_Custom*j\n\rEvent" + "TypeEnum\022\027\n\023EVENTTYPE_UNDEFINED\020\000\022\024\n\020EVE" + "NTTYPE_CREATE\020\001\022\024\n\020EVENTTYPE_UPDATE\020\002\022\024\n" + "\020EVENTTYPE_REMOVE\020\003*\204\004\n\020DeviceDriverEnum" + "\022\032\n\026DEVICEDRIVER_UNDEFINED\020\000\022\033\n\027DEVICEDR" + "IVER_OPENCONFIG\020\001\022\036\n\032DEVICEDRIVER_TRANSP" + "ORT_API\020\002\022\023\n\017DEVICEDRIVER_P4\020\003\022&\n\"DEVICE" + "DRIVER_IETF_NETWORK_TOPOLOGY\020\004\022\033\n\027DEVICE" + "DRIVER_ONF_TR_532\020\005\022\023\n\017DEVICEDRIVER_XR\020\006" + "\022\033\n\027DEVICEDRIVER_IETF_L2VPN\020\007\022 \n\034DEVICED" + "RIVER_GNMI_OPENCONFIG\020\010\022\034\n\030DEVICEDRIVER_" + "OPTICAL_TFS\020\t\022\032\n\026DEVICEDRIVER_IETF_ACTN\020" + "\n\022\023\n\017DEVICEDRIVER_OC\020\013\022\024\n\020DEVICEDRIVER_Q" + "KD\020\014\022\033\n\027DEVICEDRIVER_IETF_L3VPN\020\r\022\033\n\027DEV" + "ICEDRIVER_IETF_SLICE\020\016\022\024\n\020DEVICEDRIVER_N" + "CE\020\017\022\031\n\025DEVICEDRIVER_SMARTNIC\020\020\022\031\n\025DEVIC" + "EDRIVER_MORPHEUS\020\021*\217\001\n\033DeviceOperational" + "StatusEnum\022%\n!DEVICEOPERATIONALSTATUS_UN" + "DEFINED\020\000\022$\n DEVICEOPERATIONALSTATUS_DIS" + "ABLED\020\001\022#\n\037DEVICEOPERATIONALSTATUS_ENABL" + "ED\020\002*\220\001\n\014LinkTypeEnum\022\024\n\020LINKTYPE_UNKNOW" + "N\020\000\022\023\n\017LINKTYPE_COPPER\020\001\022\022\n\016LINKTYPE_FIB" + "ER\020\002\022\022\n\016LINKTYPE_RADIO\020\003\022\024\n\020LINKTYPE_VIR" + "TUAL\020\004\022\027\n\023LINKTYPE_MANAGEMENT\020\005*\245\002\n\017Serv" + "iceTypeEnum\022\027\n\023SERVICETYPE_UNKNOWN\020\000\022\024\n\020" + "SERVICETYPE_L3NM\020\001\022\024\n\020SERVICETYPE_L2NM\020\002" + "\022)\n%SERVICETYPE_TAPI_CONNECTIVITY_SERVIC" + "E\020\003\022\022\n\016SERVICETYPE_TE\020\004\022\023\n\017SERVICETYPE_E" + "2E\020\005\022$\n SERVICETYPE_OPTICAL_CONNECTIVITY" + "\020\006\022\023\n\017SERVICETYPE_QKD\020\007\022\024\n\020SERVICETYPE_L" + "1NM\020\010\022\023\n\017SERVICETYPE_INT\020\t\022\023\n\017SERVICETYP" + "E_ACL\020\n*\304\001\n\021ServiceStatusEnum\022\033\n\027SERVICE" + "STATUS_UNDEFINED\020\000\022\031\n\025SERVICESTATUS_PLAN" + "NED\020\001\022\030\n\024SERVICESTATUS_ACTIVE\020\002\022\032\n\026SERVI" + "CESTATUS_UPDATING\020\003\022!\n\035SERVICESTATUS_PEN" + "DING_REMOVAL\020\004\022\036\n\032SERVICESTATUS_SLA_VIOL" + "ATED\020\005*\251\001\n\017SliceStatusEnum\022\031\n\025SLICESTATU" + "S_UNDEFINED\020\000\022\027\n\023SLICESTATUS_PLANNED\020\001\022\024" + "\n\020SLICESTATUS_INIT\020\002\022\026\n\022SLICESTATUS_ACTI" + "VE\020\003\022\026\n\022SLICESTATUS_DEINIT\020\004\022\034\n\030SLICESTA" + "TUS_SLA_VIOLATED\020\005*]\n\020ConfigActionEnum\022\032" + "\n\026CONFIGACTION_UNDEFINED\020\000\022\024\n\020CONFIGACTI" + "ON_SET\020\001\022\027\n\023CONFIGACTION_DELETE\020\002*m\n\024Con" + "straintActionEnum\022\036\n\032CONSTRAINTACTION_UN" + "DEFINED\020\000\022\030\n\024CONSTRAINTACTION_SET\020\001\022\033\n\027C" + "ONSTRAINTACTION_DELETE\020\002*\203\002\n\022IsolationLe" + "velEnum\022\020\n\014NO_ISOLATION\020\000\022\026\n\022PHYSICAL_IS" + "OLATION\020\001\022\025\n\021LOGICAL_ISOLATION\020\002\022\025\n\021PROC" + "ESS_ISOLATION\020\003\022\035\n\031PHYSICAL_MEMORY_ISOLA" + "TION\020\004\022\036\n\032PHYSICAL_NETWORK_ISOLATION\020\005\022\036" + "\n\032VIRTUAL_RESOURCE_ISOLATION\020\006\022\037\n\033NETWOR" + "K_FUNCTIONS_ISOLATION\020\007\022\025\n\021SERVICE_ISOLA" + "TION\020\0102\202\034\n\016ContextService\022:\n\016ListContext" + "Ids\022\016.context.Empty\032\026.context.ContextIdL" + "ist\"\000\0226\n\014ListContexts\022\016.context.Empty\032\024." + "context.ContextList\"\000\0224\n\nGetContext\022\022.co" + "ntext.ContextId\032\020.context.Context\"\000\0224\n\nS" + "etContext\022\020.context.Context\032\022.context.Co" + "ntextId\"\000\0225\n\rRemoveContext\022\022.context.Con" + "textId\032\016.context.Empty\"\000\022=\n\020GetContextEv" + "ents\022\016.context.Empty\032\025.context.ContextEv" + "ent\"\0000\001\022@\n\017ListTopologyIds\022\022.context.Con" + "textId\032\027.context.TopologyIdList\"\000\022=\n\016Lis" + "tTopologies\022\022.context.ContextId\032\025.contex" + "t.TopologyList\"\000\0227\n\013GetTopology\022\023.contex" + "t.TopologyId\032\021.context.Topology\"\000\022E\n\022Get" + "TopologyDetails\022\023.context.TopologyId\032\030.c" + "ontext.TopologyDetails\"\000\0227\n\013SetTopology\022" + "\021.context.Topology\032\023.context.TopologyId\"" + "\000\0227\n\016RemoveTopology\022\023.context.TopologyId" + "\032\016.context.Empty\"\000\022?\n\021GetTopologyEvents\022" + "\016.context.Empty\032\026.context.TopologyEvent\"" + "\0000\001\0228\n\rListDeviceIds\022\016.context.Empty\032\025.c" + "ontext.DeviceIdList\"\000\0224\n\013ListDevices\022\016.c" + "ontext.Empty\032\023.context.DeviceList\"\000\0221\n\tG" + "etDevice\022\021.context.DeviceId\032\017.context.De" + "vice\"\000\0221\n\tSetDevice\022\017.context.Device\032\021.c" + "ontext.DeviceId\"\000\0223\n\014RemoveDevice\022\021.cont" + "ext.DeviceId\032\016.context.Empty\"\000\022;\n\017GetDev" + "iceEvents\022\016.context.Empty\032\024.context.Devi" + "ceEvent\"\0000\001\022<\n\014SelectDevice\022\025.context.De" + "viceFilter\032\023.context.DeviceList\"\000\022I\n\021Lis" + "tEndPointNames\022\027.context.EndPointIdList\032" + "\031.context.EndPointNameList\"\000\0224\n\013ListLink" + "Ids\022\016.context.Empty\032\023.context.LinkIdList" + "\"\000\0220\n\tListLinks\022\016.context.Empty\032\021.contex" + "t.LinkList\"\000\022+\n\007GetLink\022\017.context.LinkId" + "\032\r.context.Link\"\000\022+\n\007SetLink\022\r.context.L" + "ink\032\017.context.LinkId\"\000\022/\n\nRemoveLink\022\017.c" + "ontext.LinkId\032\016.context.Empty\"\000\0227\n\rGetLi" + "nkEvents\022\016.context.Empty\032\022.context.LinkE" + "vent\"\0000\001\022>\n\016ListServiceIds\022\022.context.Con" + "textId\032\026.context.ServiceIdList\"\000\022:\n\014List" + "Services\022\022.context.ContextId\032\024.context.S" + "erviceList\"\000\0224\n\nGetService\022\022.context.Ser" + "viceId\032\020.context.Service\"\000\0224\n\nSetService" + "\022\020.context.Service\032\022.context.ServiceId\"\000" + "\0226\n\014UnsetService\022\020.context.Service\032\022.con" + "text.ServiceId\"\000\0225\n\rRemoveService\022\022.cont" + "ext.ServiceId\032\016.context.Empty\"\000\022=\n\020GetSe" + "rviceEvents\022\016.context.Empty\032\025.context.Se" + "rviceEvent\"\0000\001\022?\n\rSelectService\022\026.contex" + "t.ServiceFilter\032\024.context.ServiceList\"\000\022" + ":\n\014ListSliceIds\022\022.context.ContextId\032\024.co" + "ntext.SliceIdList\"\000\0226\n\nListSlices\022\022.cont" + "ext.ContextId\032\022.context.SliceList\"\000\022.\n\010G" + "etSlice\022\020.context.SliceId\032\016.context.Slic" + "e\"\000\022.\n\010SetSlice\022\016.context.Slice\032\020.contex" + "t.SliceId\"\000\0220\n\nUnsetSlice\022\016.context.Slic" + "e\032\020.context.SliceId\"\000\0221\n\013RemoveSlice\022\020.c" + "ontext.SliceId\032\016.context.Empty\"\000\0229\n\016GetS" + "liceEvents\022\016.context.Empty\032\023.context.Sli" + "ceEvent\"\0000\001\0229\n\013SelectSlice\022\024.context.Sli" + "ceFilter\032\022.context.SliceList\"\000\022D\n\021ListCo" + "nnectionIds\022\022.context.ServiceId\032\031.contex" + "t.ConnectionIdList\"\000\022@\n\017ListConnections\022" + "\022.context.ServiceId\032\027.context.Connection" + "List\"\000\022=\n\rGetConnection\022\025.context.Connec" + "tionId\032\023.context.Connection\"\000\022=\n\rSetConn" + "ection\022\023.context.Connection\032\025.context.Co" + "nnectionId\"\000\022;\n\020RemoveConnection\022\025.conte" + "xt.ConnectionId\032\016.context.Empty\"\000\022C\n\023Get" + "ConnectionEvents\022\016.context.Empty\032\030.conte" + "xt.ConnectionEvent\"\0000\001\022@\n\020GetOpticalConf" + "ig\022\016.context.Empty\032\032.context.OpticalConf" + "igList\"\000\022F\n\020SetOpticalConfig\022\026.context.O" + "pticalConfig\032\030.context.OpticalConfigId\"\000" + "\022I\n\023UpdateOpticalConfig\022\026.context.Optica" + "lConfig\032\030.context.OpticalConfigId\"\000\022I\n\023S" + "electOpticalConfig\022\030.context.OpticalConf" + "igId\032\026.context.OpticalConfig\"\000\022A\n\023Delete" + "OpticalConfig\022\030.context.OpticalConfigId\032" + "\016.context.Empty\"\000\022@\n\024DeleteOpticalChanne" + "l\022\026.context.OpticalConfig\032\016.context.Empt" + "y\"\000\0228\n\016SetOpticalLink\022\024.context.OpticalL" + "ink\032\016.context.Empty\"\000\0229\n\016GetOpticalLink\022" + "\017.context.LinkId\032\024.context.OpticalLink\"\000" + "\0226\n\021DeleteOpticalLink\022\017.context.LinkId\032\016" + ".context.Empty\"\000\022@\n\022GetOpticalLinkList\022\016" + ".context.Empty\032\030.context.OpticalLinkList" + "\"\000\022G\n\027DeleteServiceConfigRule\022\032.context." + "ServiceConfigRule\032\016.context.Empty\"\000b\006pro", "to3" }; + java.lang.String[] descriptorData = { "\n\rcontext.proto\022\007context\032\031google/protobu" + "f/any.proto\032\tacl.proto\032\026kpi_sample_types" + ".proto\"\007\n\005Empty\"\024\n\004Uuid\022\014\n\004uuid\030\001 \001(\t\"\036\n" + "\tTimestamp\022\021\n\ttimestamp\030\001 \001(\001\"Z\n\005Event\022%" + "\n\ttimestamp\030\001 \001(\0132\022.context.Timestamp\022*\n" + "\nevent_type\030\002 \001(\0162\026.context.EventTypeEnu" + "m\"0\n\tContextId\022#\n\014context_uuid\030\001 \001(\0132\r.c" + "ontext.Uuid\"\351\001\n\007Context\022&\n\ncontext_id\030\001 " + "\001(\0132\022.context.ContextId\022\014\n\004name\030\002 \001(\t\022)\n" + "\014topology_ids\030\003 \003(\0132\023.context.TopologyId" + "\022\'\n\013service_ids\030\004 \003(\0132\022.context.ServiceI" + "d\022#\n\tslice_ids\030\005 \003(\0132\020.context.SliceId\022/" + "\n\ncontroller\030\006 \001(\0132\033.context.TeraFlowCon" + "troller\"8\n\rContextIdList\022\'\n\013context_ids\030" + "\001 \003(\0132\022.context.ContextId\"1\n\013ContextList" + "\022\"\n\010contexts\030\001 \003(\0132\020.context.Context\"U\n\014" + "ContextEvent\022\035\n\005event\030\001 \001(\0132\016.context.Ev" + "ent\022&\n\ncontext_id\030\002 \001(\0132\022.context.Contex" + "tId\"Z\n\nTopologyId\022&\n\ncontext_id\030\001 \001(\0132\022." + "context.ContextId\022$\n\rtopology_uuid\030\002 \001(\013" + "2\r.context.Uuid\"\267\001\n\010Topology\022(\n\013topology" + "_id\030\001 \001(\0132\023.context.TopologyId\022\014\n\004name\030\002" + " \001(\t\022%\n\ndevice_ids\030\003 \003(\0132\021.context.Devic" + "eId\022!\n\010link_ids\030\004 \003(\0132\017.context.LinkId\022)" + "\n\020optical_link_ids\030\005 \003(\0132\017.context.LinkI" + "d\"\266\001\n\017TopologyDetails\022(\n\013topology_id\030\001 \001" + "(\0132\023.context.TopologyId\022\014\n\004name\030\002 \001(\t\022 \n" + "\007devices\030\003 \003(\0132\017.context.Device\022\034\n\005links" + "\030\004 \003(\0132\r.context.Link\022+\n\roptical_links\030\005" + " \003(\0132\024.context.OpticalLink\";\n\016TopologyId" + "List\022)\n\014topology_ids\030\001 \003(\0132\023.context.Top" + "ologyId\"5\n\014TopologyList\022%\n\ntopologies\030\001 " + "\003(\0132\021.context.Topology\"X\n\rTopologyEvent\022" + "\035\n\005event\030\001 \001(\0132\016.context.Event\022(\n\013topolo" + "gy_id\030\002 \001(\0132\023.context.TopologyId\".\n\010Devi" + "ceId\022\"\n\013device_uuid\030\001 \001(\0132\r.context.Uuid" + "\"\372\002\n\006Device\022$\n\tdevice_id\030\001 \001(\0132\021.context" + ".DeviceId\022\014\n\004name\030\002 \001(\t\022\023\n\013device_type\030\003" + " \001(\t\022,\n\rdevice_config\030\004 \001(\0132\025.context.De" + "viceConfig\022G\n\031device_operational_status\030" + "\005 \001(\0162$.context.DeviceOperationalStatusE" + "num\0221\n\016device_drivers\030\006 \003(\0162\031.context.De" + "viceDriverEnum\022+\n\020device_endpoints\030\007 \003(\013" + "2\021.context.EndPoint\022&\n\ncomponents\030\010 \003(\0132" + "\022.context.Component\022(\n\rcontroller_id\030\t \001" + "(\0132\021.context.DeviceId\"\311\001\n\tComponent\022%\n\016c" + "omponent_uuid\030\001 \001(\0132\r.context.Uuid\022\014\n\004na" + "me\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\0226\n\nattributes\030\004 \003" + "(\0132\".context.Component.AttributesEntry\022\016" + "\n\006parent\030\005 \001(\t\0321\n\017AttributesEntry\022\013\n\003key" + "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"9\n\014DeviceConfi" + "g\022)\n\014config_rules\030\001 \003(\0132\023.context.Config" + "Rule\"5\n\014DeviceIdList\022%\n\ndevice_ids\030\001 \003(\013" + "2\021.context.DeviceId\".\n\nDeviceList\022 \n\007dev" + "ices\030\001 \003(\0132\017.context.Device\"\216\001\n\014DeviceFi" + "lter\022)\n\ndevice_ids\030\001 \001(\0132\025.context.Devic" + "eIdList\022\031\n\021include_endpoints\030\002 \001(\010\022\034\n\024in" + "clude_config_rules\030\003 \001(\010\022\032\n\022include_comp" + "onents\030\004 \001(\010\"\200\001\n\013DeviceEvent\022\035\n\005event\030\001 " + "\001(\0132\016.context.Event\022$\n\tdevice_id\030\002 \001(\0132\021" + ".context.DeviceId\022,\n\rdevice_config\030\003 \001(\013" + "2\025.context.DeviceConfig\"*\n\006LinkId\022 \n\tlin" + "k_uuid\030\001 \001(\0132\r.context.Uuid\"I\n\016LinkAttri" + "butes\022\033\n\023total_capacity_gbps\030\001 \001(\002\022\032\n\022us" + "ed_capacity_gbps\030\002 \001(\002\"\275\001\n\004Link\022 \n\007link_" + "id\030\001 \001(\0132\017.context.LinkId\022\014\n\004name\030\002 \001(\t\022" + "(\n\tlink_type\030\003 \001(\0162\025.context.LinkTypeEnu" + "m\022.\n\021link_endpoint_ids\030\004 \003(\0132\023.context.E" + "ndPointId\022+\n\nattributes\030\005 \001(\0132\027.context." + "LinkAttributes\"/\n\nLinkIdList\022!\n\010link_ids" + "\030\001 \003(\0132\017.context.LinkId\"(\n\010LinkList\022\034\n\005l" + "inks\030\001 \003(\0132\r.context.Link\"L\n\tLinkEvent\022\035" + "\n\005event\030\001 \001(\0132\016.context.Event\022 \n\007link_id" + "\030\002 \001(\0132\017.context.LinkId\"X\n\tServiceId\022&\n\n" + "context_id\030\001 \001(\0132\022.context.ContextId\022#\n\014" + "service_uuid\030\002 \001(\0132\r.context.Uuid\"\333\002\n\007Se" + "rvice\022&\n\nservice_id\030\001 \001(\0132\022.context.Serv" + "iceId\022\014\n\004name\030\002 \001(\t\022.\n\014service_type\030\003 \001(" + "\0162\030.context.ServiceTypeEnum\0221\n\024service_e" + "ndpoint_ids\030\004 \003(\0132\023.context.EndPointId\0220" + "\n\023service_constraints\030\005 \003(\0132\023.context.Co" + "nstraint\022.\n\016service_status\030\006 \001(\0132\026.conte" + "xt.ServiceStatus\022.\n\016service_config\030\007 \001(\013" + "2\026.context.ServiceConfig\022%\n\ttimestamp\030\010 " + "\001(\0132\022.context.Timestamp\"C\n\rServiceStatus" + "\0222\n\016service_status\030\001 \001(\0162\032.context.Servi" + "ceStatusEnum\":\n\rServiceConfig\022)\n\014config_" + "rules\030\001 \003(\0132\023.context.ConfigRule\"8\n\rServ" + "iceIdList\022\'\n\013service_ids\030\001 \003(\0132\022.context" + ".ServiceId\"1\n\013ServiceList\022\"\n\010services\030\001 " + "\003(\0132\020.context.Service\"\225\001\n\rServiceFilter\022" + "+\n\013service_ids\030\001 \001(\0132\026.context.ServiceId" + "List\022\034\n\024include_endpoint_ids\030\002 \001(\010\022\033\n\023in" + "clude_constraints\030\003 \001(\010\022\034\n\024include_confi" + "g_rules\030\004 \001(\010\"U\n\014ServiceEvent\022\035\n\005event\030\001" + " \001(\0132\016.context.Event\022&\n\nservice_id\030\002 \001(\013" + "2\022.context.ServiceId\"T\n\007SliceId\022&\n\nconte" + "xt_id\030\001 \001(\0132\022.context.ContextId\022!\n\nslice" + "_uuid\030\002 \001(\0132\r.context.Uuid\"\240\003\n\005Slice\022\"\n\010" + "slice_id\030\001 \001(\0132\020.context.SliceId\022\014\n\004name" + "\030\002 \001(\t\022/\n\022slice_endpoint_ids\030\003 \003(\0132\023.con" + "text.EndPointId\022.\n\021slice_constraints\030\004 \003" + "(\0132\023.context.Constraint\022-\n\021slice_service" + "_ids\030\005 \003(\0132\022.context.ServiceId\022,\n\022slice_" + "subslice_ids\030\006 \003(\0132\020.context.SliceId\022*\n\014" + "slice_status\030\007 \001(\0132\024.context.SliceStatus" + "\022*\n\014slice_config\030\010 \001(\0132\024.context.SliceCo" + "nfig\022(\n\013slice_owner\030\t \001(\0132\023.context.Slic" + "eOwner\022%\n\ttimestamp\030\n \001(\0132\022.context.Time" + "stamp\"E\n\nSliceOwner\022!\n\nowner_uuid\030\001 \001(\0132" + "\r.context.Uuid\022\024\n\014owner_string\030\002 \001(\t\"=\n\013" + "SliceStatus\022.\n\014slice_status\030\001 \001(\0162\030.cont" + "ext.SliceStatusEnum\"8\n\013SliceConfig\022)\n\014co" + "nfig_rules\030\001 \003(\0132\023.context.ConfigRule\"2\n" + "\013SliceIdList\022#\n\tslice_ids\030\001 \003(\0132\020.contex" + "t.SliceId\"+\n\tSliceList\022\036\n\006slices\030\001 \003(\0132\016" + ".context.Slice\"\312\001\n\013SliceFilter\022\'\n\tslice_" + "ids\030\001 \001(\0132\024.context.SliceIdList\022\034\n\024inclu" + "de_endpoint_ids\030\002 \001(\010\022\033\n\023include_constra" + "ints\030\003 \001(\010\022\033\n\023include_service_ids\030\004 \001(\010\022" + "\034\n\024include_subslice_ids\030\005 \001(\010\022\034\n\024include" + "_config_rules\030\006 \001(\010\"O\n\nSliceEvent\022\035\n\005eve" + "nt\030\001 \001(\0132\016.context.Event\022\"\n\010slice_id\030\002 \001" + "(\0132\020.context.SliceId\"6\n\014ConnectionId\022&\n\017" + "connection_uuid\030\001 \001(\0132\r.context.Uuid\"2\n\025" + "ConnectionSettings_L0\022\031\n\021lsp_symbolic_na" + "me\030\001 \001(\t\"\236\001\n\025ConnectionSettings_L2\022\027\n\017sr" + "c_mac_address\030\001 \001(\t\022\027\n\017dst_mac_address\030\002" + " \001(\t\022\022\n\nether_type\030\003 \001(\r\022\017\n\007vlan_id\030\004 \001(" + "\r\022\022\n\nmpls_label\030\005 \001(\r\022\032\n\022mpls_traffic_cl" + "ass\030\006 \001(\r\"t\n\025ConnectionSettings_L3\022\026\n\016sr" + "c_ip_address\030\001 \001(\t\022\026\n\016dst_ip_address\030\002 \001" + "(\t\022\014\n\004dscp\030\003 \001(\r\022\020\n\010protocol\030\004 \001(\r\022\013\n\003tt" + "l\030\005 \001(\r\"[\n\025ConnectionSettings_L4\022\020\n\010src_" + "port\030\001 \001(\r\022\020\n\010dst_port\030\002 \001(\r\022\021\n\ttcp_flag" + "s\030\003 \001(\r\022\013\n\003ttl\030\004 \001(\r\"\304\001\n\022ConnectionSetti" + "ngs\022*\n\002l0\030\001 \001(\0132\036.context.ConnectionSett" + "ings_L0\022*\n\002l2\030\002 \001(\0132\036.context.Connection" + "Settings_L2\022*\n\002l3\030\003 \001(\0132\036.context.Connec" + "tionSettings_L3\022*\n\002l4\030\004 \001(\0132\036.context.Co" + "nnectionSettings_L4\"\363\001\n\nConnection\022,\n\rco" + "nnection_id\030\001 \001(\0132\025.context.ConnectionId" + "\022&\n\nservice_id\030\002 \001(\0132\022.context.ServiceId" + "\0223\n\026path_hops_endpoint_ids\030\003 \003(\0132\023.conte" + "xt.EndPointId\022+\n\017sub_service_ids\030\004 \003(\0132\022" + ".context.ServiceId\022-\n\010settings\030\005 \001(\0132\033.c" + "ontext.ConnectionSettings\"A\n\020ConnectionI" + "dList\022-\n\016connection_ids\030\001 \003(\0132\025.context." + "ConnectionId\":\n\016ConnectionList\022(\n\013connec" + "tions\030\001 \003(\0132\023.context.Connection\"^\n\017Conn" + "ectionEvent\022\035\n\005event\030\001 \001(\0132\016.context.Eve" + "nt\022,\n\rconnection_id\030\002 \001(\0132\025.context.Conn" + "ectionId\"\202\001\n\nEndPointId\022(\n\013topology_id\030\001" + " \001(\0132\023.context.TopologyId\022$\n\tdevice_id\030\002" + " \001(\0132\021.context.DeviceId\022$\n\rendpoint_uuid" + "\030\003 \001(\0132\r.context.Uuid\"\310\002\n\010EndPoint\022(\n\013en" + "dpoint_id\030\001 \001(\0132\023.context.EndPointId\022\014\n\004" + "name\030\002 \001(\t\022\025\n\rendpoint_type\030\003 \001(\t\0229\n\020kpi" + "_sample_types\030\004 \003(\0162\037.kpi_sample_types.K" + "piSampleType\022,\n\021endpoint_location\030\005 \001(\0132" + "\021.context.Location\0229\n\014capabilities\030\006 \003(\013" + "2#.context.EndPoint.CapabilitiesEntry\032I\n" + "\021CapabilitiesEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value" + "\030\002 \001(\0132\024.google.protobuf.Any:\0028\001\"{\n\014EndP" + "ointName\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022\023\n\013device_name\030\002 \001(\t\022\025\n\rendpo" + "int_name\030\003 \001(\t\022\025\n\rendpoint_type\030\004 \001(\t\";\n" + "\016EndPointIdList\022)\n\014endpoint_ids\030\001 \003(\0132\023." + "context.EndPointId\"A\n\020EndPointNameList\022-" + "\n\016endpoint_names\030\001 \003(\0132\025.context.EndPoin" + "tName\"A\n\021ConfigRule_Custom\022\024\n\014resource_k" + "ey\030\001 \001(\t\022\026\n\016resource_value\030\002 \001(\t\"]\n\016Conf" + "igRule_ACL\022(\n\013endpoint_id\030\001 \001(\0132\023.contex" + "t.EndPointId\022!\n\010rule_set\030\002 \001(\0132\017.acl.Acl" + "RuleSet\"\234\001\n\nConfigRule\022)\n\006action\030\001 \001(\0162\031" + ".context.ConfigActionEnum\022,\n\006custom\030\002 \001(" + "\0132\032.context.ConfigRule_CustomH\000\022&\n\003acl\030\003" + " \001(\0132\027.context.ConfigRule_ACLH\000B\r\n\013confi" + "g_rule\"F\n\021Constraint_Custom\022\027\n\017constrain" + "t_type\030\001 \001(\t\022\030\n\020constraint_value\030\002 \001(\t\"E" + "\n\023Constraint_Schedule\022\027\n\017start_timestamp" + "\030\001 \001(\001\022\025\n\rduration_days\030\002 \001(\002\"3\n\014GPS_Pos" + "ition\022\020\n\010latitude\030\001 \001(\002\022\021\n\tlongitude\030\002 \001" + "(\002\"\204\001\n\010Location\022\020\n\006region\030\001 \001(\tH\000\022-\n\014gps" + "_position\030\002 \001(\0132\025.context.GPS_PositionH\000" + "\022\023\n\tinterface\030\003 \001(\tH\000\022\026\n\014circuit_pack\030\004 " + "\001(\tH\000B\n\n\010location\"l\n\033Constraint_EndPoint" + "Location\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022#\n\010location\030\002 \001(\0132\021.context.L" + "ocation\"Y\n\033Constraint_EndPointPriority\022(" + "\n\013endpoint_id\030\001 \001(\0132\023.context.EndPointId" + "\022\020\n\010priority\030\002 \001(\r\"0\n\026Constraint_SLA_Lat" + "ency\022\026\n\016e2e_latency_ms\030\001 \001(\002\"0\n\027Constrai" + "nt_SLA_Capacity\022\025\n\rcapacity_gbps\030\001 \001(\002\"c" + "\n\033Constraint_SLA_Availability\022\032\n\022num_dis" + "joint_paths\030\001 \001(\r\022\022\n\nall_active\030\002 \001(\010\022\024\n" + "\014availability\030\003 \001(\002\"V\n\036Constraint_SLA_Is" + "olation_level\0224\n\017isolation_level\030\001 \003(\0162\033" + ".context.IsolationLevelEnum\"\242\001\n\025Constrai" + "nt_Exclusions\022\024\n\014is_permanent\030\001 \001(\010\022%\n\nd" + "evice_ids\030\002 \003(\0132\021.context.DeviceId\022)\n\014en" + "dpoint_ids\030\003 \003(\0132\023.context.EndPointId\022!\n" + "\010link_ids\030\004 \003(\0132\017.context.LinkId\"5\n\014QoSP" + "rofileId\022%\n\016qos_profile_id\030\001 \001(\0132\r.conte" + "xt.Uuid\"`\n\025Constraint_QoSProfile\022-\n\016qos_" + "profile_id\030\001 \001(\0132\025.context.QoSProfileId\022" + "\030\n\020qos_profile_name\030\002 \001(\t\"\222\005\n\nConstraint" + "\022-\n\006action\030\001 \001(\0162\035.context.ConstraintAct" + "ionEnum\022,\n\006custom\030\002 \001(\0132\032.context.Constr" + "aint_CustomH\000\0220\n\010schedule\030\003 \001(\0132\034.contex" + "t.Constraint_ScheduleH\000\022A\n\021endpoint_loca" + "tion\030\004 \001(\0132$.context.Constraint_EndPoint" + "LocationH\000\022A\n\021endpoint_priority\030\005 \001(\0132$." + "context.Constraint_EndPointPriorityH\000\0228\n" + "\014sla_capacity\030\006 \001(\0132 .context.Constraint" + "_SLA_CapacityH\000\0226\n\013sla_latency\030\007 \001(\0132\037.c" + "ontext.Constraint_SLA_LatencyH\000\022@\n\020sla_a" + "vailability\030\010 \001(\0132$.context.Constraint_S" + "LA_AvailabilityH\000\022@\n\rsla_isolation\030\t \001(\013" + "2\'.context.Constraint_SLA_Isolation_leve" + "lH\000\0224\n\nexclusions\030\n \001(\0132\036.context.Constr" + "aint_ExclusionsH\000\0225\n\013qos_profile\030\013 \001(\0132\036" + ".context.Constraint_QoSProfileH\000B\014\n\ncons" + "traint\"^\n\022TeraFlowController\022&\n\ncontext_" + "id\030\001 \001(\0132\022.context.ContextId\022\022\n\nip_addre" + "ss\030\002 \001(\t\022\014\n\004port\030\003 \001(\r\"U\n\024Authentication" + "Result\022&\n\ncontext_id\030\001 \001(\0132\022.context.Con" + "textId\022\025\n\rauthenticated\030\002 \001(\010\"-\n\017Optical" + "ConfigId\022\032\n\022opticalconfig_uuid\030\001 \001(\t\"y\n\r" + "OpticalConfig\0222\n\020opticalconfig_id\030\001 \001(\0132" + "\030.context.OpticalConfigId\022\016\n\006config\030\002 \001(" + "\t\022$\n\tdevice_id\030\003 \001(\0132\021.context.DeviceId\"" + "C\n\021OpticalConfigList\022.\n\016opticalconfigs\030\001" + " \003(\0132\026.context.OpticalConfig\"g\n\022OpticalC" + "onfigEvent\022\035\n\005event\030\001 \001(\0132\016.context.Even" + "t\0222\n\020opticalconfig_id\030\002 \001(\0132\030.context.Op" + "ticalConfigId\"_\n\021OpticalEndPointId\022$\n\tde" + "vice_id\030\002 \001(\0132\021.context.DeviceId\022$\n\rendp" + "oint_uuid\030\003 \001(\0132\r.context.Uuid\">\n\017Optica" + "lLinkList\022+\n\roptical_links\030\001 \003(\0132\024.conte" + "xt.OpticalLink\"\304\003\n\022OpticalLinkDetails\022\016\n" + "\006length\030\001 \001(\002\022\020\n\010src_port\030\002 \001(\t\022\020\n\010dst_p" + "ort\030\003 \001(\t\022\027\n\017local_peer_port\030\004 \001(\t\022\030\n\020re" + "mote_peer_port\030\005 \001(\t\022\014\n\004used\030\006 \001(\010\0228\n\007c_" + "slots\030\007 \003(\0132\'.context.OpticalLinkDetails" + ".CSlotsEntry\0228\n\007l_slots\030\010 \003(\0132\'.context." + "OpticalLinkDetails.LSlotsEntry\0228\n\007s_slot" + "s\030\t \003(\0132\'.context.OpticalLinkDetails.SSl" + "otsEntry\032-\n\013CSlotsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" + "value\030\002 \001(\005:\0028\001\032-\n\013LSlotsEntry\022\013\n\003key\030\001 " + "\001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\032-\n\013SSlotsEntry\022\013\n" + "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\"\243\001\n\013Optica" + "lLink\022\014\n\004name\030\001 \001(\t\0224\n\017optical_details\030\002" + " \001(\0132\033.context.OpticalLinkDetails\022 \n\007lin" + "k_id\030\003 \001(\0132\017.context.LinkId\022.\n\021link_endp" + "oint_ids\030\004 \003(\0132\023.context.EndPointId\"r\n\021S" + "erviceConfigRule\022&\n\nservice_id\030\001 \001(\0132\022.c" + "ontext.ServiceId\0225\n\021configrule_custom\030\002 " + "\001(\0132\032.context.ConfigRule_Custom*j\n\rEvent" + "TypeEnum\022\027\n\023EVENTTYPE_UNDEFINED\020\000\022\024\n\020EVE" + "NTTYPE_CREATE\020\001\022\024\n\020EVENTTYPE_UPDATE\020\002\022\024\n" + "\020EVENTTYPE_REMOVE\020\003*\232\004\n\020DeviceDriverEnum" + "\022\032\n\026DEVICEDRIVER_UNDEFINED\020\000\022\033\n\027DEVICEDR" + "IVER_OPENCONFIG\020\001\022\036\n\032DEVICEDRIVER_TRANSP" + "ORT_API\020\002\022\023\n\017DEVICEDRIVER_P4\020\003\022&\n\"DEVICE" + "DRIVER_IETF_NETWORK_TOPOLOGY\020\004\022\033\n\027DEVICE" + "DRIVER_ONF_TR_532\020\005\022\023\n\017DEVICEDRIVER_XR\020\006" + "\022\033\n\027DEVICEDRIVER_IETF_L2VPN\020\007\022 \n\034DEVICED" + "RIVER_GNMI_OPENCONFIG\020\010\022\034\n\030DEVICEDRIVER_" + "OPTICAL_TFS\020\t\022\032\n\026DEVICEDRIVER_IETF_ACTN\020" + "\n\022\023\n\017DEVICEDRIVER_OC\020\013\022\024\n\020DEVICEDRIVER_Q" + "KD\020\014\022\033\n\027DEVICEDRIVER_IETF_L3VPN\020\r\022\033\n\027DEV" + "ICEDRIVER_IETF_SLICE\020\016\022\024\n\020DEVICEDRIVER_N" + "CE\020\017\022\031\n\025DEVICEDRIVER_SMARTNIC\020\020\022\031\n\025DEVIC" + "EDRIVER_MORPHEUS\020\021\022\024\n\020DEVICEDRIVER_RYU\020\022" + "*\217\001\n\033DeviceOperationalStatusEnum\022%\n!DEVI" + "CEOPERATIONALSTATUS_UNDEFINED\020\000\022$\n DEVIC" + "EOPERATIONALSTATUS_DISABLED\020\001\022#\n\037DEVICEO" + "PERATIONALSTATUS_ENABLED\020\002*\220\001\n\014LinkTypeE" + "num\022\024\n\020LINKTYPE_UNKNOWN\020\000\022\023\n\017LINKTYPE_CO" + "PPER\020\001\022\022\n\016LINKTYPE_FIBER\020\002\022\022\n\016LINKTYPE_R" + "ADIO\020\003\022\024\n\020LINKTYPE_VIRTUAL\020\004\022\027\n\023LINKTYPE" + "_MANAGEMENT\020\005*\245\002\n\017ServiceTypeEnum\022\027\n\023SER" + "VICETYPE_UNKNOWN\020\000\022\024\n\020SERVICETYPE_L3NM\020\001" + "\022\024\n\020SERVICETYPE_L2NM\020\002\022)\n%SERVICETYPE_TA" + "PI_CONNECTIVITY_SERVICE\020\003\022\022\n\016SERVICETYPE" + "_TE\020\004\022\023\n\017SERVICETYPE_E2E\020\005\022$\n SERVICETYP" + "E_OPTICAL_CONNECTIVITY\020\006\022\023\n\017SERVICETYPE_" + "QKD\020\007\022\024\n\020SERVICETYPE_L1NM\020\010\022\023\n\017SERVICETY" + "PE_INT\020\t\022\023\n\017SERVICETYPE_ACL\020\n*\304\001\n\021Servic" + "eStatusEnum\022\033\n\027SERVICESTATUS_UNDEFINED\020\000" + "\022\031\n\025SERVICESTATUS_PLANNED\020\001\022\030\n\024SERVICEST" + "ATUS_ACTIVE\020\002\022\032\n\026SERVICESTATUS_UPDATING\020" + "\003\022!\n\035SERVICESTATUS_PENDING_REMOVAL\020\004\022\036\n\032" + "SERVICESTATUS_SLA_VIOLATED\020\005*\251\001\n\017SliceSt" + "atusEnum\022\031\n\025SLICESTATUS_UNDEFINED\020\000\022\027\n\023S" + "LICESTATUS_PLANNED\020\001\022\024\n\020SLICESTATUS_INIT" + "\020\002\022\026\n\022SLICESTATUS_ACTIVE\020\003\022\026\n\022SLICESTATU" + "S_DEINIT\020\004\022\034\n\030SLICESTATUS_SLA_VIOLATED\020\005" + "*]\n\020ConfigActionEnum\022\032\n\026CONFIGACTION_UND" + "EFINED\020\000\022\024\n\020CONFIGACTION_SET\020\001\022\027\n\023CONFIG" + "ACTION_DELETE\020\002*m\n\024ConstraintActionEnum\022" + "\036\n\032CONSTRAINTACTION_UNDEFINED\020\000\022\030\n\024CONST" + "RAINTACTION_SET\020\001\022\033\n\027CONSTRAINTACTION_DE" + "LETE\020\002*\203\002\n\022IsolationLevelEnum\022\020\n\014NO_ISOL" + "ATION\020\000\022\026\n\022PHYSICAL_ISOLATION\020\001\022\025\n\021LOGIC" + "AL_ISOLATION\020\002\022\025\n\021PROCESS_ISOLATION\020\003\022\035\n" + "\031PHYSICAL_MEMORY_ISOLATION\020\004\022\036\n\032PHYSICAL" + "_NETWORK_ISOLATION\020\005\022\036\n\032VIRTUAL_RESOURCE" + "_ISOLATION\020\006\022\037\n\033NETWORK_FUNCTIONS_ISOLAT" + "ION\020\007\022\025\n\021SERVICE_ISOLATION\020\0102\202\034\n\016Context" + "Service\022:\n\016ListContextIds\022\016.context.Empt" + "y\032\026.context.ContextIdList\"\000\0226\n\014ListConte" + "xts\022\016.context.Empty\032\024.context.ContextLis" + "t\"\000\0224\n\nGetContext\022\022.context.ContextId\032\020." + "context.Context\"\000\0224\n\nSetContext\022\020.contex" + "t.Context\032\022.context.ContextId\"\000\0225\n\rRemov" + "eContext\022\022.context.ContextId\032\016.context.E" + "mpty\"\000\022=\n\020GetContextEvents\022\016.context.Emp" + "ty\032\025.context.ContextEvent\"\0000\001\022@\n\017ListTop" + "ologyIds\022\022.context.ContextId\032\027.context.T" + "opologyIdList\"\000\022=\n\016ListTopologies\022\022.cont" + "ext.ContextId\032\025.context.TopologyList\"\000\0227" + "\n\013GetTopology\022\023.context.TopologyId\032\021.con" + "text.Topology\"\000\022E\n\022GetTopologyDetails\022\023." + "context.TopologyId\032\030.context.TopologyDet" + "ails\"\000\0227\n\013SetTopology\022\021.context.Topology" + "\032\023.context.TopologyId\"\000\0227\n\016RemoveTopolog" + "y\022\023.context.TopologyId\032\016.context.Empty\"\000" + "\022?\n\021GetTopologyEvents\022\016.context.Empty\032\026." + "context.TopologyEvent\"\0000\001\0228\n\rListDeviceI" + "ds\022\016.context.Empty\032\025.context.DeviceIdLis" + "t\"\000\0224\n\013ListDevices\022\016.context.Empty\032\023.con" + "text.DeviceList\"\000\0221\n\tGetDevice\022\021.context" + ".DeviceId\032\017.context.Device\"\000\0221\n\tSetDevic" + "e\022\017.context.Device\032\021.context.DeviceId\"\000\022" + "3\n\014RemoveDevice\022\021.context.DeviceId\032\016.con" + "text.Empty\"\000\022;\n\017GetDeviceEvents\022\016.contex" + "t.Empty\032\024.context.DeviceEvent\"\0000\001\022<\n\014Sel" + "ectDevice\022\025.context.DeviceFilter\032\023.conte" + "xt.DeviceList\"\000\022I\n\021ListEndPointNames\022\027.c" + "ontext.EndPointIdList\032\031.context.EndPoint" + "NameList\"\000\0224\n\013ListLinkIds\022\016.context.Empt" + "y\032\023.context.LinkIdList\"\000\0220\n\tListLinks\022\016." + "context.Empty\032\021.context.LinkList\"\000\022+\n\007Ge" + "tLink\022\017.context.LinkId\032\r.context.Link\"\000\022" + "+\n\007SetLink\022\r.context.Link\032\017.context.Link" + "Id\"\000\022/\n\nRemoveLink\022\017.context.LinkId\032\016.co" + "ntext.Empty\"\000\0227\n\rGetLinkEvents\022\016.context" + ".Empty\032\022.context.LinkEvent\"\0000\001\022>\n\016ListSe" + "rviceIds\022\022.context.ContextId\032\026.context.S" + "erviceIdList\"\000\022:\n\014ListServices\022\022.context" + ".ContextId\032\024.context.ServiceList\"\000\0224\n\nGe" + "tService\022\022.context.ServiceId\032\020.context.S" + "ervice\"\000\0224\n\nSetService\022\020.context.Service" + "\032\022.context.ServiceId\"\000\0226\n\014UnsetService\022\020" + ".context.Service\032\022.context.ServiceId\"\000\0225" + "\n\rRemoveService\022\022.context.ServiceId\032\016.co" + "ntext.Empty\"\000\022=\n\020GetServiceEvents\022\016.cont" + "ext.Empty\032\025.context.ServiceEvent\"\0000\001\022?\n\r" + "SelectService\022\026.context.ServiceFilter\032\024." + "context.ServiceList\"\000\022:\n\014ListSliceIds\022\022." + "context.ContextId\032\024.context.SliceIdList\"" + "\000\0226\n\nListSlices\022\022.context.ContextId\032\022.co" + "ntext.SliceList\"\000\022.\n\010GetSlice\022\020.context." + "SliceId\032\016.context.Slice\"\000\022.\n\010SetSlice\022\016." + "context.Slice\032\020.context.SliceId\"\000\0220\n\nUns" + "etSlice\022\016.context.Slice\032\020.context.SliceI" + "d\"\000\0221\n\013RemoveSlice\022\020.context.SliceId\032\016.c" + "ontext.Empty\"\000\0229\n\016GetSliceEvents\022\016.conte" + "xt.Empty\032\023.context.SliceEvent\"\0000\001\0229\n\013Sel" + "ectSlice\022\024.context.SliceFilter\032\022.context" + ".SliceList\"\000\022D\n\021ListConnectionIds\022\022.cont" + "ext.ServiceId\032\031.context.ConnectionIdList" + "\"\000\022@\n\017ListConnections\022\022.context.ServiceI" + "d\032\027.context.ConnectionList\"\000\022=\n\rGetConne" + "ction\022\025.context.ConnectionId\032\023.context.C" + "onnection\"\000\022=\n\rSetConnection\022\023.context.C" + "onnection\032\025.context.ConnectionId\"\000\022;\n\020Re" + "moveConnection\022\025.context.ConnectionId\032\016." + "context.Empty\"\000\022C\n\023GetConnectionEvents\022\016" + ".context.Empty\032\030.context.ConnectionEvent" + "\"\0000\001\022@\n\020GetOpticalConfig\022\016.context.Empty" + "\032\032.context.OpticalConfigList\"\000\022F\n\020SetOpt" + "icalConfig\022\026.context.OpticalConfig\032\030.con" + "text.OpticalConfigId\"\000\022I\n\023UpdateOpticalC" + "onfig\022\026.context.OpticalConfig\032\030.context." + "OpticalConfigId\"\000\022I\n\023SelectOpticalConfig" + "\022\030.context.OpticalConfigId\032\026.context.Opt" + "icalConfig\"\000\022A\n\023DeleteOpticalConfig\022\030.co" + "ntext.OpticalConfigId\032\016.context.Empty\"\000\022" + "@\n\024DeleteOpticalChannel\022\026.context.Optica" + "lConfig\032\016.context.Empty\"\000\0228\n\016SetOpticalL" + "ink\022\024.context.OpticalLink\032\016.context.Empt" + "y\"\000\0229\n\016GetOpticalLink\022\017.context.LinkId\032\024" + ".context.OpticalLink\"\000\0226\n\021DeleteOpticalL" + "ink\022\017.context.LinkId\032\016.context.Empty\"\000\022@" + "\n\022GetOpticalLinkList\022\016.context.Empty\032\030.c" + "ontext.OpticalLinkList\"\000\022G\n\027DeleteServic" + "eConfigRule\022\032.context.ServiceConfigRule\032", "\016.context.Empty\"\000b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.protobuf.AnyProto.getDescriptor(), acl.Acl.getDescriptor(), kpi_sample_types.KpiSampleTypes.getDescriptor() }); internal_static_context_Empty_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_context_Empty_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Empty_descriptor, new java.lang.String[] {}); diff --git a/src/policy/target/generated-sources/grpc/policy/Policy.java b/src/policy/target/generated-sources/grpc/policy/Policy.java index 30aa624d4..04d033e66 100644 --- a/src/policy/target/generated-sources/grpc/policy/Policy.java +++ b/src/policy/target/generated-sources/grpc/policy/Policy.java @@ -1510,111 +1510,75 @@ public final class Policy { /** *
-         * Event-Condition-Action (ECA) model
-         * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - java.util.List getConditionListList(); - - /** - *
-         * Event-Condition-Action (ECA) model
+         * to be migrated to: "kpi_manager.KpiId"
          * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; + * @return Whether the kpiId field is set. */ - policy.PolicyCondition.PolicyRuleCondition getConditionList(int index); + boolean hasKpiId(); /** *
-         * Event-Condition-Action (ECA) model
+         * to be migrated to: "kpi_manager.KpiId"
          * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; + * @return The kpiId. */ - int getConditionListCount(); + monitoring.Monitoring.KpiId getKpiId(); /** *
-         * Event-Condition-Action (ECA) model
+         * to be migrated to: "kpi_manager.KpiId"
          * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; */ - java.util.List getConditionListOrBuilderList(); + monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder(); /** *
          * Event-Condition-Action (ECA) model
          * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - policy.PolicyCondition.PolicyRuleConditionOrBuilder getConditionListOrBuilder(int index); - - /** - *
-         * Evaluation operator to be used
-         * 
- * - * .policy.BooleanOperator booleanOperator = 5; - * @return The enum numeric value on the wire for booleanOperator. - */ - int getBooleanOperatorValue(); - - /** - *
-         * Evaluation operator to be used
-         * 
- * - * .policy.BooleanOperator booleanOperator = 5; - * @return The booleanOperator. - */ - policy.PolicyCondition.BooleanOperator getBooleanOperator(); - - /** - *
-         * One or more actions should be applied
-         * 
- * - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ java.util.List getActionListList(); /** *
-         * One or more actions should be applied
+         * Event-Condition-Action (ECA) model
          * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ policy.PolicyAction.PolicyRuleAction getActionList(int index); /** *
-         * One or more actions should be applied
+         * Event-Condition-Action (ECA) model
          * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ int getActionListCount(); /** *
-         * One or more actions should be applied
+         * Event-Condition-Action (ECA) model
          * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ java.util.List getActionListOrBuilderList(); /** *
-         * One or more actions should be applied
+         * Event-Condition-Action (ECA) model
          * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ policy.PolicyAction.PolicyRuleActionOrBuilder getActionListOrBuilder(int index); } @@ -1637,8 +1601,6 @@ public final class Policy { } private PolicyRuleBasic() { - conditionList_ = java.util.Collections.emptyList(); - booleanOperator_ = 0; actionList_ = java.util.Collections.emptyList(); } @@ -1742,113 +1704,59 @@ public final class Policy { return priority_; } - public static final int CONDITIONLIST_FIELD_NUMBER = 4; + public static final int KPIID_FIELD_NUMBER = 4; - @SuppressWarnings("serial") - private java.util.List conditionList_; + private monitoring.Monitoring.KpiId kpiId_; /** *
-         * Event-Condition-Action (ECA) model
+         * to be migrated to: "kpi_manager.KpiId"
          * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; + * @return Whether the kpiId field is set. */ @java.lang.Override - public java.util.List getConditionListList() { - return conditionList_; + public boolean hasKpiId() { + return kpiId_ != null; } /** *
-         * Event-Condition-Action (ECA) model
+         * to be migrated to: "kpi_manager.KpiId"
          * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; + * @return The kpiId. */ @java.lang.Override - public java.util.List getConditionListOrBuilderList() { - return conditionList_; + public monitoring.Monitoring.KpiId getKpiId() { + return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; } /** *
-         * Event-Condition-Action (ECA) model
+         * to be migrated to: "kpi_manager.KpiId"
          * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; */ @java.lang.Override - public int getConditionListCount() { - return conditionList_.size(); + public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() { + return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; } - /** - *
-         * Event-Condition-Action (ECA) model
-         * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - @java.lang.Override - public policy.PolicyCondition.PolicyRuleCondition getConditionList(int index) { - return conditionList_.get(index); - } - - /** - *
-         * Event-Condition-Action (ECA) model
-         * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - @java.lang.Override - public policy.PolicyCondition.PolicyRuleConditionOrBuilder getConditionListOrBuilder(int index) { - return conditionList_.get(index); - } - - public static final int BOOLEANOPERATOR_FIELD_NUMBER = 5; - - private int booleanOperator_ = 0; - - /** - *
-         * Evaluation operator to be used
-         * 
- * - * .policy.BooleanOperator booleanOperator = 5; - * @return The enum numeric value on the wire for booleanOperator. - */ - @java.lang.Override - public int getBooleanOperatorValue() { - return booleanOperator_; - } - - /** - *
-         * Evaluation operator to be used
-         * 
- * - * .policy.BooleanOperator booleanOperator = 5; - * @return The booleanOperator. - */ - @java.lang.Override - public policy.PolicyCondition.BooleanOperator getBooleanOperator() { - policy.PolicyCondition.BooleanOperator result = policy.PolicyCondition.BooleanOperator.forNumber(booleanOperator_); - return result == null ? policy.PolicyCondition.BooleanOperator.UNRECOGNIZED : result; - } - - public static final int ACTIONLIST_FIELD_NUMBER = 6; + public static final int ACTIONLIST_FIELD_NUMBER = 5; @SuppressWarnings("serial") private java.util.List actionList_; /** *
-         * One or more actions should be applied
+         * Event-Condition-Action (ECA) model
          * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ @java.lang.Override public java.util.List getActionListList() { @@ -1857,10 +1765,10 @@ public final class Policy { /** *
-         * One or more actions should be applied
+         * Event-Condition-Action (ECA) model
          * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ @java.lang.Override public java.util.List getActionListOrBuilderList() { @@ -1869,10 +1777,10 @@ public final class Policy { /** *
-         * One or more actions should be applied
+         * Event-Condition-Action (ECA) model
          * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ @java.lang.Override public int getActionListCount() { @@ -1881,10 +1789,10 @@ public final class Policy { /** *
-         * One or more actions should be applied
+         * Event-Condition-Action (ECA) model
          * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ @java.lang.Override public policy.PolicyAction.PolicyRuleAction getActionList(int index) { @@ -1893,10 +1801,10 @@ public final class Policy { /** *
-         * One or more actions should be applied
+         * Event-Condition-Action (ECA) model
          * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ @java.lang.Override public policy.PolicyAction.PolicyRuleActionOrBuilder getActionListOrBuilder(int index) { @@ -1927,14 +1835,11 @@ public final class Policy { if (priority_ != 0) { output.writeUInt32(3, priority_); } - for (int i = 0; i < conditionList_.size(); i++) { - output.writeMessage(4, conditionList_.get(i)); - } - if (booleanOperator_ != policy.PolicyCondition.BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED.getNumber()) { - output.writeEnum(5, booleanOperator_); + if (kpiId_ != null) { + output.writeMessage(4, getKpiId()); } for (int i = 0; i < actionList_.size(); i++) { - output.writeMessage(6, actionList_.get(i)); + output.writeMessage(5, actionList_.get(i)); } getUnknownFields().writeTo(output); } @@ -1954,14 +1859,11 @@ public final class Policy { if (priority_ != 0) { size += com.google.protobuf.CodedOutputStream.computeUInt32Size(3, priority_); } - for (int i = 0; i < conditionList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, conditionList_.get(i)); - } - if (booleanOperator_ != policy.PolicyCondition.BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED.getNumber()) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(5, booleanOperator_); + if (kpiId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getKpiId()); } for (int i = 0; i < actionList_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, actionList_.get(i)); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, actionList_.get(i)); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -1991,10 +1893,12 @@ public final class Policy { } if (getPriority() != other.getPriority()) return false; - if (!getConditionListList().equals(other.getConditionListList())) - return false; - if (booleanOperator_ != other.booleanOperator_) + if (hasKpiId() != other.hasKpiId()) return false; + if (hasKpiId()) { + if (!getKpiId().equals(other.getKpiId())) + return false; + } if (!getActionListList().equals(other.getActionListList())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) @@ -2019,12 +1923,10 @@ public final class Policy { } hash = (37 * hash) + PRIORITY_FIELD_NUMBER; hash = (53 * hash) + getPriority(); - if (getConditionListCount() > 0) { - hash = (37 * hash) + CONDITIONLIST_FIELD_NUMBER; - hash = (53 * hash) + getConditionListList().hashCode(); + if (hasKpiId()) { + hash = (37 * hash) + KPIID_FIELD_NUMBER; + hash = (53 * hash) + getKpiId().hashCode(); } - hash = (37 * hash) + BOOLEANOPERATOR_FIELD_NUMBER; - hash = (53 * hash) + booleanOperator_; if (getActionListCount() > 0) { hash = (37 * hash) + ACTIONLIST_FIELD_NUMBER; hash = (53 * hash) + getActionListList().hashCode(); @@ -2148,21 +2050,18 @@ public final class Policy { policyRuleStateBuilder_ = null; } priority_ = 0; - if (conditionListBuilder_ == null) { - conditionList_ = java.util.Collections.emptyList(); - } else { - conditionList_ = null; - conditionListBuilder_.clear(); + kpiId_ = null; + if (kpiIdBuilder_ != null) { + kpiIdBuilder_.dispose(); + kpiIdBuilder_ = null; } - bitField0_ = (bitField0_ & ~0x00000008); - booleanOperator_ = 0; if (actionListBuilder_ == null) { actionList_ = java.util.Collections.emptyList(); } else { actionList_ = null; actionListBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -2197,19 +2096,10 @@ public final class Policy { } private void buildPartialRepeatedFields(policy.Policy.PolicyRuleBasic result) { - if (conditionListBuilder_ == null) { - if (((bitField0_ & 0x00000008) != 0)) { - conditionList_ = java.util.Collections.unmodifiableList(conditionList_); - bitField0_ = (bitField0_ & ~0x00000008); - } - result.conditionList_ = conditionList_; - } else { - result.conditionList_ = conditionListBuilder_.build(); - } if (actionListBuilder_ == null) { - if (((bitField0_ & 0x00000020) != 0)) { + if (((bitField0_ & 0x00000010) != 0)) { actionList_ = java.util.Collections.unmodifiableList(actionList_); - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000010); } result.actionList_ = actionList_; } else { @@ -2228,8 +2118,8 @@ public final class Policy { if (((from_bitField0_ & 0x00000004) != 0)) { result.priority_ = priority_; } - if (((from_bitField0_ & 0x00000010) != 0)) { - result.booleanOperator_ = booleanOperator_; + if (((from_bitField0_ & 0x00000008) != 0)) { + result.kpiId_ = kpiIdBuilder_ == null ? kpiId_ : kpiIdBuilder_.build(); } } @@ -2255,38 +2145,14 @@ public final class Policy { if (other.getPriority() != 0) { setPriority(other.getPriority()); } - if (conditionListBuilder_ == null) { - if (!other.conditionList_.isEmpty()) { - if (conditionList_.isEmpty()) { - conditionList_ = other.conditionList_; - bitField0_ = (bitField0_ & ~0x00000008); - } else { - ensureConditionListIsMutable(); - conditionList_.addAll(other.conditionList_); - } - onChanged(); - } - } else { - if (!other.conditionList_.isEmpty()) { - if (conditionListBuilder_.isEmpty()) { - conditionListBuilder_.dispose(); - conditionListBuilder_ = null; - conditionList_ = other.conditionList_; - bitField0_ = (bitField0_ & ~0x00000008); - conditionListBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getConditionListFieldBuilder() : null; - } else { - conditionListBuilder_.addAllMessages(other.conditionList_); - } - } - } - if (other.booleanOperator_ != 0) { - setBooleanOperatorValue(other.getBooleanOperatorValue()); + if (other.hasKpiId()) { + mergeKpiId(other.getKpiId()); } if (actionListBuilder_ == null) { if (!other.actionList_.isEmpty()) { if (actionList_.isEmpty()) { actionList_ = other.actionList_; - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000010); } else { ensureActionListIsMutable(); actionList_.addAll(other.actionList_); @@ -2299,7 +2165,7 @@ public final class Policy { actionListBuilder_.dispose(); actionListBuilder_ = null; actionList_ = other.actionList_; - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000010); actionListBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getActionListFieldBuilder() : null; } else { actionListBuilder_.addAllMessages(other.actionList_); @@ -2352,24 +2218,12 @@ public final class Policy { // case 24 case 34: { - policy.PolicyCondition.PolicyRuleCondition m = input.readMessage(policy.PolicyCondition.PolicyRuleCondition.parser(), extensionRegistry); - if (conditionListBuilder_ == null) { - ensureConditionListIsMutable(); - conditionList_.add(m); - } else { - conditionListBuilder_.addMessage(m); - } + input.readMessage(getKpiIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; break; } // case 34 - case 40: - { - booleanOperator_ = input.readEnum(); - bitField0_ |= 0x00000010; - break; - } - // case 40 - case 50: + case 42: { policy.PolicyAction.PolicyRuleAction m = input.readMessage(policy.PolicyAction.PolicyRuleAction.parser(), extensionRegistry); if (actionListBuilder_ == null) { @@ -2380,7 +2234,7 @@ public final class Policy { } break; } - // case 50 + // case 42 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -2710,400 +2564,166 @@ public final class Policy { return this; } - private java.util.List conditionList_ = java.util.Collections.emptyList(); + private monitoring.Monitoring.KpiId kpiId_; - private void ensureConditionListIsMutable() { - if (!((bitField0_ & 0x00000008) != 0)) { - conditionList_ = new java.util.ArrayList(conditionList_); - bitField0_ |= 0x00000008; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3 conditionListBuilder_; + private com.google.protobuf.SingleFieldBuilderV3 kpiIdBuilder_; /** *
-             * Event-Condition-Action (ECA) model
+             * to be migrated to: "kpi_manager.KpiId"
              * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; + * @return Whether the kpiId field is set. */ - public java.util.List getConditionListList() { - if (conditionListBuilder_ == null) { - return java.util.Collections.unmodifiableList(conditionList_); - } else { - return conditionListBuilder_.getMessageList(); - } + public boolean hasKpiId() { + return ((bitField0_ & 0x00000008) != 0); } /** *
-             * Event-Condition-Action (ECA) model
+             * to be migrated to: "kpi_manager.KpiId"
              * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; + * @return The kpiId. */ - public int getConditionListCount() { - if (conditionListBuilder_ == null) { - return conditionList_.size(); + public monitoring.Monitoring.KpiId getKpiId() { + if (kpiIdBuilder_ == null) { + return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; } else { - return conditionListBuilder_.getCount(); + return kpiIdBuilder_.getMessage(); } } /** *
-             * Event-Condition-Action (ECA) model
+             * to be migrated to: "kpi_manager.KpiId"
              * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; */ - public policy.PolicyCondition.PolicyRuleCondition getConditionList(int index) { - if (conditionListBuilder_ == null) { - return conditionList_.get(index); - } else { - return conditionListBuilder_.getMessage(index); - } - } - - /** - *
-             * Event-Condition-Action (ECA) model
-             * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - public Builder setConditionList(int index, policy.PolicyCondition.PolicyRuleCondition value) { - if (conditionListBuilder_ == null) { + public Builder setKpiId(monitoring.Monitoring.KpiId value) { + if (kpiIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureConditionListIsMutable(); - conditionList_.set(index, value); - onChanged(); + kpiId_ = value; } else { - conditionListBuilder_.setMessage(index, value); - } - return this; - } - - /** - *
-             * Event-Condition-Action (ECA) model
-             * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - public Builder setConditionList(int index, policy.PolicyCondition.PolicyRuleCondition.Builder builderForValue) { - if (conditionListBuilder_ == null) { - ensureConditionListIsMutable(); - conditionList_.set(index, builderForValue.build()); - onChanged(); - } else { - conditionListBuilder_.setMessage(index, builderForValue.build()); + kpiIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000008; + onChanged(); return this; } /** *
-             * Event-Condition-Action (ECA) model
+             * to be migrated to: "kpi_manager.KpiId"
              * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; */ - public Builder addConditionList(policy.PolicyCondition.PolicyRuleCondition value) { - if (conditionListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureConditionListIsMutable(); - conditionList_.add(value); - onChanged(); + public Builder setKpiId(monitoring.Monitoring.KpiId.Builder builderForValue) { + if (kpiIdBuilder_ == null) { + kpiId_ = builderForValue.build(); } else { - conditionListBuilder_.addMessage(value); + kpiIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000008; + onChanged(); return this; } /** *
-             * Event-Condition-Action (ECA) model
+             * to be migrated to: "kpi_manager.KpiId"
              * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; */ - public Builder addConditionList(int index, policy.PolicyCondition.PolicyRuleCondition value) { - if (conditionListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); + public Builder mergeKpiId(monitoring.Monitoring.KpiId value) { + if (kpiIdBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && kpiId_ != null && kpiId_ != monitoring.Monitoring.KpiId.getDefaultInstance()) { + getKpiIdBuilder().mergeFrom(value); + } else { + kpiId_ = value; } - ensureConditionListIsMutable(); - conditionList_.add(index, value); - onChanged(); - } else { - conditionListBuilder_.addMessage(index, value); - } - return this; - } - - /** - *
-             * Event-Condition-Action (ECA) model
-             * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - public Builder addConditionList(policy.PolicyCondition.PolicyRuleCondition.Builder builderForValue) { - if (conditionListBuilder_ == null) { - ensureConditionListIsMutable(); - conditionList_.add(builderForValue.build()); - onChanged(); - } else { - conditionListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - - /** - *
-             * Event-Condition-Action (ECA) model
-             * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - public Builder addConditionList(int index, policy.PolicyCondition.PolicyRuleCondition.Builder builderForValue) { - if (conditionListBuilder_ == null) { - ensureConditionListIsMutable(); - conditionList_.add(index, builderForValue.build()); - onChanged(); } else { - conditionListBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - - /** - *
-             * Event-Condition-Action (ECA) model
-             * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - public Builder addAllConditionList(java.lang.Iterable values) { - if (conditionListBuilder_ == null) { - ensureConditionListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, conditionList_); - onChanged(); - } else { - conditionListBuilder_.addAllMessages(values); - } - return this; - } - - /** - *
-             * Event-Condition-Action (ECA) model
-             * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - public Builder clearConditionList() { - if (conditionListBuilder_ == null) { - conditionList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - } else { - conditionListBuilder_.clear(); + kpiIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000008; + onChanged(); return this; } /** *
-             * Event-Condition-Action (ECA) model
+             * to be migrated to: "kpi_manager.KpiId"
              * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; */ - public Builder removeConditionList(int index) { - if (conditionListBuilder_ == null) { - ensureConditionListIsMutable(); - conditionList_.remove(index); - onChanged(); - } else { - conditionListBuilder_.remove(index); + public Builder clearKpiId() { + bitField0_ = (bitField0_ & ~0x00000008); + kpiId_ = null; + if (kpiIdBuilder_ != null) { + kpiIdBuilder_.dispose(); + kpiIdBuilder_ = null; } + onChanged(); return this; } /** *
-             * Event-Condition-Action (ECA) model
+             * to be migrated to: "kpi_manager.KpiId"
              * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; */ - public policy.PolicyCondition.PolicyRuleCondition.Builder getConditionListBuilder(int index) { - return getConditionListFieldBuilder().getBuilder(index); - } - - /** - *
-             * Event-Condition-Action (ECA) model
-             * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - public policy.PolicyCondition.PolicyRuleConditionOrBuilder getConditionListOrBuilder(int index) { - if (conditionListBuilder_ == null) { - return conditionList_.get(index); - } else { - return conditionListBuilder_.getMessageOrBuilder(index); - } + public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getKpiIdFieldBuilder().getBuilder(); } /** *
-             * Event-Condition-Action (ECA) model
+             * to be migrated to: "kpi_manager.KpiId"
              * 
* - * repeated .policy.PolicyRuleCondition conditionList = 4; + * .monitoring.KpiId kpiId = 4; */ - public java.util.List getConditionListOrBuilderList() { - if (conditionListBuilder_ != null) { - return conditionListBuilder_.getMessageOrBuilderList(); + public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() { + if (kpiIdBuilder_ != null) { + return kpiIdBuilder_.getMessageOrBuilder(); } else { - return java.util.Collections.unmodifiableList(conditionList_); - } - } - - /** - *
-             * Event-Condition-Action (ECA) model
-             * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - public policy.PolicyCondition.PolicyRuleCondition.Builder addConditionListBuilder() { - return getConditionListFieldBuilder().addBuilder(policy.PolicyCondition.PolicyRuleCondition.getDefaultInstance()); - } - - /** - *
-             * Event-Condition-Action (ECA) model
-             * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - public policy.PolicyCondition.PolicyRuleCondition.Builder addConditionListBuilder(int index) { - return getConditionListFieldBuilder().addBuilder(index, policy.PolicyCondition.PolicyRuleCondition.getDefaultInstance()); - } - - /** - *
-             * Event-Condition-Action (ECA) model
-             * 
- * - * repeated .policy.PolicyRuleCondition conditionList = 4; - */ - public java.util.List getConditionListBuilderList() { - return getConditionListFieldBuilder().getBuilderList(); - } - - private com.google.protobuf.RepeatedFieldBuilderV3 getConditionListFieldBuilder() { - if (conditionListBuilder_ == null) { - conditionListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(conditionList_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); - conditionList_ = null; + return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; } - return conditionListBuilder_; - } - - private int booleanOperator_ = 0; - - /** - *
-             * Evaluation operator to be used
-             * 
- * - * .policy.BooleanOperator booleanOperator = 5; - * @return The enum numeric value on the wire for booleanOperator. - */ - @java.lang.Override - public int getBooleanOperatorValue() { - return booleanOperator_; } /** *
-             * Evaluation operator to be used
+             * to be migrated to: "kpi_manager.KpiId"
              * 
* - * .policy.BooleanOperator booleanOperator = 5; - * @param value The enum numeric value on the wire for booleanOperator to set. - * @return This builder for chaining. + * .monitoring.KpiId kpiId = 4; */ - public Builder setBooleanOperatorValue(int value) { - booleanOperator_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - - /** - *
-             * Evaluation operator to be used
-             * 
- * - * .policy.BooleanOperator booleanOperator = 5; - * @return The booleanOperator. - */ - @java.lang.Override - public policy.PolicyCondition.BooleanOperator getBooleanOperator() { - policy.PolicyCondition.BooleanOperator result = policy.PolicyCondition.BooleanOperator.forNumber(booleanOperator_); - return result == null ? policy.PolicyCondition.BooleanOperator.UNRECOGNIZED : result; - } - - /** - *
-             * Evaluation operator to be used
-             * 
- * - * .policy.BooleanOperator booleanOperator = 5; - * @param value The booleanOperator to set. - * @return This builder for chaining. - */ - public Builder setBooleanOperator(policy.PolicyCondition.BooleanOperator value) { - if (value == null) { - throw new NullPointerException(); + private com.google.protobuf.SingleFieldBuilderV3 getKpiIdFieldBuilder() { + if (kpiIdBuilder_ == null) { + kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3(getKpiId(), getParentForChildren(), isClean()); + kpiId_ = null; } - bitField0_ |= 0x00000010; - booleanOperator_ = value.getNumber(); - onChanged(); - return this; - } - - /** - *
-             * Evaluation operator to be used
-             * 
- * - * .policy.BooleanOperator booleanOperator = 5; - * @return This builder for chaining. - */ - public Builder clearBooleanOperator() { - bitField0_ = (bitField0_ & ~0x00000010); - booleanOperator_ = 0; - onChanged(); - return this; + return kpiIdBuilder_; } private java.util.List actionList_ = java.util.Collections.emptyList(); private void ensureActionListIsMutable() { - if (!((bitField0_ & 0x00000020) != 0)) { + if (!((bitField0_ & 0x00000010) != 0)) { actionList_ = new java.util.ArrayList(actionList_); - bitField0_ |= 0x00000020; + bitField0_ |= 0x00000010; } } @@ -3111,10 +2731,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public java.util.List getActionListList() { if (actionListBuilder_ == null) { @@ -3126,10 +2746,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public int getActionListCount() { if (actionListBuilder_ == null) { @@ -3141,10 +2761,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public policy.PolicyAction.PolicyRuleAction getActionList(int index) { if (actionListBuilder_ == null) { @@ -3156,10 +2776,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public Builder setActionList(int index, policy.PolicyAction.PolicyRuleAction value) { if (actionListBuilder_ == null) { @@ -3177,10 +2797,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public Builder setActionList(int index, policy.PolicyAction.PolicyRuleAction.Builder builderForValue) { if (actionListBuilder_ == null) { @@ -3195,10 +2815,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public Builder addActionList(policy.PolicyAction.PolicyRuleAction value) { if (actionListBuilder_ == null) { @@ -3216,10 +2836,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public Builder addActionList(int index, policy.PolicyAction.PolicyRuleAction value) { if (actionListBuilder_ == null) { @@ -3237,10 +2857,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public Builder addActionList(policy.PolicyAction.PolicyRuleAction.Builder builderForValue) { if (actionListBuilder_ == null) { @@ -3255,10 +2875,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public Builder addActionList(int index, policy.PolicyAction.PolicyRuleAction.Builder builderForValue) { if (actionListBuilder_ == null) { @@ -3273,10 +2893,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public Builder addAllActionList(java.lang.Iterable values) { if (actionListBuilder_ == null) { @@ -3291,15 +2911,15 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public Builder clearActionList() { if (actionListBuilder_ == null) { actionList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { actionListBuilder_.clear(); @@ -3309,10 +2929,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public Builder removeActionList(int index) { if (actionListBuilder_ == null) { @@ -3327,10 +2947,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public policy.PolicyAction.PolicyRuleAction.Builder getActionListBuilder(int index) { return getActionListFieldBuilder().getBuilder(index); @@ -3338,10 +2958,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public policy.PolicyAction.PolicyRuleActionOrBuilder getActionListOrBuilder(int index) { if (actionListBuilder_ == null) { @@ -3353,10 +2973,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public java.util.List getActionListOrBuilderList() { if (actionListBuilder_ != null) { @@ -3368,10 +2988,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public policy.PolicyAction.PolicyRuleAction.Builder addActionListBuilder() { return getActionListFieldBuilder().addBuilder(policy.PolicyAction.PolicyRuleAction.getDefaultInstance()); @@ -3379,10 +2999,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public policy.PolicyAction.PolicyRuleAction.Builder addActionListBuilder(int index) { return getActionListFieldBuilder().addBuilder(index, policy.PolicyAction.PolicyRuleAction.getDefaultInstance()); @@ -3390,10 +3010,10 @@ public final class Policy { /** *
-             * One or more actions should be applied
+             * Event-Condition-Action (ECA) model
              * 
* - * repeated .policy.PolicyRuleAction actionList = 6; + * repeated .policy.PolicyRuleAction actionList = 5; */ public java.util.List getActionListBuilderList() { return getActionListFieldBuilder().getBuilderList(); @@ -3401,7 +3021,7 @@ public final class Policy { private com.google.protobuf.RepeatedFieldBuilderV3 getActionListFieldBuilder() { if (actionListBuilder_ == null) { - actionListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(actionList_, ((bitField0_ & 0x00000020) != 0), getParentForChildren(), isClean()); + actionListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3(actionList_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); actionList_ = null; } return actionListBuilder_; @@ -9739,14 +9359,14 @@ public final class Policy { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - java.lang.String[] descriptorData = { "\n\014policy.proto\022\006policy\032\rcontext.proto\032\026p" + "olicy_condition.proto\032\023policy_action.pro" + "to\"+\n\014PolicyRuleId\022\033\n\004uuid\030\001 \001(\0132\r.conte" + "xt.Uuid\"g\n\017PolicyRuleState\0224\n\017policyRule" + "State\030\001 \001(\0162\033.policy.PolicyRuleStateEnum" + "\022\036\n\026policyRuleStateMessage\030\002 \001(\t\"\225\002\n\017Pol" + "icyRuleBasic\022*\n\014policyRuleId\030\001 \001(\0132\024.pol" + "icy.PolicyRuleId\0220\n\017policyRuleState\030\002 \001(" + "\0132\027.policy.PolicyRuleState\022\020\n\010priority\030\003" + " \001(\r\0222\n\rconditionList\030\004 \003(\0132\033.policy.Pol" + "icyRuleCondition\0220\n\017booleanOperator\030\005 \001(" + "\0162\027.policy.BooleanOperator\022,\n\nactionList" + "\030\006 \003(\0132\030.policy.PolicyRuleAction\"\223\001\n\021Pol" + "icyRuleService\0220\n\017policyRuleBasic\030\001 \001(\0132" + "\027.policy.PolicyRuleBasic\022%\n\tserviceId\030\002 " + "\001(\0132\022.context.ServiceId\022%\n\ndeviceList\030\003 " + "\003(\0132\021.context.DeviceId\"k\n\020PolicyRuleDevi" + "ce\0220\n\017policyRuleBasic\030\001 \001(\0132\027.policy.Pol" + "icyRuleBasic\022%\n\ndeviceList\030\002 \003(\0132\021.conte" + "xt.DeviceId\"u\n\nPolicyRule\022,\n\007service\030\001 \001" + "(\0132\031.policy.PolicyRuleServiceH\000\022*\n\006devic" + "e\030\002 \001(\0132\030.policy.PolicyRuleDeviceH\000B\r\n\013p" + "olicy_rule\"B\n\020PolicyRuleIdList\022.\n\020policy" + "RuleIdList\030\001 \003(\0132\024.policy.PolicyRuleId\"Q" + "\n\025PolicyRuleServiceList\0228\n\025policyRuleSer" + "viceList\030\001 \003(\0132\031.policy.PolicyRuleServic" + "e\"N\n\024PolicyRuleDeviceList\0226\n\024policyRuleD" + "eviceList\030\001 \003(\0132\030.policy.PolicyRuleDevic" + "e\"9\n\016PolicyRuleList\022\'\n\013policyRules\030\001 \003(\013" + "2\022.policy.PolicyRule*\377\001\n\023PolicyRuleState" + "Enum\022\024\n\020POLICY_UNDEFINED\020\000\022\021\n\rPOLICY_FAI" + "LED\020\001\022\023\n\017POLICY_INSERTED\020\002\022\024\n\020POLICY_VAL" + "IDATED\020\003\022\026\n\022POLICY_PROVISIONED\020\004\022\021\n\rPOLI" + "CY_ACTIVE\020\005\022\023\n\017POLICY_ENFORCED\020\006\022\026\n\022POLI" + "CY_INEFFECTIVE\020\007\022\024\n\020POLICY_EFFECTIVE\020\010\022\022" + "\n\016POLICY_UPDATED\020\t\022\022\n\016POLICY_REMOVED\020\n2\323" + "\004\n\rPolicyService\022H\n\020PolicyAddService\022\031.p" + "olicy.PolicyRuleService\032\027.policy.PolicyR" + "uleState\"\000\022F\n\017PolicyAddDevice\022\030.policy.P" + "olicyRuleDevice\032\027.policy.PolicyRuleState" + "\"\000\022K\n\023PolicyUpdateService\022\031.policy.Polic" + "yRuleService\032\027.policy.PolicyRuleState\"\000\022" + "I\n\022PolicyUpdateDevice\022\030.policy.PolicyRul" + "eDevice\032\027.policy.PolicyRuleState\"\000\022?\n\014Po" + "licyDelete\022\024.policy.PolicyRuleId\032\027.polic" + "y.PolicyRuleState\"\000\022E\n\020GetPolicyService\022" + "\024.policy.PolicyRuleId\032\031.policy.PolicyRul" + "eService\"\000\022C\n\017GetPolicyDevice\022\024.policy.P" + "olicyRuleId\032\030.policy.PolicyRuleDevice\"\000\022" + "K\n\024GetPolicyByServiceId\022\022.context.Servic" + "eId\032\035.policy.PolicyRuleServiceList\"\000b\006pr" + "oto3" }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { context.ContextOuterClass.getDescriptor(), policy.PolicyCondition.getDescriptor(), policy.PolicyAction.getDescriptor() }); + java.lang.String[] descriptorData = { "\n\014policy.proto\022\006policy\032\rcontext.proto\032\026p" + "olicy_condition.proto\032\023policy_action.pro" + "to\032\020monitoring.proto\"+\n\014PolicyRuleId\022\033\n\004" + "uuid\030\001 \001(\0132\r.context.Uuid\"g\n\017PolicyRuleS" + "tate\0224\n\017policyRuleState\030\001 \001(\0162\033.policy.P" + "olicyRuleStateEnum\022\036\n\026policyRuleStateMes" + "sage\030\002 \001(\t\"\321\001\n\017PolicyRuleBasic\022*\n\014policy" + "RuleId\030\001 \001(\0132\024.policy.PolicyRuleId\0220\n\017po" + "licyRuleState\030\002 \001(\0132\027.policy.PolicyRuleS" + "tate\022\020\n\010priority\030\003 \001(\r\022 \n\005kpiId\030\004 \001(\0132\021." + "monitoring.KpiId\022,\n\nactionList\030\005 \003(\0132\030.p" + "olicy.PolicyRuleAction\"\223\001\n\021PolicyRuleSer" + "vice\0220\n\017policyRuleBasic\030\001 \001(\0132\027.policy.P" + "olicyRuleBasic\022%\n\tserviceId\030\002 \001(\0132\022.cont" + "ext.ServiceId\022%\n\ndeviceList\030\003 \003(\0132\021.cont" + "ext.DeviceId\"k\n\020PolicyRuleDevice\0220\n\017poli" + "cyRuleBasic\030\001 \001(\0132\027.policy.PolicyRuleBas" + "ic\022%\n\ndeviceList\030\002 \003(\0132\021.context.DeviceI" + "d\"u\n\nPolicyRule\022,\n\007service\030\001 \001(\0132\031.polic" + "y.PolicyRuleServiceH\000\022*\n\006device\030\002 \001(\0132\030." + "policy.PolicyRuleDeviceH\000B\r\n\013policy_rule" + "\"B\n\020PolicyRuleIdList\022.\n\020policyRuleIdList" + "\030\001 \003(\0132\024.policy.PolicyRuleId\"Q\n\025PolicyRu" + "leServiceList\0228\n\025policyRuleServiceList\030\001" + " \003(\0132\031.policy.PolicyRuleService\"N\n\024Polic" + "yRuleDeviceList\0226\n\024policyRuleDeviceList\030" + "\001 \003(\0132\030.policy.PolicyRuleDevice\"9\n\016Polic" + "yRuleList\022\'\n\013policyRules\030\001 \003(\0132\022.policy." + "PolicyRule*\377\001\n\023PolicyRuleStateEnum\022\024\n\020PO" + "LICY_UNDEFINED\020\000\022\021\n\rPOLICY_FAILED\020\001\022\023\n\017P" + "OLICY_INSERTED\020\002\022\024\n\020POLICY_VALIDATED\020\003\022\026" + "\n\022POLICY_PROVISIONED\020\004\022\021\n\rPOLICY_ACTIVE\020" + "\005\022\023\n\017POLICY_ENFORCED\020\006\022\026\n\022POLICY_INEFFEC" + "TIVE\020\007\022\024\n\020POLICY_EFFECTIVE\020\010\022\022\n\016POLICY_U" + "PDATED\020\t\022\022\n\016POLICY_REMOVED\020\n2\323\004\n\rPolicyS" + "ervice\022H\n\020PolicyAddService\022\031.policy.Poli" + "cyRuleService\032\027.policy.PolicyRuleState\"\000" + "\022F\n\017PolicyAddDevice\022\030.policy.PolicyRuleD" + "evice\032\027.policy.PolicyRuleState\"\000\022K\n\023Poli" + "cyUpdateService\022\031.policy.PolicyRuleServi" + "ce\032\027.policy.PolicyRuleState\"\000\022I\n\022PolicyU" + "pdateDevice\022\030.policy.PolicyRuleDevice\032\027." + "policy.PolicyRuleState\"\000\022?\n\014PolicyDelete" + "\022\024.policy.PolicyRuleId\032\027.policy.PolicyRu" + "leState\"\000\022E\n\020GetPolicyService\022\024.policy.P" + "olicyRuleId\032\031.policy.PolicyRuleService\"\000" + "\022C\n\017GetPolicyDevice\022\024.policy.PolicyRuleI" + "d\032\030.policy.PolicyRuleDevice\"\000\022K\n\024GetPoli" + "cyByServiceId\022\022.context.ServiceId\032\035.poli" + "cy.PolicyRuleServiceList\"\000b\006proto3" }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { context.ContextOuterClass.getDescriptor(), policy.PolicyCondition.getDescriptor(), policy.PolicyAction.getDescriptor(), monitoring.Monitoring.getDescriptor() }); internal_static_policy_PolicyRuleId_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_policy_PolicyRuleId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_policy_PolicyRuleId_descriptor, new java.lang.String[] { "Uuid" }); internal_static_policy_PolicyRuleState_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_policy_PolicyRuleState_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_policy_PolicyRuleState_descriptor, new java.lang.String[] { "PolicyRuleState", "PolicyRuleStateMessage" }); internal_static_policy_PolicyRuleBasic_descriptor = getDescriptor().getMessageTypes().get(2); - internal_static_policy_PolicyRuleBasic_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_policy_PolicyRuleBasic_descriptor, new java.lang.String[] { "PolicyRuleId", "PolicyRuleState", "Priority", "ConditionList", "BooleanOperator", "ActionList" }); + internal_static_policy_PolicyRuleBasic_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_policy_PolicyRuleBasic_descriptor, new java.lang.String[] { "PolicyRuleId", "PolicyRuleState", "Priority", "KpiId", "ActionList" }); internal_static_policy_PolicyRuleService_descriptor = getDescriptor().getMessageTypes().get(3); internal_static_policy_PolicyRuleService_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_policy_PolicyRuleService_descriptor, new java.lang.String[] { "PolicyRuleBasic", "ServiceId", "DeviceList" }); internal_static_policy_PolicyRuleDevice_descriptor = getDescriptor().getMessageTypes().get(4); @@ -9764,6 +9384,7 @@ public final class Policy { context.ContextOuterClass.getDescriptor(); policy.PolicyCondition.getDescriptor(); policy.PolicyAction.getDescriptor(); + monitoring.Monitoring.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) } diff --git a/src/policy/target/kubernetes/kubernetes.yml b/src/policy/target/kubernetes/kubernetes.yml index 327338b7e..36811ea6f 100644 --- a/src/policy/target/kubernetes/kubernetes.yml +++ b/src/policy/target/kubernetes/kubernetes.yml @@ -3,8 +3,8 @@ apiVersion: v1 kind: Service metadata: annotations: - app.quarkus.io/commit-id: 4a4c9dae464ba1919bca69eb213009c24385a759 - app.quarkus.io/build-timestamp: 2025-04-10 - 15:55:21 +0000 + app.quarkus.io/commit-id: c3ecf36965a3cf00a3c3588a6d459ffc07cccdbd + app.quarkus.io/build-timestamp: 2025-08-07 - 09:07:18 +0000 prometheus.io/scrape: "true" prometheus.io/path: /q/metrics prometheus.io/port: "8080" @@ -17,18 +17,18 @@ metadata: name: policyservice spec: ports: - - name: http - port: 9192 + - name: grpc + port: 6060 protocol: TCP - targetPort: 8080 + targetPort: 6060 - name: https port: 443 protocol: TCP targetPort: 8443 - - name: grpc - port: 6060 + - name: http + port: 9192 protocol: TCP - targetPort: 6060 + targetPort: 8080 selector: app.kubernetes.io/name: policyservice type: ClusterIP @@ -37,8 +37,8 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - app.quarkus.io/commit-id: 4a4c9dae464ba1919bca69eb213009c24385a759 - app.quarkus.io/build-timestamp: 2025-04-10 - 15:55:21 +0000 + app.quarkus.io/commit-id: c3ecf36965a3cf00a3c3588a6d459ffc07cccdbd + app.quarkus.io/build-timestamp: 2025-08-07 - 09:07:18 +0000 prometheus.io/scrape: "true" prometheus.io/path: /q/metrics prometheus.io/port: "8080" @@ -57,8 +57,8 @@ spec: template: metadata: annotations: - app.quarkus.io/commit-id: 4a4c9dae464ba1919bca69eb213009c24385a759 - app.quarkus.io/build-timestamp: 2025-04-10 - 15:55:21 +0000 + app.quarkus.io/commit-id: c3ecf36965a3cf00a3c3588a6d459ffc07cccdbd + app.quarkus.io/build-timestamp: 2025-08-07 - 09:07:18 +0000 prometheus.io/scrape: "true" prometheus.io/path: /q/metrics prometheus.io/port: "8080" @@ -75,14 +75,14 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - - name: SERVICE_SERVICE_HOST - value: serviceservice - - name: CONTEXT_SERVICE_HOST - value: contextservice - name: MONITORING_SERVICE_HOST value: monitoringservice + - name: CONTEXT_SERVICE_HOST + value: contextservice - name: KAFKA_BROKER_HOST value: kafka-service.kafka.svc.cluster.local + - name: SERVICE_SERVICE_HOST + value: serviceservice image: labs.etsi.org:5050/tfs/controller/policy:0.1.0 imagePullPolicy: Always livenessProbe: @@ -97,14 +97,14 @@ spec: timeoutSeconds: 10 name: policyservice ports: - - containerPort: 8080 - name: http + - containerPort: 6060 + name: grpc protocol: TCP - containerPort: 8443 name: https protocol: TCP - - containerPort: 6060 - name: grpc + - containerPort: 8080 + name: http protocol: TCP readinessProbe: failureThreshold: 3 -- GitLab From 44e95be11efede9b67894aaa38334d1be3a73778 Mon Sep 17 00:00:00 2001 From: kpoulakakis Date: Fri, 3 Oct 2025 15:41:19 +0300 Subject: [PATCH 2/8] Remove old debug logs. --- .../org/etsi/tfs/policy/policy/AddPolicyServiceImpl.java | 5 ----- .../java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java | 4 ---- 2 files changed, 9 deletions(-) diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyServiceImpl.java index d82463bff..01b0f96d6 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyServiceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/AddPolicyServiceImpl.java @@ -50,17 +50,12 @@ public class AddPolicyServiceImpl { return Uni.createFrom().item(policyRuleState); } - LOGGER.error("!isService"); final var policyRuleTypeService = new PolicyRuleTypeService(policyRuleService); final var policyRule = new PolicyRule(policyRuleTypeService); - LOGGER.error("policyRule "); - final String kpiId = policyRuleService.getPolicyRuleBasic().getKpiId(); commonPolicyService.getKpiPolicyRuleServiceMap().put(kpiId, policyRuleService); - LOGGER.error("kpiId " + kpiId); - return setPolicyRuleOnContextAndReturnState(policyRule); } diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java index b0506ba61..775d1a3e1 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java @@ -79,13 +79,9 @@ public class PolicyServiceImpl implements PolicyService { return Uni.createFrom().item(policyRuleState); } - LOGGER.error("final var policyRuleBasic = policyRuleService.getPolicyRuleBasic();"); - final var serviceId = policyRuleService.getServiceId(); final var deviceIds = policyRuleService.getDeviceIds(); final var isServiceValid = policyRuleConditionValidator.isServiceIdValid(serviceId, deviceIds); - LOGGER.error("serviceId" + serviceId); - LOGGER.error("deviceIds" + deviceIds); return isServiceValid .onFailure() -- GitLab From 439f55c932d52a211fc66ad150b6705e6d90c16c Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 20 Oct 2025 11:18:26 +0000 Subject: [PATCH 3/8] Code cleanup --- src/policy/target/kubernetes/kubernetes.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/policy/target/kubernetes/kubernetes.yml b/src/policy/target/kubernetes/kubernetes.yml index 7a1e8b025..60ccc9334 100644 --- a/src/policy/target/kubernetes/kubernetes.yml +++ b/src/policy/target/kubernetes/kubernetes.yml @@ -76,11 +76,11 @@ spec: fieldRef: fieldPath: metadata.namespace - name: SERVICE_SERVICE_HOST + value: serviceservice + - name: CONTEXT_SERVICE_HOST + value: contextservice - name: KAFKA_BROKER_HOST value: kafka-service.kafka.svc.cluster.local - - name: SERVICE_SERVICE_HOST - value: serviceservice -======= - name: MONITORING_SERVICE_HOST value: monitoringservice image: labs.etsi.org:5050/tfs/controller/policy:0.1.0 -- GitLab From 94ce2a3e3a5d07f1cfb16b951a8fcd243bde6349 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 20 Oct 2025 11:26:41 +0000 Subject: [PATCH 4/8] Code cleanup --- src/policy/target/kubernetes/kubernetes.yml | 40 ++++++++++----------- src/ztp/target/kubernetes/kubernetes.yml | 30 ++++++++-------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/policy/target/kubernetes/kubernetes.yml b/src/policy/target/kubernetes/kubernetes.yml index 60ccc9334..fec5f6bca 100644 --- a/src/policy/target/kubernetes/kubernetes.yml +++ b/src/policy/target/kubernetes/kubernetes.yml @@ -3,8 +3,8 @@ apiVersion: v1 kind: Service metadata: annotations: - app.quarkus.io/commit-id: d457bfea86f78d429aee2793d274bb3ab375a94b - app.quarkus.io/build-timestamp: 2025-10-20 - 10:17:44 +0000 + app.quarkus.io/commit-id: 439f55c932d52a211fc66ad150b6705e6d90c16c + app.quarkus.io/build-timestamp: 2025-10-20 - 11:25:00 +0000 prometheus.io/scrape: "true" prometheus.io/path: /q/metrics prometheus.io/port: "8080" @@ -17,18 +17,18 @@ metadata: name: policyservice spec: ports: - - name: https - port: 443 + - name: grpc + port: 6060 protocol: TCP - targetPort: 8443 + targetPort: 6060 - name: http port: 9192 protocol: TCP targetPort: 8080 - - name: grpc - port: 6060 + - name: https + port: 443 protocol: TCP - targetPort: 6060 + targetPort: 8443 selector: app.kubernetes.io/name: policyservice type: ClusterIP @@ -37,8 +37,8 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - app.quarkus.io/commit-id: d457bfea86f78d429aee2793d274bb3ab375a94b - app.quarkus.io/build-timestamp: 2025-10-20 - 10:17:44 +0000 + app.quarkus.io/commit-id: 439f55c932d52a211fc66ad150b6705e6d90c16c + app.quarkus.io/build-timestamp: 2025-10-20 - 11:25:00 +0000 prometheus.io/scrape: "true" prometheus.io/path: /q/metrics prometheus.io/port: "8080" @@ -57,8 +57,8 @@ spec: template: metadata: annotations: - app.quarkus.io/commit-id: d457bfea86f78d429aee2793d274bb3ab375a94b - app.quarkus.io/build-timestamp: 2025-10-20 - 10:17:44 +0000 + app.quarkus.io/commit-id: 439f55c932d52a211fc66ad150b6705e6d90c16c + app.quarkus.io/build-timestamp: 2025-10-20 - 11:25:00 +0000 prometheus.io/scrape: "true" prometheus.io/path: /q/metrics prometheus.io/port: "8080" @@ -75,14 +75,14 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - - name: SERVICE_SERVICE_HOST - value: serviceservice + - name: MONITORING_SERVICE_HOST + value: monitoringservice - name: CONTEXT_SERVICE_HOST value: contextservice + - name: SERVICE_SERVICE_HOST + value: serviceservice - name: KAFKA_BROKER_HOST value: kafka-service.kafka.svc.cluster.local - - name: MONITORING_SERVICE_HOST - value: monitoringservice image: labs.etsi.org:5050/tfs/controller/policy:0.1.0 imagePullPolicy: Always livenessProbe: @@ -97,14 +97,14 @@ spec: timeoutSeconds: 10 name: policyservice ports: - - containerPort: 8443 - name: https + - containerPort: 6060 + name: grpc protocol: TCP - containerPort: 8080 name: http protocol: TCP - - containerPort: 6060 - name: grpc + - containerPort: 8443 + name: https protocol: TCP readinessProbe: failureThreshold: 3 diff --git a/src/ztp/target/kubernetes/kubernetes.yml b/src/ztp/target/kubernetes/kubernetes.yml index 1da70c278..ece3ac7c8 100644 --- a/src/ztp/target/kubernetes/kubernetes.yml +++ b/src/ztp/target/kubernetes/kubernetes.yml @@ -3,8 +3,8 @@ apiVersion: v1 kind: Service metadata: annotations: - app.quarkus.io/commit-id: d457bfea86f78d429aee2793d274bb3ab375a94b - app.quarkus.io/build-timestamp: 2025-10-20 - 10:16:15 +0000 + app.quarkus.io/commit-id: 439f55c932d52a211fc66ad150b6705e6d90c16c + app.quarkus.io/build-timestamp: 2025-10-20 - 11:23:35 +0000 prometheus.io/scrape: "true" prometheus.io/path: /q/metrics prometheus.io/port: "8080" @@ -17,10 +17,6 @@ metadata: name: ztpservice spec: ports: - - name: grpc - port: 5050 - protocol: TCP - targetPort: 5050 - name: http port: 9192 protocol: TCP @@ -29,6 +25,10 @@ spec: port: 443 protocol: TCP targetPort: 8443 + - name: grpc + port: 5050 + protocol: TCP + targetPort: 5050 selector: app.kubernetes.io/name: ztpservice type: ClusterIP @@ -37,8 +37,8 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - app.quarkus.io/commit-id: d457bfea86f78d429aee2793d274bb3ab375a94b - app.quarkus.io/build-timestamp: 2025-10-20 - 10:16:15 +0000 + app.quarkus.io/commit-id: 439f55c932d52a211fc66ad150b6705e6d90c16c + app.quarkus.io/build-timestamp: 2025-10-20 - 11:23:35 +0000 prometheus.io/scrape: "true" prometheus.io/path: /q/metrics prometheus.io/port: "8080" @@ -57,8 +57,8 @@ spec: template: metadata: annotations: - app.quarkus.io/commit-id: d457bfea86f78d429aee2793d274bb3ab375a94b - app.quarkus.io/build-timestamp: 2025-10-20 - 10:16:15 +0000 + app.quarkus.io/commit-id: 439f55c932d52a211fc66ad150b6705e6d90c16c + app.quarkus.io/build-timestamp: 2025-10-20 - 11:23:35 +0000 prometheus.io/scrape: "true" prometheus.io/path: /q/metrics prometheus.io/port: "8080" @@ -75,10 +75,10 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - - name: CONTEXT_SERVICE_HOST - value: contextservice - name: DEVICE_SERVICE_HOST value: deviceservice + - name: CONTEXT_SERVICE_HOST + value: contextservice image: labs.etsi.org:5050/tfs/controller/ztp:0.2.0 imagePullPolicy: Always livenessProbe: @@ -93,15 +93,15 @@ spec: timeoutSeconds: 10 name: ztpservice ports: - - containerPort: 5050 - name: grpc - protocol: TCP - containerPort: 8080 name: http protocol: TCP - containerPort: 8443 name: https protocol: TCP + - containerPort: 5050 + name: grpc + protocol: TCP readinessProbe: failureThreshold: 3 httpGet: -- GitLab From 1a0b06658b5c466cc4a68b2e9d08146d58fdbc0a Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 20 Oct 2025 14:28:03 +0000 Subject: [PATCH 5/8] Common - Tools - Object Factory: - Upgraded factory method for Policy Rule --- src/common/tools/object_factory/PolicyRule.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/common/tools/object_factory/PolicyRule.py b/src/common/tools/object_factory/PolicyRule.py index dd78bf355..2e3036204 100644 --- a/src/common/tools/object_factory/PolicyRule.py +++ b/src/common/tools/object_factory/PolicyRule.py @@ -14,7 +14,6 @@ import logging from typing import Dict, List, Optional -from common.proto.policy_condition_pb2 import BooleanOperator from common.proto.policy_pb2 import PolicyRuleStateEnum LOGGER = logging.getLogger(__name__) @@ -23,11 +22,9 @@ def json_policyrule_id(policyrule_uuid : str) -> Dict: return {'uuid': {'uuid': policyrule_uuid}} def json_policyrule( - policyrule_uuid : str, policy_priority : int = 1, + policyrule_uuid : str, policy_priority : int = 1, policy_kpi_id : str = '', policy_state : PolicyRuleStateEnum = PolicyRuleStateEnum.POLICY_UNDEFINED, policy_state_message : str = '', - boolean_operator : BooleanOperator = BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_AND, - condition_list : List[Dict] = [], action_list : List[Dict] = [], - service_id : Optional[Dict] = None, device_id_list : List[Dict] = [] + action_list : List[Dict] = [], service_id : Optional[Dict] = None, device_id_list : List[Dict] = [] ) -> Dict: basic = { 'policyRuleId': json_policyrule_id(policyrule_uuid), @@ -36,8 +33,7 @@ def json_policyrule( 'policyRuleStateMessage': policy_state_message, }, 'priority': policy_priority, - 'conditionList': condition_list, - 'booleanOperator': boolean_operator, + 'kpiId': policy_kpi_id, 'actionList': action_list, } -- GitLab From 0436b9e5280e29b25922b252cd2cf42839a24e0e Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 20 Oct 2025 14:29:05 +0000 Subject: [PATCH 6/8] Context component: - Fixed unitary tests for Policy - Added missing kpiId field --- src/context/service/database/PolicyRule.py | 4 +++- src/context/service/database/models/PolicyRuleModel.py | 2 ++ src/context/tests/Objects.py | 2 +- src/context/tests/test_policy.py | 3 +++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/context/service/database/PolicyRule.py b/src/context/service/database/PolicyRule.py index 032672d1d..3a02e187e 100644 --- a/src/context/service/database/PolicyRule.py +++ b/src/context/service/database/PolicyRule.py @@ -90,10 +90,11 @@ def policyrule_set(db_engine : Engine, messagebroker : MessageBroker, request : 'policyrule_state' : policyrule_state, 'policyrule_state_msg': policyrule_state_msg, 'policyrule_priority' : policyrule_basic.priority, + 'policyrule_kpi_id' : policyrule_basic.kpiId.kpi_id.uuid, 'policyrule_eca_data' : policyrule_eca_data, 'created_at' : now, 'updated_at' : now, - }] + }] policyrule_service_uuid = None if policyrule_kind == PolicyRuleKindEnum.SERVICE: @@ -119,6 +120,7 @@ def policyrule_set(db_engine : Engine, messagebroker : MessageBroker, request : policyrule_state = stmt.excluded.policyrule_state, policyrule_state_msg = stmt.excluded.policyrule_state_msg, policyrule_priority = stmt.excluded.policyrule_priority, + policyrule_kpi_id = stmt.excluded.policyrule_kpi_id, policyrule_eca_data = stmt.excluded.policyrule_eca_data, updated_at = stmt.excluded.updated_at, ) diff --git a/src/context/service/database/models/PolicyRuleModel.py b/src/context/service/database/models/PolicyRuleModel.py index 616d16092..4f6ead280 100644 --- a/src/context/service/database/models/PolicyRuleModel.py +++ b/src/context/service/database/models/PolicyRuleModel.py @@ -33,6 +33,7 @@ class PolicyRuleModel(_Base): policyrule_state = Column(Enum(ORM_PolicyRuleStateEnum), nullable=False) policyrule_state_msg = Column(String, nullable=False) policyrule_priority = Column(Integer, nullable=False) + policyrule_kpi_id = Column(String, nullable=False) policyrule_service_uuid = Column(ForeignKey('service.service_uuid', ondelete='RESTRICT'), nullable=True, index=True) policyrule_eca_data = Column(String, nullable=False) created_at = Column(DateTime, nullable=False) @@ -58,6 +59,7 @@ class PolicyRuleModel(_Base): 'policyRuleStateMessage': self.policyrule_state_msg, }, 'priority': self.policyrule_priority, + 'kpiId': {'kpi_id': {'uuid': self.policyrule_kpi_id}}, }) result = { 'policyRuleBasic': policyrule_basic, diff --git a/src/context/tests/Objects.py b/src/context/tests/Objects.py index 74fb05685..2e7852548 100644 --- a/src/context/tests/Objects.py +++ b/src/context/tests/Objects.py @@ -186,4 +186,4 @@ CONNECTION_R1_R3_NAME, CONNECTION_R1_R3_ID, CONNECTION_R1_R3 = compose_connectio # ----- PolicyRule ------------------------------------------------------------------------------------------------------- POLICYRULE_NAME = 'my-device-policy' POLICYRULE_ID = json_policyrule_id(POLICYRULE_NAME) -POLICYRULE = json_policyrule(POLICYRULE_NAME, policy_priority=1) +POLICYRULE = json_policyrule(POLICYRULE_NAME, policy_priority=1, policy_kpi_id='my-kpi-id') diff --git a/src/context/tests/test_policy.py b/src/context/tests/test_policy.py index b14fc936a..d4ad79d46 100644 --- a/src/context/tests/test_policy.py +++ b/src/context/tests/test_policy.py @@ -60,8 +60,10 @@ def test_policy(context_client : ContextClient): # ----- Update the object ------------------------------------------------------------------------------------------ new_policy_priority = 100 + new_policy_kpi_id = 'new-kpi-id' POLICYRULE_UPDATED = copy.deepcopy(POLICYRULE) POLICYRULE_UPDATED['device']['policyRuleBasic']['priority'] = new_policy_priority + POLICYRULE_UPDATED['device']['policyRuleBasic']['kpiId']['kpi_id']['uuid'] = new_policy_kpi_id response = context_client.SetPolicyRule(PolicyRule(**POLICYRULE_UPDATED)) assert response.uuid.uuid == policyrule_uuid @@ -78,6 +80,7 @@ def test_policy(context_client : ContextClient): assert len(response.policyRules) == 1 assert response.policyRules[0].device.policyRuleBasic.policyRuleId.uuid.uuid == policyrule_uuid assert response.policyRules[0].device.policyRuleBasic.priority == new_policy_priority + assert response.policyRules[0].device.policyRuleBasic.kpiId.kpi_id.uuid == new_policy_priority # ----- Remove the object ------------------------------------------------------------------------------------------ context_client.RemovePolicyRule(PolicyRuleId(**POLICYRULE_ID)) -- GitLab From 5b0d256b224753e779b7da42d9aa238477e3b5a7 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 20 Oct 2025 14:52:59 +0000 Subject: [PATCH 7/8] Common - Tools - Object Factory: - Fixed factory method for Policy Rule --- src/common/tools/object_factory/PolicyRule.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/tools/object_factory/PolicyRule.py b/src/common/tools/object_factory/PolicyRule.py index 2e3036204..7622cedb7 100644 --- a/src/common/tools/object_factory/PolicyRule.py +++ b/src/common/tools/object_factory/PolicyRule.py @@ -33,7 +33,7 @@ def json_policyrule( 'policyRuleStateMessage': policy_state_message, }, 'priority': policy_priority, - 'kpiId': policy_kpi_id, + 'kpiId': {'kpi_id': {'uuid': policy_kpi_id}}, 'actionList': action_list, } -- GitLab From a579a6d03a60a3749c59c548c758cb0fbaa16458 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 20 Oct 2025 14:53:26 +0000 Subject: [PATCH 8/8] Context component: - Fixed unitary tests for Policy --- src/context/tests/test_policy.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/context/tests/test_policy.py b/src/context/tests/test_policy.py index d4ad79d46..45592308c 100644 --- a/src/context/tests/test_policy.py +++ b/src/context/tests/test_policy.py @@ -47,6 +47,7 @@ def test_policy(context_client : ContextClient): response = context_client.GetPolicyRule(PolicyRuleId(**POLICYRULE_ID)) assert response.device.policyRuleBasic.policyRuleId.uuid.uuid == policyrule_uuid assert response.device.policyRuleBasic.priority == 1 + assert response.device.policyRuleBasic.kpiId.kpi_id.uuid == 'my-kpi-id' # ----- List when the object exists -------------------------------------------------------------------------------- response = context_client.ListPolicyRuleIds(Empty()) @@ -57,6 +58,7 @@ def test_policy(context_client : ContextClient): assert len(response.policyRules) == 1 assert response.policyRules[0].device.policyRuleBasic.policyRuleId.uuid.uuid == policyrule_uuid assert response.policyRules[0].device.policyRuleBasic.priority == 1 + assert response.policyRules[0].device.policyRuleBasic.kpiId.kpi_id.uuid == 'my-kpi-id' # ----- Update the object ------------------------------------------------------------------------------------------ new_policy_priority = 100 @@ -80,7 +82,7 @@ def test_policy(context_client : ContextClient): assert len(response.policyRules) == 1 assert response.policyRules[0].device.policyRuleBasic.policyRuleId.uuid.uuid == policyrule_uuid assert response.policyRules[0].device.policyRuleBasic.priority == new_policy_priority - assert response.policyRules[0].device.policyRuleBasic.kpiId.kpi_id.uuid == new_policy_priority + assert response.policyRules[0].device.policyRuleBasic.kpiId.kpi_id.uuid == new_policy_kpi_id # ----- Remove the object ------------------------------------------------------------------------------------------ context_client.RemovePolicyRule(PolicyRuleId(**POLICYRULE_ID)) -- GitLab