diff --git a/src/automation/src/main/java/eu/teraflow/automation/AutomationGatewayImpl.java b/src/automation/src/main/java/eu/teraflow/automation/AutomationGatewayImpl.java index 7a68965bf96a2c827219f761f19ba752dd534ffc..72ab633aff296765f3a03ade814cff05b5235dfd 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/AutomationGatewayImpl.java +++ b/src/automation/src/main/java/eu/teraflow/automation/AutomationGatewayImpl.java @@ -18,7 +18,7 @@ package eu.teraflow.automation; import automation.Automation; import context.ContextOuterClass; -import eu.teraflow.automation.device.model.Device; +import eu.teraflow.automation.context.model.Device; import eu.teraflow.automation.model.DeviceRoleId; import io.quarkus.grpc.GrpcService; import io.smallrye.mutiny.Uni; diff --git a/src/automation/src/main/java/eu/teraflow/automation/AutomationService.java b/src/automation/src/main/java/eu/teraflow/automation/AutomationService.java index 9e8927d583ce34cb8bfa0eaa7ba5561981b8dac7..5c8e95a442d7f6134b6817d144ff2ad646d2b5c3 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/AutomationService.java +++ b/src/automation/src/main/java/eu/teraflow/automation/AutomationService.java @@ -16,7 +16,7 @@ package eu.teraflow.automation; -import eu.teraflow.automation.device.model.Device; +import eu.teraflow.automation.context.model.Device; import io.smallrye.mutiny.Uni; public interface AutomationService { diff --git a/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java b/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java index 3db0d647ebc5c2341337bcb5d91484af8684dfe6..13e56645384938b4eff42aa73ca9e8a5ff73a1bd 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java +++ b/src/automation/src/main/java/eu/teraflow/automation/AutomationServiceImpl.java @@ -17,8 +17,8 @@ package eu.teraflow.automation; import eu.teraflow.automation.context.ContextService; +import eu.teraflow.automation.context.model.Device; import eu.teraflow.automation.device.DeviceService; -import eu.teraflow.automation.device.model.Device; import io.smallrye.mutiny.Uni; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; diff --git a/src/automation/src/main/java/eu/teraflow/automation/Serializer.java b/src/automation/src/main/java/eu/teraflow/automation/Serializer.java index 5662dab829ddcbab66e01a7da6da4fd3a506f509..4dd09b55dc7a67287a84daafaaf4feb0ae190c6e 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/Serializer.java +++ b/src/automation/src/main/java/eu/teraflow/automation/Serializer.java @@ -32,25 +32,33 @@ import eu.teraflow.automation.acl.AclLogActionEnum; import eu.teraflow.automation.acl.AclMatch; import eu.teraflow.automation.acl.AclRuleSet; import eu.teraflow.automation.acl.AclRuleTypeEnum; +import eu.teraflow.automation.context.model.ConfigActionEnum; +import eu.teraflow.automation.context.model.ConfigRule; +import eu.teraflow.automation.context.model.ConfigRuleAcl; +import eu.teraflow.automation.context.model.ConfigRuleCustom; +import eu.teraflow.automation.context.model.ConfigRuleTypeAcl; +import eu.teraflow.automation.context.model.ConfigRuleTypeCustom; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceConfig; +import eu.teraflow.automation.context.model.DeviceDriverEnum; +import eu.teraflow.automation.context.model.DeviceEvent; +import eu.teraflow.automation.context.model.DeviceOperationalStatus; +import eu.teraflow.automation.context.model.EndPoint; +import eu.teraflow.automation.context.model.EndPointId; import eu.teraflow.automation.context.model.Event; import eu.teraflow.automation.context.model.EventTypeEnum; -import eu.teraflow.automation.device.model.ConfigActionEnum; -import eu.teraflow.automation.device.model.ConfigRule; -import eu.teraflow.automation.device.model.ConfigRuleAcl; -import eu.teraflow.automation.device.model.ConfigRuleCustom; -import eu.teraflow.automation.device.model.ConfigRuleTypeAcl; -import eu.teraflow.automation.device.model.ConfigRuleTypeCustom; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceConfig; -import eu.teraflow.automation.device.model.DeviceEvent; -import eu.teraflow.automation.device.model.DeviceOperationalStatus; -import eu.teraflow.automation.device.model.EndPointId; -import eu.teraflow.automation.device.model.TopologyId; +import eu.teraflow.automation.context.model.GpsPosition; +import eu.teraflow.automation.context.model.Location; +import eu.teraflow.automation.context.model.LocationTypeGpsPosition; +import eu.teraflow.automation.context.model.LocationTypeRegion; +import eu.teraflow.automation.context.model.TopologyId; +import eu.teraflow.automation.kpi_sample_types.model.KpiSampleType; import eu.teraflow.automation.model.DeviceRole; import eu.teraflow.automation.model.DeviceRoleId; import eu.teraflow.automation.model.DeviceRoleType; import java.util.stream.Collectors; import javax.inject.Singleton; +import kpi_sample_types.KpiSampleTypes; @Singleton public class Serializer { @@ -691,26 +699,216 @@ public class Serializer { } } + public KpiSampleTypes.KpiSampleType serialize(KpiSampleType kpiSampleType) { + switch (kpiSampleType) { + case PACKETS_TRANSMITTED: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED; + case PACKETS_RECEIVED: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED; + case BYTES_TRANSMITTED: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED; + case BYTES_RECEIVED: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED; + case UNKNOWN: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN; + default: + return KpiSampleTypes.KpiSampleType.UNRECOGNIZED; + } + } + + public KpiSampleType deserialize(KpiSampleTypes.KpiSampleType serializedKpiSampleType) { + switch (serializedKpiSampleType) { + case KPISAMPLETYPE_PACKETS_TRANSMITTED: + return KpiSampleType.PACKETS_TRANSMITTED; + case KPISAMPLETYPE_PACKETS_RECEIVED: + return KpiSampleType.PACKETS_RECEIVED; + case KPISAMPLETYPE_BYTES_TRANSMITTED: + return KpiSampleType.BYTES_TRANSMITTED; + case KPISAMPLETYPE_BYTES_RECEIVED: + return KpiSampleType.BYTES_RECEIVED; + case KPISAMPLETYPE_UNKNOWN: + default: + return KpiSampleType.UNKNOWN; + } + } + + public ContextOuterClass.Location serialize(Location location) { + final var builder = ContextOuterClass.Location.newBuilder(); + + final var locationType = location.getLocationType(); + final var locationTypeSpecificType = locationType.getLocationType(); + + if (locationTypeSpecificType instanceof GpsPosition) { + final var latitude = ((GpsPosition) locationTypeSpecificType).getLatitude(); + final var longitude = ((GpsPosition) locationTypeSpecificType).getLongitude(); + + final var serializedGpsPosition = + ContextOuterClass.GPS_Position.newBuilder() + .setLatitude(latitude) + .setLongitude(longitude) + .build(); + + builder.setGpsPosition(serializedGpsPosition); + } + + if (locationTypeSpecificType instanceof String) { + final var region = ((String) locationTypeSpecificType); + + builder.setRegion(region); + } + + return builder.build(); + } + + public Location deserialize(ContextOuterClass.Location serializedLocation) { + final var typeOfLocation = serializedLocation.getLocationCase(); + + switch (typeOfLocation) { + case REGION: + final var region = serializedLocation.getRegion(); + final var locationTypeRegion = new LocationTypeRegion(region); + + return new Location(locationTypeRegion); + case GPS_POSITION: + final var serializedGpsPosition = serializedLocation.getGpsPosition(); + final var latitude = serializedGpsPosition.getLatitude(); + final var longitude = serializedGpsPosition.getLongitude(); + + final var gpsPosition = new GpsPosition(latitude, longitude); + final var locationTypeGpsPosition = new LocationTypeGpsPosition(gpsPosition); + + return new Location(locationTypeGpsPosition); + default: + case LOCATION_NOT_SET: + throw new IllegalStateException("Location value not set"); + } + } + + public ContextOuterClass.DeviceDriverEnum serialize(DeviceDriverEnum deviceDriverEnum) { + switch (deviceDriverEnum) { + case OPENCONFIG: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG; + case TRANSPORT_API: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_TRANSPORT_API; + case P4: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_P4; + case IETF_NETWORK_TOPOLOGY: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_IETF_NETWORK_TOPOLOGY; + case ONF_TR_352: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_ONF_TR_352; + case UNDEFINED: + default: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_UNDEFINED; + } + } + + public DeviceDriverEnum deserialize( + ContextOuterClass.DeviceDriverEnum serializedDeviceDriverEnum) { + switch (serializedDeviceDriverEnum) { + case DEVICEDRIVER_OPENCONFIG: + return DeviceDriverEnum.OPENCONFIG; + case DEVICEDRIVER_TRANSPORT_API: + return DeviceDriverEnum.TRANSPORT_API; + case DEVICEDRIVER_P4: + return DeviceDriverEnum.P4; + case DEVICEDRIVER_IETF_NETWORK_TOPOLOGY: + return DeviceDriverEnum.IETF_NETWORK_TOPOLOGY; + case DEVICEDRIVER_ONF_TR_352: + return DeviceDriverEnum.ONF_TR_352; + case DEVICEDRIVER_UNDEFINED: + case UNRECOGNIZED: + default: + return DeviceDriverEnum.UNDEFINED; + } + } + + public ContextOuterClass.EndPoint serialize(EndPoint endPoint) { + final var builder = ContextOuterClass.EndPoint.newBuilder(); + + final var endPointId = endPoint.getEndPointId(); + final var endPointType = endPoint.getEndPointType(); + final var kpiSampleTypes = endPoint.getKpiSampleTypes(); + final var endPointLocation = endPoint.getEndPointLocation(); + + final var serializedEndPointId = serialize(endPointId); + final var serializedKpiSampleTypes = + kpiSampleTypes.stream().map(this::serialize).collect(Collectors.toList()); + final var serializedEndPointLocation = serialize(endPointLocation); + + builder.setEndpointId(serializedEndPointId); + builder.setEndpointType(endPointType); + builder.addAllKpiSampleTypes(serializedKpiSampleTypes); + builder.setEndpointLocation(serializedEndPointLocation); + + return builder.build(); + } + + public EndPoint deserialize(ContextOuterClass.EndPoint serializedEndPoint) { + final var serializedEndPointId = serializedEndPoint.getEndpointId(); + final var endPointType = serializedEndPoint.getEndpointType(); + final var serializedKpiSampleTypes = serializedEndPoint.getKpiSampleTypesList(); + final var serializedEndPointLocation = serializedEndPoint.getEndpointLocation(); + + final var endPointId = deserialize(serializedEndPointId); + final var kpiSampleTypes = + serializedKpiSampleTypes.stream().map(this::deserialize).collect(Collectors.toList()); + final var endPointLocation = deserialize(serializedEndPointLocation); + + return new EndPoint(endPointId, endPointType, kpiSampleTypes, endPointLocation); + } + public ContextOuterClass.Device serialize(Device device) { final var builder = ContextOuterClass.Device.newBuilder(); + final var deviceIdUuid = serializeUuid(device.getDeviceId()); final var deviceId = DeviceId.newBuilder().setDeviceUuid(deviceIdUuid); + final var deviceType = device.getDeviceType(); + final var deviceConfig = device.getDeviceConfig(); + final var deviceOperationalStatus = device.getDeviceOperationalStatus(); + final var deviceDrivers = device.getDeviceDrivers(); + final var deviceEndPoints = device.getEndPoints(); + + final var serializedDeviceConfig = serialize(deviceConfig); + final var serializedDeviceOperationalStatus = serialize(deviceOperationalStatus); + final var serializedDeviceDrivers = + deviceDrivers.stream().map(this::serialize).collect(Collectors.toList()); + final var serializedDeviceEndPoints = + deviceEndPoints.stream().map(this::serialize).collect(Collectors.toList()); builder.setDeviceId(deviceId); - builder.setDeviceType(device.getDeviceType()); - builder.setDeviceConfig(serialize(device.getDeviceConfig())); - builder.setDeviceOperationalStatus(serialize(device.getDeviceOperationalStatus())); + builder.setDeviceType(deviceType); + builder.setDeviceConfig(serializedDeviceConfig); + builder.setDeviceOperationalStatus(serializedDeviceOperationalStatus); + builder.addAllDeviceDrivers(serializedDeviceDrivers); + builder.addAllDeviceEndpoints(serializedDeviceEndPoints); return builder.build(); } public Device deserialize(ContextOuterClass.Device device) { - final var id = deserialize(device.getDeviceId()); - final var type = device.getDeviceType(); - final var config = deserialize(device.getDeviceConfig()); - final var operationalStatus = deserialize(device.getDeviceOperationalStatus()); - return new Device(id, type, config, operationalStatus); + final var serializedDeviceId = device.getDeviceId(); + final var deviceType = device.getDeviceType(); + final var serializedDeviceConfig = device.getDeviceConfig(); + final var serializedDeviceOperationalStatus = device.getDeviceOperationalStatus(); + final var serializedDeviceDrivers = device.getDeviceDriversList(); + final var serializedDeviceEndPoints = device.getDeviceEndpointsList(); + + final var deviceId = deserialize(serializedDeviceId); + final var deviceConfig = deserialize(serializedDeviceConfig); + final var deviceOperationalStatus = deserialize(serializedDeviceOperationalStatus); + final var deviceDrivers = + serializedDeviceDrivers.stream().map(this::deserialize).collect(Collectors.toList()); + final var deviceEndPoints = + serializedDeviceEndPoints.stream().map(this::deserialize).collect(Collectors.toList()); + + return new Device( + deviceId, + deviceType, + deviceConfig, + deviceOperationalStatus, + deviceDrivers, + deviceEndPoints); } public Uuid serializeUuid(String uuid) { diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/ContextGateway.java b/src/automation/src/main/java/eu/teraflow/automation/context/ContextGateway.java index 3bae4161d61d7c94f639b3953324981dca2a1b3d..2b96acecebc7fbf76167931d953af27c46338fe8 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/context/ContextGateway.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/ContextGateway.java @@ -16,8 +16,8 @@ package eu.teraflow.automation.context; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceEvent; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceEvent; import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/ContextGatewayImpl.java b/src/automation/src/main/java/eu/teraflow/automation/context/ContextGatewayImpl.java index 7bec6413818342f955abcaa2497f8c174951e8dd..7a50500377399692bd6f1497b8fd4366da55a413 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/context/ContextGatewayImpl.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/ContextGatewayImpl.java @@ -19,8 +19,8 @@ package eu.teraflow.automation.context; import context.ContextOuterClass; import context.MutinyContextServiceGrpc.MutinyContextServiceStub; import eu.teraflow.automation.Serializer; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceEvent; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceEvent; import io.quarkus.grpc.GrpcClient; import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/ContextService.java b/src/automation/src/main/java/eu/teraflow/automation/context/ContextService.java index c3e01a1258c0bf99827fd81f0c2e9c087498d803..f5316dc4158d514d3b524f52a63f92317b777ddb 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/context/ContextService.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/ContextService.java @@ -16,8 +16,8 @@ package eu.teraflow.automation.context; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceEvent; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceEvent; import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/ContextServiceImpl.java b/src/automation/src/main/java/eu/teraflow/automation/context/ContextServiceImpl.java index 10d16bdf9e8eec3434899ef1454762619afdc805..fc65296b7c39b86567e63169e0a6f7d1b0f43fce 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/context/ContextServiceImpl.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/ContextServiceImpl.java @@ -16,8 +16,8 @@ package eu.teraflow.automation.context; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceEvent; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceEvent; import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; import javax.enterprise.context.ApplicationScoped; diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigActionEnum.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigActionEnum.java similarity index 93% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigActionEnum.java rename to src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigActionEnum.java index bbe8d5916975d8541000c9df748fe1a79c3037f6..f79562d0dc69cf1582998c7bd6625634498174d4 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigActionEnum.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigActionEnum.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.automation.context.model; public enum ConfigActionEnum { UNDEFINED, diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRule.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRule.java similarity index 90% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRule.java rename to src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRule.java index 46be8c11854b20ccf68a1fc942c833e9fdf4931a..334bb8964a917f27c752360e362796389f8b0056 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRule.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRule.java @@ -14,14 +14,14 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.automation.context.model; public class ConfigRule { private final ConfigActionEnum configActionEnum; - private final ConfigRuleType configRuleType; + private final ConfigRuleType configRuleType; - public ConfigRule(ConfigActionEnum configActionEnum, ConfigRuleType configRuleType) { + public ConfigRule(ConfigActionEnum configActionEnum, ConfigRuleType configRuleType) { this.configActionEnum = configActionEnum; this.configRuleType = configRuleType; } diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleAcl.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleAcl.java similarity index 96% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleAcl.java rename to src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleAcl.java index 2a3aec310f47356a00c879d08b1e0ce25f2c9800..c749519fdddaf6f5466f81d713bdece51ff7f026 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleAcl.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleAcl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.automation.context.model; import eu.teraflow.automation.acl.AclRuleSet; diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleCustom.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleCustom.java similarity index 96% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleCustom.java rename to src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleCustom.java index a21485e49c26bcc4fbf8a03e0f6497c8bfa27c8d..d60411fb4acc88e73ed840d827ca1d078fd36856 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleCustom.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleCustom.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.automation.context.model; public class ConfigRuleCustom { diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleType.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleType.java new file mode 100644 index 0000000000000000000000000000000000000000..874c633d0f0509381851a728413a1fc909cb380d --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleType.java @@ -0,0 +1,22 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.context.model; + +public interface ConfigRuleType { + + public T getConfigRuleType(); +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleTypeAcl.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleTypeAcl.java similarity index 95% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleTypeAcl.java rename to src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleTypeAcl.java index ff7b5af6fe5cbbf065f57bd913d0c185e05870d3..f802549132f0a48973442bbbee6240d1611d2fa1 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleTypeAcl.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleTypeAcl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.automation.context.model; public class ConfigRuleTypeAcl implements ConfigRuleType { diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleTypeCustom.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleTypeCustom.java similarity index 96% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleTypeCustom.java rename to src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleTypeCustom.java index bc45fc2548b9fa58b1512101e1548067eb278ef0..86137244d166e254ab27952ecb85611474ae14eb 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleTypeCustom.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/ConfigRuleTypeCustom.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.automation.context.model; public class ConfigRuleTypeCustom implements ConfigRuleType { diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/Device.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/Device.java new file mode 100644 index 0000000000000000000000000000000000000000..1b286f57173c48787460828ba6bfc2c43588d4db --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/Device.java @@ -0,0 +1,112 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.context.model; + +import java.util.List; +import java.util.stream.Collectors; + +public class Device { + + private final String deviceId; + private final String deviceType; + private DeviceConfig deviceConfig; + private DeviceOperationalStatus deviceOperationalStatus; + private List deviceDrivers; + private List endPoints; + + public Device( + String deviceId, + String deviceType, + DeviceConfig deviceConfig, + DeviceOperationalStatus deviceOperationalStatus, + List deviceDrivers, + List endPoints) { + + this.deviceId = deviceId; + this.deviceType = deviceType; + this.deviceConfig = deviceConfig; + this.deviceOperationalStatus = deviceOperationalStatus; + this.deviceDrivers = deviceDrivers; + this.endPoints = endPoints; + } + + public Device( + String deviceId, + String deviceType, + DeviceOperationalStatus deviceOperationalStatus, + List deviceDrivers, + List endPoints) { + this.deviceId = deviceId; + this.deviceType = deviceType; + this.deviceOperationalStatus = deviceOperationalStatus; + this.deviceDrivers = deviceDrivers; + this.endPoints = endPoints; + } + + public boolean isEnabled() { + return deviceOperationalStatus == DeviceOperationalStatus.ENABLED; + } + + public void enableDevice() { + this.deviceOperationalStatus = DeviceOperationalStatus.ENABLED; + } + + public String getDeviceId() { + return deviceId; + } + + public String getDeviceType() { + return deviceType; + } + + public DeviceConfig getDeviceConfig() { + return deviceConfig; + } + + public List getDeviceDrivers() { + return deviceDrivers; + } + + public List getEndPoints() { + return endPoints; + } + + public DeviceOperationalStatus getDeviceOperationalStatus() { + return deviceOperationalStatus; + } + + public void setDeviceConfiguration(DeviceConfig deviceConfig) { + this.deviceConfig = deviceConfig; + } + + @Override + public String toString() { + return String.format( + "%s:{deviceId:\"%s\", deviceType:\"%s\", %s, deviceOperationalStatus=\"%s\", [%s], [%s]}", + getClass().getSimpleName(), + deviceId, + deviceType, + deviceConfig, + deviceOperationalStatus.toString(), + toString(deviceDrivers), + toString(endPoints)); + } + + private static String toString(List list) { + return list.stream().map(T::toString).collect(Collectors.joining(", ")); + } +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/DeviceConfig.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceConfig.java similarity index 96% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/DeviceConfig.java rename to src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceConfig.java index 6365b0ed9eeb1a5ebb0596c060e32e49d2f14e2f..edf2dbc6ff96bd26ee45345928b0c6d33b4ec73a 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/DeviceConfig.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceConfig.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.automation.context.model; import java.util.List; import java.util.stream.Collectors; diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceDriverEnum.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceDriverEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..8fc767ac2e5d7fed70f0375fcf8c820e30fbb149 --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceDriverEnum.java @@ -0,0 +1,26 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.context.model; + +public enum DeviceDriverEnum { + UNDEFINED, + OPENCONFIG, + TRANSPORT_API, + P4, + IETF_NETWORK_TOPOLOGY, + ONF_TR_352 +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/DeviceEvent.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceEvent.java similarity index 92% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/DeviceEvent.java rename to src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceEvent.java index 5a021276c751813fa0fc1b0497ce514d5d4d5e72..efc0be8308fb9a75132cd604a84fd5b4822f3af7 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/DeviceEvent.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceEvent.java @@ -14,9 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; - -import eu.teraflow.automation.context.model.Event; +package eu.teraflow.automation.context.model; public class DeviceEvent { diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceOperationalStatus.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceOperationalStatus.java new file mode 100644 index 0000000000000000000000000000000000000000..50486469f1c8e9f8b9f965723b3432dbb7d0d4ca --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/DeviceOperationalStatus.java @@ -0,0 +1,23 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.context.model; + +public enum DeviceOperationalStatus { + UNDEFINED, + DISABLED, + ENABLED +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/EndPoint.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/EndPoint.java new file mode 100644 index 0000000000000000000000000000000000000000..f9fb8bf0d8406db4ee4fb07783eaf20bfd88e2b0 --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/EndPoint.java @@ -0,0 +1,70 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.context.model; + +import eu.teraflow.automation.kpi_sample_types.model.KpiSampleType; +import java.util.List; +import java.util.stream.Collectors; + +public class EndPoint { + private final EndPointId endPointId; + private final String endPointType; + private final List kpiSampleTypes; + private final Location endPointLocation; + + public EndPoint( + EndPointId endPointId, + String endPointType, + List kpiSampleTypes, + Location endPointLocation) { + this.endPointId = endPointId; + this.endPointType = endPointType; + this.kpiSampleTypes = kpiSampleTypes; + this.endPointLocation = endPointLocation; + } + + public EndPointId getEndPointId() { + return endPointId; + } + + public String getEndPointType() { + return endPointType; + } + + public List getKpiSampleTypes() { + return kpiSampleTypes; + } + + public Location getEndPointLocation() { + return endPointLocation; + } + + @Override + public String toString() { + return String.format( + "%s:{%s, endPointType:\"%s\", [%s], %s}", + getClass().getSimpleName(), + endPointId, + endPointType, + toString(kpiSampleTypes), + endPointLocation); + } + + private static String toString(List list) { + return list.stream().map(T::toString).collect(Collectors.joining(", ")); + } +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/EndPointId.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/EndPointId.java similarity index 96% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/EndPointId.java rename to src/automation/src/main/java/eu/teraflow/automation/context/model/EndPointId.java index c94581e1830ad7908c6656040cff77ab87b5ad40..c94bcb0b16ecdb638bd37aea468b70e52ee68f99 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/EndPointId.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/EndPointId.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.automation.context.model; public class EndPointId { diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/GpsPosition.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/GpsPosition.java new file mode 100644 index 0000000000000000000000000000000000000000..9ee65b706bdb84e541b37f59108e6daa4b5fbf16 --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/GpsPosition.java @@ -0,0 +1,42 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.context.model; + +public class GpsPosition { + + private final float latitude; + private final float longitude; + + public GpsPosition(float latitude, float longitude) { + this.latitude = latitude; + this.longitude = longitude; + } + + public float getLatitude() { + return latitude; + } + + public float getLongitude() { + return longitude; + } + + @Override + public String toString() { + return String.format( + "%s:{latitude:\"%f\", longitude:\"%f\"}", getClass().getSimpleName(), latitude, longitude); + } +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/Location.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/Location.java new file mode 100644 index 0000000000000000000000000000000000000000..bd056e80c65d1f75621253f3b4021827503ac0ad --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/Location.java @@ -0,0 +1,35 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.context.model; + +public class Location { + + private final LocationType locationType; + + public Location(LocationType locationType) { + this.locationType = locationType; + } + + public LocationType getLocationType() { + return locationType; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), locationType); + } +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/LocationType.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/LocationType.java new file mode 100644 index 0000000000000000000000000000000000000000..e5e23ab6278d748766347b61ffb0fa481a16ef68 --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/LocationType.java @@ -0,0 +1,22 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.context.model; + +public interface LocationType { + + public T getLocationType(); +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/LocationTypeGpsPosition.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/LocationTypeGpsPosition.java new file mode 100644 index 0000000000000000000000000000000000000000..a9af77dea36948cd80ce2ce9d48c349923127839 --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/LocationTypeGpsPosition.java @@ -0,0 +1,35 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.context.model; + +public class LocationTypeGpsPosition implements LocationType { + private final GpsPosition gpsPosition; + + public LocationTypeGpsPosition(GpsPosition gpsPosition) { + this.gpsPosition = gpsPosition; + } + + @Override + public GpsPosition getLocationType() { + return this.gpsPosition; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), gpsPosition); + } +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/context/model/LocationTypeRegion.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/LocationTypeRegion.java new file mode 100644 index 0000000000000000000000000000000000000000..5b12ee0169504874a12125ca6cd04db877946646 --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/LocationTypeRegion.java @@ -0,0 +1,35 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.context.model; + +public class LocationTypeRegion implements LocationType { + private final String region; + + public LocationTypeRegion(String region) { + this.region = region; + } + + @Override + public String getLocationType() { + return this.region; + } + + @Override + public String toString() { + return String.format("%s:{region:\"%s\"}", getClass().getSimpleName(), region); + } +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/TopologyId.java b/src/automation/src/main/java/eu/teraflow/automation/context/model/TopologyId.java similarity index 96% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/TopologyId.java rename to src/automation/src/main/java/eu/teraflow/automation/context/model/TopologyId.java index e80a9b3b79b0ba22494ee0d102eda103d08b601c..ce9f7836f6fe9cd2fc6095f43b02875fdcb98e26 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/TopologyId.java +++ b/src/automation/src/main/java/eu/teraflow/automation/context/model/TopologyId.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.automation.context.model; public class TopologyId { diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/DeviceGateway.java b/src/automation/src/main/java/eu/teraflow/automation/device/DeviceGateway.java index 41a7d18f5a858b2d4c04fbaa1ce3577f3966e4b8..8cbf0885ba6537e7bca31e5bb6efd0494e4fe879 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/DeviceGateway.java +++ b/src/automation/src/main/java/eu/teraflow/automation/device/DeviceGateway.java @@ -16,8 +16,8 @@ package eu.teraflow.automation.device; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceConfig; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceConfig; import io.smallrye.mutiny.Uni; public interface DeviceGateway { diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/DeviceGatewayImpl.java b/src/automation/src/main/java/eu/teraflow/automation/device/DeviceGatewayImpl.java index 00270e478c233bbc2cc8ae7924838c835aac013e..7849e36e6965df293381e5bc8a04db552d3f28d4 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/DeviceGatewayImpl.java +++ b/src/automation/src/main/java/eu/teraflow/automation/device/DeviceGatewayImpl.java @@ -18,8 +18,8 @@ package eu.teraflow.automation.device; import device.DeviceService; import eu.teraflow.automation.Serializer; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceConfig; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceConfig; import io.quarkus.grpc.GrpcClient; import io.smallrye.mutiny.Uni; import javax.enterprise.context.ApplicationScoped; diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/DeviceService.java b/src/automation/src/main/java/eu/teraflow/automation/device/DeviceService.java index 0be0688b50c75184a16766dfc6cda16ad41bf3b6..229aea7dfe29a11487d3e61709981300a2ff9600 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/DeviceService.java +++ b/src/automation/src/main/java/eu/teraflow/automation/device/DeviceService.java @@ -16,8 +16,8 @@ package eu.teraflow.automation.device; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceConfig; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceConfig; import io.smallrye.mutiny.Uni; public interface DeviceService { diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/DeviceServiceImpl.java b/src/automation/src/main/java/eu/teraflow/automation/device/DeviceServiceImpl.java index f58c03ee784f215fb7e64ebba2f26a5d8c203f3f..d5dd6fc2be73b55da9f6d31efbc21bf40c431c20 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/DeviceServiceImpl.java +++ b/src/automation/src/main/java/eu/teraflow/automation/device/DeviceServiceImpl.java @@ -16,8 +16,8 @@ package eu.teraflow.automation.device; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceConfig; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceConfig; import io.smallrye.mutiny.Uni; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; diff --git a/src/automation/src/main/java/eu/teraflow/automation/kpi_sample_types/model/KpiSampleType.java b/src/automation/src/main/java/eu/teraflow/automation/kpi_sample_types/model/KpiSampleType.java new file mode 100644 index 0000000000000000000000000000000000000000..9a46e8ffde183deb4a23e5fde16ae8a798fb6e4b --- /dev/null +++ b/src/automation/src/main/java/eu/teraflow/automation/kpi_sample_types/model/KpiSampleType.java @@ -0,0 +1,25 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation.kpi_sample_types.model; + +public enum KpiSampleType { + UNKNOWN, + PACKETS_TRANSMITTED, + PACKETS_RECEIVED, + BYTES_TRANSMITTED, + BYTES_RECEIVED +} diff --git a/src/automation/src/test/java/eu/teraflow/automation/AutomationFunctionalServiceTest.java b/src/automation/src/test/java/eu/teraflow/automation/AutomationFunctionalServiceTest.java index c15823d2175406c9cb465f9f096ad47d9a7e5700..d697569123484d1f8022a79794cf0367440cbbab 100644 --- a/src/automation/src/test/java/eu/teraflow/automation/AutomationFunctionalServiceTest.java +++ b/src/automation/src/test/java/eu/teraflow/automation/AutomationFunctionalServiceTest.java @@ -21,14 +21,21 @@ import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import automation.Automation; import context.ContextOuterClass; import eu.teraflow.automation.context.ContextGateway; +import eu.teraflow.automation.context.model.ConfigActionEnum; +import eu.teraflow.automation.context.model.ConfigRule; +import eu.teraflow.automation.context.model.ConfigRuleCustom; +import eu.teraflow.automation.context.model.ConfigRuleTypeCustom; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceConfig; +import eu.teraflow.automation.context.model.DeviceDriverEnum; +import eu.teraflow.automation.context.model.DeviceOperationalStatus; +import eu.teraflow.automation.context.model.EndPoint; +import eu.teraflow.automation.context.model.EndPointId; +import eu.teraflow.automation.context.model.Location; +import eu.teraflow.automation.context.model.LocationTypeRegion; +import eu.teraflow.automation.context.model.TopologyId; import eu.teraflow.automation.device.DeviceGateway; -import eu.teraflow.automation.device.model.ConfigActionEnum; -import eu.teraflow.automation.device.model.ConfigRule; -import eu.teraflow.automation.device.model.ConfigRuleCustom; -import eu.teraflow.automation.device.model.ConfigRuleTypeCustom; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceConfig; -import eu.teraflow.automation.device.model.DeviceOperationalStatus; +import eu.teraflow.automation.kpi_sample_types.model.KpiSampleType; import io.quarkus.test.junit.QuarkusTest; import io.quarkus.test.junit.mockito.InjectMock; import io.smallrye.mutiny.Uni; @@ -90,7 +97,36 @@ class AutomationFunctionalServiceTest { Uni expectedDeviceConfigUni = Uni.createFrom().item(expectedDeviceConfig); Uni expectedDeviceId = Uni.createFrom().item(deviceId); - Device device = new Device(deviceId, deviceType, DeviceOperationalStatus.DISABLED); + final var deviceDrivers = List.of(DeviceDriverEnum.IETF_NETWORK_TOPOLOGY, DeviceDriverEnum.P4); + + final var topologyIdA = new TopologyId("contextIdA", "idA"); + final var deviceIdA = "deviceIdA"; + final var idA = "idA"; + final var endPointIdA = new EndPointId(topologyIdA, deviceIdA, idA); + + final var endPointTypeA = "endPointTypeA"; + final var kpiSampleTypesA = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionA = new LocationTypeRegion("ATH"); + final var locationA = new Location(locationTypeRegionA); + final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); + + final var topologyIdB = new TopologyId("contextIdB", "idB"); + final var deviceIdB = "deviceIdB"; + final var idB = "idB"; + final var endPointIdB = new EndPointId(topologyIdB, deviceIdB, idB); + final var endPointTypeB = "endPointTypeB"; + final var kpiSampleTypesB = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionB = new LocationTypeRegion("ATH"); + final var locationB = new Location(locationTypeRegionB); + final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); + + final var endPoints = List.of(endPointA, endPointB); + + Device device = + new Device( + deviceId, deviceType, DeviceOperationalStatus.DISABLED, deviceDrivers, endPoints); Uni deviceUni = Uni.createFrom().item(device); Mockito.when(contextGateway.getDevice(Mockito.any())).thenReturn(deviceUni); @@ -169,8 +205,41 @@ class AutomationFunctionalServiceTest { DeviceConfig expectedDeviceConfig = new DeviceConfig(configRuleList); + final var deviceDrivers = List.of(DeviceDriverEnum.IETF_NETWORK_TOPOLOGY, DeviceDriverEnum.P4); + + final var topologyIdA = new TopologyId("contextIdA", "idA"); + final var deviceIdA = "deviceIdA"; + final var idA = "idA"; + final var endPointIdA = new EndPointId(topologyIdA, deviceIdA, idA); + + final var endPointTypeA = "endPointTypeA"; + final var kpiSampleTypesA = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionA = new LocationTypeRegion("ATH"); + final var locationA = new Location(locationTypeRegionA); + final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); + + final var topologyIdB = new TopologyId("contextIdB", "idB"); + final var deviceIdB = "deviceIdB"; + final var idB = "idB"; + final var endPointIdB = new EndPointId(topologyIdB, deviceIdB, idB); + final var endPointTypeB = "endPointTypeB"; + final var kpiSampleTypesB = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionB = new LocationTypeRegion("ATH"); + final var locationB = new Location(locationTypeRegionB); + final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); + + final var endPoints = List.of(endPointA, endPointB); + Device device = - new Device(deviceId, deviceType, expectedDeviceConfig, DeviceOperationalStatus.ENABLED); + new Device( + deviceId, + deviceType, + expectedDeviceConfig, + DeviceOperationalStatus.ENABLED, + deviceDrivers, + endPoints); Uni deviceUni = Uni.createFrom().item(device); diff --git a/src/automation/src/test/java/eu/teraflow/automation/AutomationServiceTest.java b/src/automation/src/test/java/eu/teraflow/automation/AutomationServiceTest.java index a6e51514c1fff366ee36c5d8f93eb0ecb88e666f..d56ef139234df5da19f20364b5a93fd58ba35b4d 100644 --- a/src/automation/src/test/java/eu/teraflow/automation/AutomationServiceTest.java +++ b/src/automation/src/test/java/eu/teraflow/automation/AutomationServiceTest.java @@ -21,14 +21,21 @@ import static org.assertj.core.api.Assertions.assertThat; import automation.Automation; import automation.AutomationService; import eu.teraflow.automation.context.ContextGateway; +import eu.teraflow.automation.context.model.ConfigActionEnum; +import eu.teraflow.automation.context.model.ConfigRule; +import eu.teraflow.automation.context.model.ConfigRuleCustom; +import eu.teraflow.automation.context.model.ConfigRuleTypeCustom; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceConfig; +import eu.teraflow.automation.context.model.DeviceDriverEnum; +import eu.teraflow.automation.context.model.DeviceOperationalStatus; +import eu.teraflow.automation.context.model.EndPoint; +import eu.teraflow.automation.context.model.EndPointId; +import eu.teraflow.automation.context.model.Location; +import eu.teraflow.automation.context.model.LocationTypeRegion; +import eu.teraflow.automation.context.model.TopologyId; import eu.teraflow.automation.device.DeviceGateway; -import eu.teraflow.automation.device.model.ConfigActionEnum; -import eu.teraflow.automation.device.model.ConfigRule; -import eu.teraflow.automation.device.model.ConfigRuleCustom; -import eu.teraflow.automation.device.model.ConfigRuleTypeCustom; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceConfig; -import eu.teraflow.automation.device.model.DeviceOperationalStatus; +import eu.teraflow.automation.kpi_sample_types.model.KpiSampleType; import eu.teraflow.automation.model.DeviceRole; import eu.teraflow.automation.model.DeviceRoleId; import eu.teraflow.automation.model.DeviceRoleType; @@ -68,9 +75,42 @@ class AutomationServiceTest { final var DEVICE_ROLE_ID = "0f14d0ab-9608-7862-a9e4-5ed26688389a"; final var DEVICE_TYPE = "ztp"; + final var deviceDrivers = List.of(DeviceDriverEnum.IETF_NETWORK_TOPOLOGY, DeviceDriverEnum.P4); + + final var topologyIdA = new TopologyId("contextIdA", "idA"); + final var deviceIdA = "deviceIdA"; + final var idA = "idA"; + final var endPointIdA = new EndPointId(topologyIdA, deviceIdA, idA); + + final var endPointTypeA = "endPointTypeA"; + final var kpiSampleTypesA = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionA = new LocationTypeRegion("ATH"); + final var locationA = new Location(locationTypeRegionA); + final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); + + final var topologyIdB = new TopologyId("contextIdB", "idB"); + final var deviceIdB = "deviceIdB"; + final var idB = "idB"; + final var endPointIdB = new EndPointId(topologyIdB, deviceIdB, idB); + final var endPointTypeB = "endPointTypeB"; + final var kpiSampleTypesB = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionB = new LocationTypeRegion("ATH"); + final var locationB = new Location(locationTypeRegionB); + final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); + + final var endPoints = List.of(endPointA, endPointB); + final var emptyDeviceConfig = new DeviceConfig(List.of()); final var disabledDevice = - new Device(DEVICE_ID, DEVICE_TYPE, emptyDeviceConfig, DeviceOperationalStatus.DISABLED); + new Device( + DEVICE_ID, + DEVICE_TYPE, + emptyDeviceConfig, + DeviceOperationalStatus.DISABLED, + deviceDrivers, + endPoints); Mockito.when(contextGateway.getDevice(Mockito.any())) .thenReturn(Uni.createFrom().item(disabledDevice)); diff --git a/src/automation/src/test/java/eu/teraflow/automation/ConfigRuleTypeTest.java b/src/automation/src/test/java/eu/teraflow/automation/ConfigRuleTypeTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ec1da0ccb4e9bee46d6327f1da2016610494714e --- /dev/null +++ b/src/automation/src/test/java/eu/teraflow/automation/ConfigRuleTypeTest.java @@ -0,0 +1,90 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation; + +import static org.assertj.core.api.Assertions.assertThat; + +import eu.teraflow.automation.acl.AclAction; +import eu.teraflow.automation.acl.AclEntry; +import eu.teraflow.automation.acl.AclForwardActionEnum; +import eu.teraflow.automation.acl.AclLogActionEnum; +import eu.teraflow.automation.acl.AclMatch; +import eu.teraflow.automation.acl.AclRuleSet; +import eu.teraflow.automation.acl.AclRuleTypeEnum; +import eu.teraflow.automation.context.model.ConfigRuleAcl; +import eu.teraflow.automation.context.model.ConfigRuleCustom; +import eu.teraflow.automation.context.model.ConfigRuleTypeAcl; +import eu.teraflow.automation.context.model.ConfigRuleTypeCustom; +import eu.teraflow.automation.context.model.EndPointId; +import eu.teraflow.automation.context.model.TopologyId; +import io.quarkus.test.junit.QuarkusTest; +import java.util.List; +import org.junit.jupiter.api.Test; + +@QuarkusTest +class ConfigRuleTypeTest { + + private AclMatch createAclMatch() { + + return new AclMatch(1, 2, "192.168.3.52", "192.168.4.192", 3224, 3845, 5, 10); + } + + private AclAction createAclAction() { + + return new AclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + } + + private AclEntry createAclEntry(AclMatch aclMatch, AclAction aclAction) { + + return new AclEntry(1, "aclEntryDescription", aclMatch, aclAction); + } + + @Test + void shouldExtractConfigRuleCustomFromConfigRuleTypeCustom() { + final var resourceKey = "resourceKey"; + final var resourceValue = "resourceValue"; + + final var expectedConfigRuleCustom = new ConfigRuleCustom(resourceKey, resourceValue); + final var configRuleTypeCustom = new ConfigRuleTypeCustom(expectedConfigRuleCustom); + + assertThat(configRuleTypeCustom.getConfigRuleType()).isEqualTo(expectedConfigRuleCustom); + } + + @Test + void shouldExtractConfigRuleAclFromConfigRuleTypeAcl() { + final var contextIdUuid = "contextId"; + final var topologyIdUuid = "topologyUuid"; + final var deviceIdUuid = "deviceIdUuid"; + final var endpointIdUuid = "endpointIdUuid"; + + final var topologyId = new TopologyId(contextIdUuid, topologyIdUuid); + final var endPointId = new EndPointId(topologyId, deviceIdUuid, endpointIdUuid); + + final var aclMatch = createAclMatch(); + final var aclAction = createAclAction(); + final var aclEntry = createAclEntry(aclMatch, aclAction); + + final var aclRuleSet = + new AclRuleSet( + "aclRuleName", AclRuleTypeEnum.IPV4, "AclRuleDescription", "userId", List.of(aclEntry)); + + final var expectedConfigRuleAcl = new ConfigRuleAcl(endPointId, aclRuleSet); + final var configRuleTypeAcl = new ConfigRuleTypeAcl(expectedConfigRuleAcl); + + assertThat(configRuleTypeAcl.getConfigRuleType()).isEqualTo(expectedConfigRuleAcl); + } +} diff --git a/src/automation/src/test/java/eu/teraflow/automation/ContextSubscriberTest.java b/src/automation/src/test/java/eu/teraflow/automation/ContextSubscriberTest.java index 6039de58ec8f991f5ccbe0bcfd21871ee1e4c432..e8a97d7922b49878af533c23918cf7b23aa20c06 100644 --- a/src/automation/src/test/java/eu/teraflow/automation/ContextSubscriberTest.java +++ b/src/automation/src/test/java/eu/teraflow/automation/ContextSubscriberTest.java @@ -6,9 +6,9 @@ import static org.mockito.Mockito.verify; import automation.Automation; import context.ContextOuterClass; import eu.teraflow.automation.context.ContextGateway; +import eu.teraflow.automation.context.model.DeviceEvent; import eu.teraflow.automation.context.model.Event; import eu.teraflow.automation.context.model.EventTypeEnum; -import eu.teraflow.automation.device.model.DeviceEvent; import io.quarkus.runtime.StartupEvent; import io.quarkus.test.junit.QuarkusTest; import io.quarkus.test.junit.mockito.InjectMock; diff --git a/src/automation/src/test/java/eu/teraflow/automation/LocationTypeTest.java b/src/automation/src/test/java/eu/teraflow/automation/LocationTypeTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f89830e425feffeac377c9d20c0561221f835ec6 --- /dev/null +++ b/src/automation/src/test/java/eu/teraflow/automation/LocationTypeTest.java @@ -0,0 +1,49 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.automation; + +import static org.assertj.core.api.Assertions.assertThat; + +import eu.teraflow.automation.context.model.GpsPosition; +import eu.teraflow.automation.context.model.LocationTypeGpsPosition; +import eu.teraflow.automation.context.model.LocationTypeRegion; +import io.quarkus.test.junit.QuarkusTest; +import org.junit.jupiter.api.Test; + +@QuarkusTest +class LocationTypeTest { + + @Test + void shouldExtractRegionFromLocationTypeRegion() { + final var expectedRegion = "ATH"; + + final var locationTypeRegion = new LocationTypeRegion(expectedRegion); + + assertThat(locationTypeRegion.getLocationType()).isEqualTo(expectedRegion); + } + + @Test + void shouldExtractLocationGpsPositionFromLocationTypeGpsPosition() { + final var latitude = 3.99f; + final var longitude = 77.32f; + + final var expectedLocationGpsPosition = new GpsPosition(latitude, longitude); + final var locationTypeGpsPosition = new LocationTypeGpsPosition(expectedLocationGpsPosition); + + assertThat(locationTypeGpsPosition.getLocationType()).isEqualTo(expectedLocationGpsPosition); + } +} diff --git a/src/automation/src/test/java/eu/teraflow/automation/SerializerTest.java b/src/automation/src/test/java/eu/teraflow/automation/SerializerTest.java index 1c28bb4969fccd71b594606700876c44d3a4aaa2..35074b1dd4a62f0accf49db3ec87c32942de6183 100644 --- a/src/automation/src/test/java/eu/teraflow/automation/SerializerTest.java +++ b/src/automation/src/test/java/eu/teraflow/automation/SerializerTest.java @@ -17,6 +17,7 @@ package eu.teraflow.automation; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import acl.Acl; import automation.Automation; @@ -31,27 +32,36 @@ import eu.teraflow.automation.acl.AclLogActionEnum; import eu.teraflow.automation.acl.AclMatch; import eu.teraflow.automation.acl.AclRuleSet; import eu.teraflow.automation.acl.AclRuleTypeEnum; +import eu.teraflow.automation.context.model.ConfigActionEnum; +import eu.teraflow.automation.context.model.ConfigRule; +import eu.teraflow.automation.context.model.ConfigRuleAcl; +import eu.teraflow.automation.context.model.ConfigRuleCustom; +import eu.teraflow.automation.context.model.ConfigRuleTypeAcl; +import eu.teraflow.automation.context.model.ConfigRuleTypeCustom; +import eu.teraflow.automation.context.model.Device; +import eu.teraflow.automation.context.model.DeviceConfig; +import eu.teraflow.automation.context.model.DeviceDriverEnum; +import eu.teraflow.automation.context.model.DeviceEvent; +import eu.teraflow.automation.context.model.DeviceOperationalStatus; +import eu.teraflow.automation.context.model.EndPoint; +import eu.teraflow.automation.context.model.EndPointId; import eu.teraflow.automation.context.model.Event; import eu.teraflow.automation.context.model.EventTypeEnum; -import eu.teraflow.automation.device.model.ConfigActionEnum; -import eu.teraflow.automation.device.model.ConfigRule; -import eu.teraflow.automation.device.model.ConfigRuleAcl; -import eu.teraflow.automation.device.model.ConfigRuleCustom; -import eu.teraflow.automation.device.model.ConfigRuleTypeAcl; -import eu.teraflow.automation.device.model.ConfigRuleTypeCustom; -import eu.teraflow.automation.device.model.Device; -import eu.teraflow.automation.device.model.DeviceConfig; -import eu.teraflow.automation.device.model.DeviceEvent; -import eu.teraflow.automation.device.model.DeviceOperationalStatus; -import eu.teraflow.automation.device.model.EndPointId; -import eu.teraflow.automation.device.model.TopologyId; +import eu.teraflow.automation.context.model.GpsPosition; +import eu.teraflow.automation.context.model.Location; +import eu.teraflow.automation.context.model.LocationTypeGpsPosition; +import eu.teraflow.automation.context.model.LocationTypeRegion; +import eu.teraflow.automation.context.model.TopologyId; +import eu.teraflow.automation.kpi_sample_types.model.KpiSampleType; import eu.teraflow.automation.model.DeviceRole; import eu.teraflow.automation.model.DeviceRoleId; import eu.teraflow.automation.model.DeviceRoleType; import io.quarkus.test.junit.QuarkusTest; import java.util.List; +import java.util.stream.Collectors; import java.util.stream.Stream; import javax.inject.Inject; +import kpi_sample_types.KpiSampleTypes; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -977,6 +987,92 @@ class SerializerTest { assertThat(configRule).usingRecursiveComparison().isEqualTo(expectedConfigRule); } + @Test + void shouldThrowIllegalStateExceptionDuringDeserializationOfNonSpecifiedConfigRule() { + final var serializedConfigRule = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_SET) + .build(); + + assertThatExceptionOfType(IllegalStateException.class) + .isThrownBy(() -> serializer.deserialize(serializedConfigRule)); + } + + private static Stream provideKpiSampleType() { + return Stream.of( + Arguments.of( + KpiSampleType.PACKETS_TRANSMITTED, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED), + Arguments.of( + KpiSampleType.PACKETS_RECEIVED, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED), + Arguments.of( + KpiSampleType.BYTES_TRANSMITTED, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED), + Arguments.of( + KpiSampleType.BYTES_RECEIVED, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED), + Arguments.of(KpiSampleType.UNKNOWN, KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN)); + } + + @ParameterizedTest + @MethodSource("provideKpiSampleType") + void shouldSerializeKpiSampleType( + KpiSampleType kpiSampleType, KpiSampleTypes.KpiSampleType expectedSerializedType) { + final var serializedKpiSampleType = serializer.serialize(kpiSampleType); + + assertThat(serializedKpiSampleType.getNumber()).isEqualTo(expectedSerializedType.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideKpiSampleType") + void shouldDeserializeKpiSampleType( + KpiSampleType expectedKpiSampleType, KpiSampleTypes.KpiSampleType serializedKpiSampleType) { + final var kpiSampleType = serializer.deserialize(serializedKpiSampleType); + + assertThat(kpiSampleType).isEqualTo(expectedKpiSampleType); + } + + private static Stream provideDeviceDriverEnum() { + return Stream.of( + Arguments.of( + DeviceDriverEnum.OPENCONFIG, + ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG), + Arguments.of( + DeviceDriverEnum.TRANSPORT_API, + ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_TRANSPORT_API), + Arguments.of(DeviceDriverEnum.P4, ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_P4), + Arguments.of( + DeviceDriverEnum.IETF_NETWORK_TOPOLOGY, + ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_IETF_NETWORK_TOPOLOGY), + Arguments.of( + DeviceDriverEnum.ONF_TR_352, + ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_ONF_TR_352), + Arguments.of( + DeviceDriverEnum.UNDEFINED, ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_UNDEFINED)); + } + + @ParameterizedTest + @MethodSource("provideDeviceDriverEnum") + void shouldSerializeDeviceDriverEnum( + DeviceDriverEnum deviceDriverEnum, + ContextOuterClass.DeviceDriverEnum expectedDeviceDriverEnum) { + final var serializedDeviceDriverEnum = serializer.serialize(deviceDriverEnum); + + assertThat(serializedDeviceDriverEnum.getNumber()) + .isEqualTo(expectedDeviceDriverEnum.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideDeviceDriverEnum") + void shouldDeserializeDeviceDriverEnum( + DeviceDriverEnum expectedDeviceDriverEnum, + ContextOuterClass.DeviceDriverEnum serializedDeviceDriverEnum) { + final var deviceDriverEnum = serializer.deserialize(serializedDeviceDriverEnum); + + assertThat(deviceDriverEnum).isEqualTo(expectedDeviceDriverEnum); + } + @Test void shouldSerializeDeviceConfig() { final var expectedConfigRuleCustomA = @@ -1100,6 +1196,89 @@ class SerializerTest { assertThat(operationalStatus).isEqualTo(expectedOpStatus); } + @Test + void shouldSerializeLocationOfTypeRegion() { + final var region = "Tokyo"; + + final var locationTypeRegion = new LocationTypeRegion(region); + final var location = new Location(locationTypeRegion); + + final var expectedLocation = ContextOuterClass.Location.newBuilder().setRegion(region).build(); + + final var serializedLocation = serializer.serialize(location); + + assertThat(serializedLocation).isEqualTo(expectedLocation); + } + + @Test + void shouldDeserializeLocationOfTypeRegion() { + final var region = "Tokyo"; + + final var locationTypeRegion = new LocationTypeRegion(region); + final var expectedLocation = new Location(locationTypeRegion); + + final var serializedLocation = + ContextOuterClass.Location.newBuilder().setRegion(region).build(); + + final var location = serializer.deserialize(serializedLocation); + + assertThat(location).usingRecursiveComparison().isEqualTo(expectedLocation); + } + + @Test + void shouldSerializeLocationOfTypeGpsPosition() { + final var latitude = 33.3f; + final var longitude = 86.4f; + + final var gpsPosition = new GpsPosition(latitude, longitude); + final var locationTypeGpsPosition = new LocationTypeGpsPosition(gpsPosition); + final var location = new Location(locationTypeGpsPosition); + + final var serializedGpsPosition = + ContextOuterClass.GPS_Position.newBuilder() + .setLatitude(latitude) + .setLongitude(longitude) + .build(); + + final var expectedLocation = + ContextOuterClass.Location.newBuilder().setGpsPosition(serializedGpsPosition).build(); + + final var serializedLocation = serializer.serialize(location); + + assertThat(serializedLocation).isEqualTo(expectedLocation); + } + + @Test + void shouldDeserializeLocationOfTypeGpsPosition() { + final var latitude = 33.3f; + final var longitude = 86.4f; + + final var gpsPosition = new GpsPosition(latitude, longitude); + final var locationTypeGpsPosition = new LocationTypeGpsPosition(gpsPosition); + final var expectedLocation = new Location(locationTypeGpsPosition); + + final var serializedGpsPosition = + ContextOuterClass.GPS_Position.newBuilder() + .setLatitude(latitude) + .setLongitude(longitude) + .build(); + + final var serializedLocation = + ContextOuterClass.Location.newBuilder().setGpsPosition(serializedGpsPosition).build(); + + final var location = serializer.deserialize(serializedLocation); + + assertThat(location).usingRecursiveComparison().isEqualTo(expectedLocation); + } + + @Test + void shouldThrowIllegalStateExceptionDuringDeserializationOfNonSpecifiedLocation() { + final var serializedLocation = ContextOuterClass.Location.newBuilder().build(); + + assertThatExceptionOfType(IllegalStateException.class) + .isThrownBy(() -> serializer.deserialize(serializedLocation)); + } + @Test void shouldSerializeDevice() { final var expectedConfigRuleCustomA = @@ -1115,24 +1294,71 @@ class SerializerTest { .setCustom(expectedConfigRuleCustomA) .build(); + final var configRuleTypeA = new ConfigRuleTypeCustom(configRuleCustomA); + final var deviceConfig = + new DeviceConfig(List.of(new ConfigRule(ConfigActionEnum.SET, configRuleTypeA))); + + final var deviceDrivers = List.of(DeviceDriverEnum.IETF_NETWORK_TOPOLOGY, DeviceDriverEnum.P4); + + final var expectedTopologyIdA = new TopologyId("contextIdA", "idA"); + final var expectedDeviceIdA = "expectedDeviceIdA"; + final var expectedIdA = "expectedIdA"; + final var endPointIdA = new EndPointId(expectedTopologyIdA, expectedDeviceIdA, expectedIdA); + + final var endPointTypeA = "endPointTypeA"; + final var kpiSampleTypesA = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionA = new LocationTypeRegion("ATH"); + final var locationA = new Location(locationTypeRegionA); + final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); + + final var expectedTopologyIdB = new TopologyId("contextIdB", "idB"); + final var expectedDeviceIdB = "expectedDeviceIdB"; + final var expectedIdB = "expectedIdB"; + final var endPointIdB = new EndPointId(expectedTopologyIdB, expectedDeviceIdB, expectedIdB); + + final var endPointTypeB = "endPointTypeB"; + final var kpiSampleTypesB = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionB = new LocationTypeRegion("ATH"); + final var locationB = new Location(locationTypeRegionB); + final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); + + final var endPoints = List.of(endPointA, endPointB); + final var expectedDeviceConfig = ContextOuterClass.DeviceConfig.newBuilder().addConfigRules(expectedConfigRule).build(); - final var deviceBuilder = ContextOuterClass.Device.newBuilder(); final var serializedDeviceId = serializer.serializeDeviceId("deviceId"); + final var serializedDrivers = + deviceDrivers.stream() + .map(deviceDriverEnum -> serializer.serialize(deviceDriverEnum)) + .collect(Collectors.toList()); + + final var serializedEndPoints = + endPoints.stream() + .map(endPoint -> serializer.serialize(endPoint)) + .collect(Collectors.toList()); + + final var deviceBuilder = ContextOuterClass.Device.newBuilder(); deviceBuilder.setDeviceId(serializedDeviceId); deviceBuilder.setDeviceType("deviceType"); deviceBuilder.setDeviceConfig(expectedDeviceConfig); deviceBuilder.setDeviceOperationalStatus(serializer.serialize(DeviceOperationalStatus.ENABLED)); + deviceBuilder.addAllDeviceDrivers(serializedDrivers); + deviceBuilder.addAllDeviceEndpoints(serializedEndPoints); final var expectedDevice = deviceBuilder.build(); - final var configRuleTypeA = new ConfigRuleTypeCustom(configRuleCustomA); - final var deviceConfig = - new DeviceConfig(List.of(new ConfigRule(ConfigActionEnum.SET, configRuleTypeA))); final var device = - new Device("deviceId", "deviceType", deviceConfig, DeviceOperationalStatus.ENABLED); + new Device( + "deviceId", + "deviceType", + deviceConfig, + DeviceOperationalStatus.ENABLED, + deviceDrivers, + endPoints); final var serializedDevice = serializer.serialize(device); assertThat(serializedDevice).isEqualTo(expectedDevice); @@ -1150,8 +1376,43 @@ class SerializerTest { final var expectedConfig = new DeviceConfig(List.of(new ConfigRule(ConfigActionEnum.DELETE, configRuleType))); + + final var deviceDrivers = List.of(DeviceDriverEnum.IETF_NETWORK_TOPOLOGY, DeviceDriverEnum.P4); + + final var expectedTopologyIdA = new TopologyId("contextIdA", "idA"); + final var expectedDeviceIdA = "expectedDeviceIdA"; + final var expectedIdA = "expectedIdA"; + final var endPointIdA = new EndPointId(expectedTopologyIdA, expectedDeviceIdA, expectedIdA); + + final var endPointTypeA = "endPointTypeA"; + final var kpiSampleTypesA = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionA = new LocationTypeRegion("ATH"); + final var locationA = new Location(locationTypeRegionA); + final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); + + final var expectedTopologyIdB = new TopologyId("contextIdB", "idB"); + final var expectedDeviceIdB = "expectedDeviceIdB"; + final var expectedIdB = "expectedIdB"; + final var endPointIdB = new EndPointId(expectedTopologyIdB, expectedDeviceIdB, expectedIdB); + + final var endPointTypeB = "endPointTypeB"; + final var kpiSampleTypesB = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionB = new LocationTypeRegion("ATH"); + final var locationB = new Location(locationTypeRegionB); + final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); + + final var endPoints = List.of(endPointA, endPointB); + final var expectedDevice = - new Device("deviceId", "deviceType", expectedConfig, DeviceOperationalStatus.ENABLED); + new Device( + "deviceId", + "deviceType", + expectedConfig, + DeviceOperationalStatus.ENABLED, + deviceDrivers, + endPoints); final var configRule = ContextOuterClass.ConfigRule.newBuilder() @@ -1162,12 +1423,26 @@ class SerializerTest { ContextOuterClass.DeviceConfig.newBuilder().addConfigRules(configRule).build(); final var serializedDeviceId = serializer.serializeDeviceId("deviceId"); + final var serializedDeviceOperationalStatus = + serializer.serialize(DeviceOperationalStatus.ENABLED); + + final var serializedDrivers = + deviceDrivers.stream() + .map(deviceDriverEnum -> serializer.serialize(deviceDriverEnum)) + .collect(Collectors.toList()); + + final var serializedEndPoints = + endPoints.stream() + .map(endPoint -> serializer.serialize(endPoint)) + .collect(Collectors.toList()); final var deviceBuilder = ContextOuterClass.Device.newBuilder(); deviceBuilder.setDeviceId(serializedDeviceId); deviceBuilder.setDeviceType("deviceType"); deviceBuilder.setDeviceConfig(deviceConfig); - deviceBuilder.setDeviceOperationalStatus(serializer.serialize(DeviceOperationalStatus.ENABLED)); + deviceBuilder.setDeviceOperationalStatus(serializedDeviceOperationalStatus); + deviceBuilder.addAllDeviceDrivers(serializedDrivers); + deviceBuilder.addAllDeviceEndpoints(serializedEndPoints); final var serializedDevice = deviceBuilder.build(); final var device = serializer.deserialize(serializedDevice); diff --git a/src/automation/target/kubernetes/kubernetes.yml b/src/automation/target/kubernetes/kubernetes.yml index 1fbe9abc524515bb140b226f5f818a10e845a90c..5fa64eaa3ff3f5f32659f226ee892ec78f5eedd2 100644 --- a/src/automation/target/kubernetes/kubernetes.yml +++ b/src/automation/target/kubernetes/kubernetes.yml @@ -3,8 +3,8 @@ apiVersion: v1 kind: Service metadata: annotations: - app.quarkus.io/commit-id: 74773b80b7b73352a520b5053826ea2cf3b54770 - app.quarkus.io/build-timestamp: 2022-07-19 - 10:14:45 +0000 + app.quarkus.io/commit-id: cc97cda43489c948a3267ddcb2833ae67f5880cc + app.quarkus.io/build-timestamp: 2022-07-22 - 11:36:51 +0000 labels: app.kubernetes.io/name: automationservice app: automationservice @@ -17,9 +17,6 @@ spec: - name: http port: 8080 targetPort: 8080 - - name: grpc-server - port: 5050 - targetPort: 5050 selector: app.kubernetes.io/name: automationservice type: ClusterIP @@ -28,8 +25,8 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - app.quarkus.io/commit-id: 74773b80b7b73352a520b5053826ea2cf3b54770 - app.quarkus.io/build-timestamp: 2022-07-19 - 10:14:45 +0000 + app.quarkus.io/commit-id: cc97cda43489c948a3267ddcb2833ae67f5880cc + app.quarkus.io/build-timestamp: 2022-07-22 - 11:36:51 +0000 labels: app: automationservice app.kubernetes.io/name: automationservice @@ -42,8 +39,8 @@ spec: template: metadata: annotations: - app.quarkus.io/commit-id: 74773b80b7b73352a520b5053826ea2cf3b54770 - app.quarkus.io/build-timestamp: 2022-07-19 - 10:14:45 +0000 + app.quarkus.io/commit-id: cc97cda43489c948a3267ddcb2833ae67f5880cc + app.quarkus.io/build-timestamp: 2022-07-22 - 11:36:51 +0000 labels: app: automationservice app.kubernetes.io/name: automationservice @@ -78,9 +75,6 @@ spec: - containerPort: 8080 name: http protocol: TCP - - containerPort: 5050 - name: grpc-server - protocol: TCP readinessProbe: failureThreshold: 3 httpGet: diff --git a/src/compute/.gitlab-ci.yml b/src/compute/.gitlab-ci.yml index 9cbc2b03f9b3d553fea75bde3fdc9fc03d95d229..52b36e8196822c35503f3e644a0d57691fc5f5f0 100644 --- a/src/compute/.gitlab-ci.yml +++ b/src/compute/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag and push the Docker image to the GitLab registry +# Build, tag, and push the Docker image to the GitLab Docker registry build compute: variables: IMAGE_NAME: 'compute' # name of the microservice diff --git a/src/compute/requirements.in b/src/compute/requirements.in index af1ed2a2856a7be38393c034310e74f69ad7b558..906615e54488056e3f8e8801bbfd333eab1c23b7 100644 --- a/src/compute/requirements.in +++ b/src/compute/requirements.in @@ -1,4 +1,4 @@ -Flask==2.0.2 +Flask==2.1.3 Flask-HTTPAuth==4.5.0 Flask-RESTful==0.3.9 jsonschema==4.4.0 diff --git a/src/context/.gitlab-ci.yml b/src/context/.gitlab-ci.yml index 8f112e690cd51b4bec1c8a9652ddfc3e489fddd1..0da2b582edf879f793341887adef9cef5ad4fff2 100644 --- a/src/context/.gitlab-ci.yml +++ b/src/context/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag and push the Docker image to the GitLab registry +# Build, tag, and push the Docker image to the GitLab Docker registry build context: variables: IMAGE_NAME: 'context' # name of the microservice diff --git a/src/context/requirements.in b/src/context/requirements.in index 83193ae7012c81881dbbb0412878cd759252f65e..9cc7e71f2428fbb42693f47c911340e5f3f2dbc1 100644 --- a/src/context/requirements.in +++ b/src/context/requirements.in @@ -1,4 +1,4 @@ -Flask==2.0.2 +Flask==2.1.3 Flask-RESTful==0.3.9 redis==4.1.2 requests==2.27.1 diff --git a/src/device/.gitlab-ci.yml b/src/device/.gitlab-ci.yml index cb6750d6b215c84a139a6630ae19762e7813fc0c..3da19e7a38c9659fb8c86afd7beaefc7e08a6d7c 100644 --- a/src/device/.gitlab-ci.yml +++ b/src/device/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag and push the Docker image to the GitLab registry +# Build, tag, and push the Docker image to the GitLab Docker registry build device: variables: IMAGE_NAME: 'device' # name of the microservice diff --git a/src/interdomain/.gitlab-ci.yml b/src/interdomain/.gitlab-ci.yml index 6aa2849f75ff225fc78d8693003bb8348b89adbf..23bad6cf3b604b6134325b72316d036a9e53b6fc 100644 --- a/src/interdomain/.gitlab-ci.yml +++ b/src/interdomain/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag and push the Docker image to the GitLab registry +# Build, tag, and push the Docker image to the GitLab Docker registry build interdomain: variables: IMAGE_NAME: 'interdomain' # name of the microservice diff --git a/src/l3_attackmitigator/.gitlab-ci.yml b/src/l3_attackmitigator/.gitlab-ci.yml index 28d5ad4cf109cd438da2625a08689b327688ea37..bcad35c74b3ca2f427b54831f313db855657c821 100644 --- a/src/l3_attackmitigator/.gitlab-ci.yml +++ b/src/l3_attackmitigator/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag, and push the Docker images to the GitLab Docker registry +# Build, tag, and push the Docker image to the GitLab Docker registry build l3_attackmitigator: variables: IMAGE_NAME: 'l3_attackmitigator' # name of the microservice @@ -21,22 +21,24 @@ build l3_attackmitigator: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile ./src/ + - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: - docker images --filter="dangling=true" --quiet | xargs -r docker rmi rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - changes: + - src/common/**/*.py + - proto/*.proto - src/$IMAGE_NAME/**/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py - manifests/${IMAGE_NAME}service.yaml - .gitlab-ci.yml -# Pull, execute, and run unitary tests for the Docker image from the GitLab registry +# Apply unit test to the component unit test l3_attackmitigator: variables: IMAGE_NAME: 'l3_attackmitigator' # name of the microservice @@ -46,7 +48,7 @@ unit test l3_attackmitigator: - build l3_attackmitigator before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi + - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" @@ -62,8 +64,10 @@ unit test l3_attackmitigator: - docker network rm teraflowbridge rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - changes: + - src/common/**/*.py + - proto/*.proto - src/$IMAGE_NAME/**/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py diff --git a/src/l3_attackmitigator/Dockerfile b/src/l3_attackmitigator/Dockerfile index 2ed76a70b6ca0e2a140cb926b3343aab7fed37a5..2b814f0eed8fbfba96a759212ae5ff0e2172c14f 100644 --- a/src/l3_attackmitigator/Dockerfile +++ b/src/l3_attackmitigator/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM python:3-slim +FROM python:3.9-slim # Install dependencies RUN apt-get --yes --quiet --quiet update && \ @@ -28,22 +28,41 @@ RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ chmod +x /bin/grpc_health_probe # Get generic Python packages -RUN python3 -m pip install --upgrade pip setuptools wheel pip-tools +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools -# Set working directory +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt -# Create module sub-folders -RUN mkdir -p /var/teraflow/l3_attackmitigator +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; -# Get Python packages per module -COPY l3_attackmitigator/requirements.in l3_attackmitigator/requirements.in -RUN pip-compile --output-file=l3_attackmitigator/requirements.txt l3_attackmitigator/requirements.in -RUN python3 -m pip install -r l3_attackmitigator/requirements.in +# Create component sub-folders, get specific Python packages +RUN mkdir -p /var/teraflow/l3_attackmitigator +WORKDIR /var/teraflow/l3_attackmitigator +COPY src/l3_attackmitigator/requirements.in requirements.in +RUN pip-compile --quiet --output-file=requirements.txt requirements.in +RUN python3 -m pip install -r requirements.txt -# Add files into working directory -COPY common/. common -COPY l3_attackmitigator/. l3_attackmitigator +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/l3_attackmitigator/. l3_attackmitigator -# Start service service +# Start the service ENTRYPOINT ["python", "-m", "l3_attackmitigator.service"] diff --git a/src/l3_attackmitigator/client/l3_attackmitigatorClient.py b/src/l3_attackmitigator/client/l3_attackmitigatorClient.py index ba061c15d7f27383aefec63a92b15557d803fb80..77e09a2f718fb7d0748666842117f60652bebdea 100644 --- a/src/l3_attackmitigator/client/l3_attackmitigatorClient.py +++ b/src/l3_attackmitigator/client/l3_attackmitigatorClient.py @@ -14,10 +14,10 @@ import grpc, logging from common.tools.client.RetryDecorator import retry, delay_exponential -from l3_attackmitigator.proto.l3_attackmitigator_pb2_grpc import ( +from common.proto.l3_attackmitigator_pb2_grpc import ( L3AttackmitigatorStub, ) -from l3_attackmitigator.proto.l3_attackmitigator_pb2 import ( +from common.proto.l3_attackmitigator_pb2 import ( Output, EmptyMitigator ) diff --git a/src/l3_attackmitigator/genproto.sh b/src/l3_attackmitigator/genproto.sh deleted file mode 100755 index c69f7d0250f287259a68b6663bd7b46b8137f6dd..0000000000000000000000000000000000000000 --- a/src/l3_attackmitigator/genproto.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -eu -# -# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -# -# 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. - -# Make folder containing the script the root folder for its execution -cd $(dirname $0) - -rm -rf proto/*.py -rm -rf proto/__pycache__ -tee proto/__init__.py << EOF > /dev/null -# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -# -# 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. - -EOF - -python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto context.proto -python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto kpi_sample_types.proto -python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto l3_attackmitigator.proto - -rm proto/context_pb2_grpc.py -rm proto/kpi_sample_types_pb2_grpc.py - -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/context_pb2.py -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/kpi_sample_types_pb2.py -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_attackmitigator_pb2.py -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_attackmitigator_pb2_grpc.py diff --git a/src/l3_attackmitigator/proto/__init__.py b/src/l3_attackmitigator/proto/__init__.py deleted file mode 100644 index 70a33251242c51f49140e596b8208a19dd5245f7..0000000000000000000000000000000000000000 --- a/src/l3_attackmitigator/proto/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -# -# 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. - diff --git a/src/l3_attackmitigator/proto/context_pb2.py b/src/l3_attackmitigator/proto/context_pb2.py deleted file mode 100644 index 50d501d3ac053ad644554331af26e3c40cd426a1..0000000000000000000000000000000000000000 --- a/src/l3_attackmitigator/proto/context_pb2.py +++ /dev/null @@ -1,3071 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: context.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from . import kpi_sample_types_pb2 as kpi__sample__types__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='context.proto', - package='context', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\rcontext.proto\x12\x07\x63ontext\x1a\x16kpi_sample_types.proto\"\x07\n\x05\x45mpty\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"F\n\x05\x45vent\x12\x11\n\ttimestamp\x18\x01 \x01(\x01\x12*\n\nevent_type\x18\x02 \x01(\x0e\x32\x16.context.EventTypeEnum\"0\n\tContextId\x12#\n\x0c\x63ontext_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\xb6\x01\n\x07\x43ontext\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12)\n\x0ctopology_ids\x18\x02 \x03(\x0b\x32\x13.context.TopologyId\x12\'\n\x0bservice_ids\x18\x03 \x03(\x0b\x32\x12.context.ServiceId\x12/\n\ncontroller\x18\x04 \x01(\x0b\x32\x1b.context.TeraFlowController\"8\n\rContextIdList\x12\'\n\x0b\x63ontext_ids\x18\x01 \x03(\x0b\x32\x12.context.ContextId\"1\n\x0b\x43ontextList\x12\"\n\x08\x63ontexts\x18\x01 \x03(\x0b\x32\x10.context.Context\"U\n\x0c\x43ontextEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12&\n\ncontext_id\x18\x02 \x01(\x0b\x32\x12.context.ContextId\"Z\n\nTopologyId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12$\n\rtopology_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"~\n\x08Topology\x12(\n\x0btopology_id\x18\x01 \x01(\x0b\x32\x13.context.TopologyId\x12%\n\ndevice_ids\x18\x02 \x03(\x0b\x32\x11.context.DeviceId\x12!\n\x08link_ids\x18\x03 \x03(\x0b\x32\x0f.context.LinkId\";\n\x0eTopologyIdList\x12)\n\x0ctopology_ids\x18\x01 \x03(\x0b\x32\x13.context.TopologyId\"5\n\x0cTopologyList\x12%\n\ntopologies\x18\x01 \x03(\x0b\x32\x11.context.Topology\"X\n\rTopologyEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12(\n\x0btopology_id\x18\x02 \x01(\x0b\x32\x13.context.TopologyId\".\n\x08\x44\x65viceId\x12\"\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\x9a\x02\n\x06\x44\x65vice\x12$\n\tdevice_id\x18\x01 \x01(\x0b\x32\x11.context.DeviceId\x12\x13\n\x0b\x64\x65vice_type\x18\x02 \x01(\t\x12,\n\rdevice_config\x18\x03 \x01(\x0b\x32\x15.context.DeviceConfig\x12G\n\x19\x64\x65vice_operational_status\x18\x04 \x01(\x0e\x32$.context.DeviceOperationalStatusEnum\x12\x31\n\x0e\x64\x65vice_drivers\x18\x05 \x03(\x0e\x32\x19.context.DeviceDriverEnum\x12+\n\x10\x64\x65vice_endpoints\x18\x06 \x03(\x0b\x32\x11.context.EndPoint\"9\n\x0c\x44\x65viceConfig\x12)\n\x0c\x63onfig_rules\x18\x01 \x03(\x0b\x32\x13.context.ConfigRule\"5\n\x0c\x44\x65viceIdList\x12%\n\ndevice_ids\x18\x01 \x03(\x0b\x32\x11.context.DeviceId\".\n\nDeviceList\x12 \n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32\x0f.context.Device\"R\n\x0b\x44\x65viceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\"*\n\x06LinkId\x12 \n\tlink_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"X\n\x04Link\x12 \n\x07link_id\x18\x01 \x01(\x0b\x32\x0f.context.LinkId\x12.\n\x11link_endpoint_ids\x18\x02 \x03(\x0b\x32\x13.context.EndPointId\"/\n\nLinkIdList\x12!\n\x08link_ids\x18\x01 \x03(\x0b\x32\x0f.context.LinkId\"(\n\x08LinkList\x12\x1c\n\x05links\x18\x01 \x03(\x0b\x32\r.context.Link\"L\n\tLinkEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12 \n\x07link_id\x18\x02 \x01(\x0b\x32\x0f.context.LinkId\"X\n\tServiceId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12#\n\x0cservice_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"\xa6\x02\n\x07Service\x12&\n\nservice_id\x18\x01 \x01(\x0b\x32\x12.context.ServiceId\x12.\n\x0cservice_type\x18\x02 \x01(\x0e\x32\x18.context.ServiceTypeEnum\x12\x31\n\x14service_endpoint_ids\x18\x03 \x03(\x0b\x32\x13.context.EndPointId\x12\x30\n\x13service_constraints\x18\x04 \x03(\x0b\x32\x13.context.Constraint\x12.\n\x0eservice_status\x18\x05 \x01(\x0b\x32\x16.context.ServiceStatus\x12.\n\x0eservice_config\x18\x06 \x01(\x0b\x32\x16.context.ServiceConfig\"C\n\rServiceStatus\x12\x32\n\x0eservice_status\x18\x01 \x01(\x0e\x32\x1a.context.ServiceStatusEnum\":\n\rServiceConfig\x12)\n\x0c\x63onfig_rules\x18\x01 \x03(\x0b\x32\x13.context.ConfigRule\"8\n\rServiceIdList\x12\'\n\x0bservice_ids\x18\x01 \x03(\x0b\x32\x12.context.ServiceId\"1\n\x0bServiceList\x12\"\n\x08services\x18\x01 \x03(\x0b\x32\x10.context.Service\"U\n\x0cServiceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12&\n\nservice_id\x18\x02 \x01(\x0b\x32\x12.context.ServiceId\"T\n\x07SliceId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12!\n\nslice_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"\x95\x02\n\x05Slice\x12\"\n\x08slice_id\x18\x01 \x01(\x0b\x32\x10.context.SliceId\x12/\n\x12slice_endpoint_ids\x18\x02 \x03(\x0b\x32\x13.context.EndPointId\x12.\n\x11slice_constraints\x18\x03 \x03(\x0b\x32\x13.context.Constraint\x12-\n\x11slice_service_ids\x18\x04 \x03(\x0b\x32\x12.context.ServiceId\x12,\n\x12slice_subslice_ids\x18\x05 \x03(\x0b\x32\x10.context.SliceId\x12*\n\x0cslice_status\x18\x06 \x01(\x0b\x32\x14.context.SliceStatus\"=\n\x0bSliceStatus\x12.\n\x0cslice_status\x18\x01 \x01(\x0e\x32\x18.context.SliceStatusEnum\"2\n\x0bSliceIdList\x12#\n\tslice_ids\x18\x01 \x03(\x0b\x32\x10.context.SliceId\"+\n\tSliceList\x12\x1e\n\x06slices\x18\x01 \x03(\x0b\x32\x0e.context.Slice\"O\n\nSliceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12\"\n\x08slice_id\x18\x02 \x01(\x0b\x32\x10.context.SliceId\"6\n\x0c\x43onnectionId\x12&\n\x0f\x63onnection_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\xc4\x01\n\nConnection\x12,\n\rconnection_id\x18\x01 \x01(\x0b\x32\x15.context.ConnectionId\x12&\n\nservice_id\x18\x02 \x01(\x0b\x32\x12.context.ServiceId\x12\x33\n\x16path_hops_endpoint_ids\x18\x03 \x03(\x0b\x32\x13.context.EndPointId\x12+\n\x0fsub_service_ids\x18\x04 \x03(\x0b\x32\x12.context.ServiceId\"A\n\x10\x43onnectionIdList\x12-\n\x0e\x63onnection_ids\x18\x01 \x03(\x0b\x32\x15.context.ConnectionId\":\n\x0e\x43onnectionList\x12(\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32\x13.context.Connection\"^\n\x0f\x43onnectionEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12,\n\rconnection_id\x18\x02 \x01(\x0b\x32\x15.context.ConnectionId\"\x82\x01\n\nEndPointId\x12(\n\x0btopology_id\x18\x01 \x01(\x0b\x32\x13.context.TopologyId\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\x12$\n\rendpoint_uuid\x18\x03 \x01(\x0b\x32\r.context.Uuid\"\x86\x01\n\x08\x45ndPoint\x12(\n\x0b\x65ndpoint_id\x18\x01 \x01(\x0b\x32\x13.context.EndPointId\x12\x15\n\rendpoint_type\x18\x02 \x01(\t\x12\x39\n\x10kpi_sample_types\x18\x03 \x03(\x0e\x32\x1f.kpi_sample_types.KpiSampleType\"e\n\nConfigRule\x12)\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\x19.context.ConfigActionEnum\x12\x14\n\x0cresource_key\x18\x02 \x01(\t\x12\x16\n\x0eresource_value\x18\x03 \x01(\t\"?\n\nConstraint\x12\x17\n\x0f\x63onstraint_type\x18\x01 \x01(\t\x12\x18\n\x10\x63onstraint_value\x18\x02 \x01(\t\"^\n\x12TeraFlowController\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x12\n\nip_address\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\"U\n\x14\x41uthenticationResult\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x15\n\rauthenticated\x18\x02 \x01(\x08*j\n\rEventTypeEnum\x12\x17\n\x13\x45VENTTYPE_UNDEFINED\x10\x00\x12\x14\n\x10\x45VENTTYPE_CREATE\x10\x01\x12\x14\n\x10\x45VENTTYPE_UPDATE\x10\x02\x12\x14\n\x10\x45VENTTYPE_REMOVE\x10\x03*\xc5\x01\n\x10\x44\x65viceDriverEnum\x12\x1a\n\x16\x44\x45VICEDRIVER_UNDEFINED\x10\x00\x12\x1b\n\x17\x44\x45VICEDRIVER_OPENCONFIG\x10\x01\x12\x1e\n\x1a\x44\x45VICEDRIVER_TRANSPORT_API\x10\x02\x12\x13\n\x0f\x44\x45VICEDRIVER_P4\x10\x03\x12&\n\"DEVICEDRIVER_IETF_NETWORK_TOPOLOGY\x10\x04\x12\x1b\n\x17\x44\x45VICEDRIVER_ONF_TR_352\x10\x05*\x8f\x01\n\x1b\x44\x65viceOperationalStatusEnum\x12%\n!DEVICEOPERATIONALSTATUS_UNDEFINED\x10\x00\x12$\n DEVICEOPERATIONALSTATUS_DISABLED\x10\x01\x12#\n\x1f\x44\x45VICEOPERATIONALSTATUS_ENABLED\x10\x02*\x81\x01\n\x0fServiceTypeEnum\x12\x17\n\x13SERVICETYPE_UNKNOWN\x10\x00\x12\x14\n\x10SERVICETYPE_L3NM\x10\x01\x12\x14\n\x10SERVICETYPE_L2NM\x10\x02\x12)\n%SERVICETYPE_TAPI_CONNECTIVITY_SERVICE\x10\x03*\x88\x01\n\x11ServiceStatusEnum\x12\x1b\n\x17SERVICESTATUS_UNDEFINED\x10\x00\x12\x19\n\x15SERVICESTATUS_PLANNED\x10\x01\x12\x18\n\x14SERVICESTATUS_ACTIVE\x10\x02\x12!\n\x1dSERVICESTATUS_PENDING_REMOVAL\x10\x03*\x8b\x01\n\x0fSliceStatusEnum\x12\x19\n\x15SLICESTATUS_UNDEFINED\x10\x00\x12\x17\n\x13SLICESTATUS_PLANNED\x10\x01\x12\x14\n\x10SLICESTATUS_INIT\x10\x02\x12\x16\n\x12SLICESTATUS_ACTIVE\x10\x03\x12\x16\n\x12SLICESTATUS_DEINIT\x10\x04*]\n\x10\x43onfigActionEnum\x12\x1a\n\x16\x43ONFIGACTION_UNDEFINED\x10\x00\x12\x14\n\x10\x43ONFIGACTION_SET\x10\x01\x12\x17\n\x13\x43ONFIGACTION_DELETE\x10\x02\x32\xef\x12\n\x0e\x43ontextService\x12:\n\x0eListContextIds\x12\x0e.context.Empty\x1a\x16.context.ContextIdList\"\x00\x12\x36\n\x0cListContexts\x12\x0e.context.Empty\x1a\x14.context.ContextList\"\x00\x12\x34\n\nGetContext\x12\x12.context.ContextId\x1a\x10.context.Context\"\x00\x12\x34\n\nSetContext\x12\x10.context.Context\x1a\x12.context.ContextId\"\x00\x12\x35\n\rRemoveContext\x12\x12.context.ContextId\x1a\x0e.context.Empty\"\x00\x12=\n\x10GetContextEvents\x12\x0e.context.Empty\x1a\x15.context.ContextEvent\"\x00\x30\x01\x12@\n\x0fListTopologyIds\x12\x12.context.ContextId\x1a\x17.context.TopologyIdList\"\x00\x12=\n\x0eListTopologies\x12\x12.context.ContextId\x1a\x15.context.TopologyList\"\x00\x12\x37\n\x0bGetTopology\x12\x13.context.TopologyId\x1a\x11.context.Topology\"\x00\x12\x37\n\x0bSetTopology\x12\x11.context.Topology\x1a\x13.context.TopologyId\"\x00\x12\x37\n\x0eRemoveTopology\x12\x13.context.TopologyId\x1a\x0e.context.Empty\"\x00\x12?\n\x11GetTopologyEvents\x12\x0e.context.Empty\x1a\x16.context.TopologyEvent\"\x00\x30\x01\x12\x38\n\rListDeviceIds\x12\x0e.context.Empty\x1a\x15.context.DeviceIdList\"\x00\x12\x34\n\x0bListDevices\x12\x0e.context.Empty\x1a\x13.context.DeviceList\"\x00\x12\x31\n\tGetDevice\x12\x11.context.DeviceId\x1a\x0f.context.Device\"\x00\x12\x31\n\tSetDevice\x12\x0f.context.Device\x1a\x11.context.DeviceId\"\x00\x12\x33\n\x0cRemoveDevice\x12\x11.context.DeviceId\x1a\x0e.context.Empty\"\x00\x12;\n\x0fGetDeviceEvents\x12\x0e.context.Empty\x1a\x14.context.DeviceEvent\"\x00\x30\x01\x12\x34\n\x0bListLinkIds\x12\x0e.context.Empty\x1a\x13.context.LinkIdList\"\x00\x12\x30\n\tListLinks\x12\x0e.context.Empty\x1a\x11.context.LinkList\"\x00\x12+\n\x07GetLink\x12\x0f.context.LinkId\x1a\r.context.Link\"\x00\x12+\n\x07SetLink\x12\r.context.Link\x1a\x0f.context.LinkId\"\x00\x12/\n\nRemoveLink\x12\x0f.context.LinkId\x1a\x0e.context.Empty\"\x00\x12\x37\n\rGetLinkEvents\x12\x0e.context.Empty\x1a\x12.context.LinkEvent\"\x00\x30\x01\x12>\n\x0eListServiceIds\x12\x12.context.ContextId\x1a\x16.context.ServiceIdList\"\x00\x12:\n\x0cListServices\x12\x12.context.ContextId\x1a\x14.context.ServiceList\"\x00\x12\x34\n\nGetService\x12\x12.context.ServiceId\x1a\x10.context.Service\"\x00\x12\x34\n\nSetService\x12\x10.context.Service\x1a\x12.context.ServiceId\"\x00\x12\x35\n\rRemoveService\x12\x12.context.ServiceId\x1a\x0e.context.Empty\"\x00\x12=\n\x10GetServiceEvents\x12\x0e.context.Empty\x1a\x15.context.ServiceEvent\"\x00\x30\x01\x12:\n\x0cListSliceIds\x12\x12.context.ContextId\x1a\x14.context.SliceIdList\"\x00\x12\x36\n\nListSlices\x12\x12.context.ContextId\x1a\x12.context.SliceList\"\x00\x12.\n\x08GetSlice\x12\x10.context.SliceId\x1a\x0e.context.Slice\"\x00\x12.\n\x08SetSlice\x12\x0e.context.Slice\x1a\x10.context.SliceId\"\x00\x12\x31\n\x0bRemoveSlice\x12\x10.context.SliceId\x1a\x0e.context.Empty\"\x00\x12\x39\n\x0eGetSliceEvents\x12\x0e.context.Empty\x1a\x13.context.SliceEvent\"\x00\x30\x01\x12\x44\n\x11ListConnectionIds\x12\x12.context.ServiceId\x1a\x19.context.ConnectionIdList\"\x00\x12@\n\x0fListConnections\x12\x12.context.ServiceId\x1a\x17.context.ConnectionList\"\x00\x12=\n\rGetConnection\x12\x15.context.ConnectionId\x1a\x13.context.Connection\"\x00\x12=\n\rSetConnection\x12\x13.context.Connection\x1a\x15.context.ConnectionId\"\x00\x12;\n\x10RemoveConnection\x12\x15.context.ConnectionId\x1a\x0e.context.Empty\"\x00\x12\x43\n\x13GetConnectionEvents\x12\x0e.context.Empty\x1a\x18.context.ConnectionEvent\"\x00\x30\x01\x62\x06proto3' - , - dependencies=[kpi__sample__types__pb2.DESCRIPTOR,]) - -_EVENTTYPEENUM = _descriptor.EnumDescriptor( - name='EventTypeEnum', - full_name='context.EventTypeEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='EVENTTYPE_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EVENTTYPE_CREATE', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EVENTTYPE_UPDATE', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EVENTTYPE_REMOVE', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=4310, - serialized_end=4416, -) -_sym_db.RegisterEnumDescriptor(_EVENTTYPEENUM) - -EventTypeEnum = enum_type_wrapper.EnumTypeWrapper(_EVENTTYPEENUM) -_DEVICEDRIVERENUM = _descriptor.EnumDescriptor( - name='DeviceDriverEnum', - full_name='context.DeviceDriverEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_OPENCONFIG', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_TRANSPORT_API', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_P4', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_IETF_NETWORK_TOPOLOGY', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_ONF_TR_352', index=5, number=5, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=4419, - serialized_end=4616, -) -_sym_db.RegisterEnumDescriptor(_DEVICEDRIVERENUM) - -DeviceDriverEnum = enum_type_wrapper.EnumTypeWrapper(_DEVICEDRIVERENUM) -_DEVICEOPERATIONALSTATUSENUM = _descriptor.EnumDescriptor( - name='DeviceOperationalStatusEnum', - full_name='context.DeviceOperationalStatusEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='DEVICEOPERATIONALSTATUS_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEOPERATIONALSTATUS_DISABLED', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEOPERATIONALSTATUS_ENABLED', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=4619, - serialized_end=4762, -) -_sym_db.RegisterEnumDescriptor(_DEVICEOPERATIONALSTATUSENUM) - -DeviceOperationalStatusEnum = enum_type_wrapper.EnumTypeWrapper(_DEVICEOPERATIONALSTATUSENUM) -_SERVICETYPEENUM = _descriptor.EnumDescriptor( - name='ServiceTypeEnum', - full_name='context.ServiceTypeEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='SERVICETYPE_UNKNOWN', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICETYPE_L3NM', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICETYPE_L2NM', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICETYPE_TAPI_CONNECTIVITY_SERVICE', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=4765, - serialized_end=4894, -) -_sym_db.RegisterEnumDescriptor(_SERVICETYPEENUM) - -ServiceTypeEnum = enum_type_wrapper.EnumTypeWrapper(_SERVICETYPEENUM) -_SERVICESTATUSENUM = _descriptor.EnumDescriptor( - name='ServiceStatusEnum', - full_name='context.ServiceStatusEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='SERVICESTATUS_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICESTATUS_PLANNED', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICESTATUS_ACTIVE', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICESTATUS_PENDING_REMOVAL', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=4897, - serialized_end=5033, -) -_sym_db.RegisterEnumDescriptor(_SERVICESTATUSENUM) - -ServiceStatusEnum = enum_type_wrapper.EnumTypeWrapper(_SERVICESTATUSENUM) -_SLICESTATUSENUM = _descriptor.EnumDescriptor( - name='SliceStatusEnum', - full_name='context.SliceStatusEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='SLICESTATUS_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SLICESTATUS_PLANNED', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SLICESTATUS_INIT', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SLICESTATUS_ACTIVE', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SLICESTATUS_DEINIT', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=5036, - serialized_end=5175, -) -_sym_db.RegisterEnumDescriptor(_SLICESTATUSENUM) - -SliceStatusEnum = enum_type_wrapper.EnumTypeWrapper(_SLICESTATUSENUM) -_CONFIGACTIONENUM = _descriptor.EnumDescriptor( - name='ConfigActionEnum', - full_name='context.ConfigActionEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='CONFIGACTION_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='CONFIGACTION_SET', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='CONFIGACTION_DELETE', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=5177, - serialized_end=5270, -) -_sym_db.RegisterEnumDescriptor(_CONFIGACTIONENUM) - -ConfigActionEnum = enum_type_wrapper.EnumTypeWrapper(_CONFIGACTIONENUM) -EVENTTYPE_UNDEFINED = 0 -EVENTTYPE_CREATE = 1 -EVENTTYPE_UPDATE = 2 -EVENTTYPE_REMOVE = 3 -DEVICEDRIVER_UNDEFINED = 0 -DEVICEDRIVER_OPENCONFIG = 1 -DEVICEDRIVER_TRANSPORT_API = 2 -DEVICEDRIVER_P4 = 3 -DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4 -DEVICEDRIVER_ONF_TR_352 = 5 -DEVICEOPERATIONALSTATUS_UNDEFINED = 0 -DEVICEOPERATIONALSTATUS_DISABLED = 1 -DEVICEOPERATIONALSTATUS_ENABLED = 2 -SERVICETYPE_UNKNOWN = 0 -SERVICETYPE_L3NM = 1 -SERVICETYPE_L2NM = 2 -SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3 -SERVICESTATUS_UNDEFINED = 0 -SERVICESTATUS_PLANNED = 1 -SERVICESTATUS_ACTIVE = 2 -SERVICESTATUS_PENDING_REMOVAL = 3 -SLICESTATUS_UNDEFINED = 0 -SLICESTATUS_PLANNED = 1 -SLICESTATUS_INIT = 2 -SLICESTATUS_ACTIVE = 3 -SLICESTATUS_DEINIT = 4 -CONFIGACTION_UNDEFINED = 0 -CONFIGACTION_SET = 1 -CONFIGACTION_DELETE = 2 - - - -_EMPTY = _descriptor.Descriptor( - name='Empty', - full_name='context.Empty', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=50, - serialized_end=57, -) - - -_UUID = _descriptor.Descriptor( - name='Uuid', - full_name='context.Uuid', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='uuid', full_name='context.Uuid.uuid', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=59, - serialized_end=79, -) - - -_EVENT = _descriptor.Descriptor( - name='Event', - full_name='context.Event', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='timestamp', full_name='context.Event.timestamp', index=0, - number=1, type=1, cpp_type=5, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='event_type', full_name='context.Event.event_type', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=81, - serialized_end=151, -) - - -_CONTEXTID = _descriptor.Descriptor( - name='ContextId', - full_name='context.ContextId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_uuid', full_name='context.ContextId.context_uuid', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=153, - serialized_end=201, -) - - -_CONTEXT = _descriptor.Descriptor( - name='Context', - full_name='context.Context', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.Context.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='topology_ids', full_name='context.Context.topology_ids', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_ids', full_name='context.Context.service_ids', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='controller', full_name='context.Context.controller', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=204, - serialized_end=386, -) - - -_CONTEXTIDLIST = _descriptor.Descriptor( - name='ContextIdList', - full_name='context.ContextIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_ids', full_name='context.ContextIdList.context_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=388, - serialized_end=444, -) - - -_CONTEXTLIST = _descriptor.Descriptor( - name='ContextList', - full_name='context.ContextList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='contexts', full_name='context.ContextList.contexts', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=446, - serialized_end=495, -) - - -_CONTEXTEVENT = _descriptor.Descriptor( - name='ContextEvent', - full_name='context.ContextEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.ContextEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='context_id', full_name='context.ContextEvent.context_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=497, - serialized_end=582, -) - - -_TOPOLOGYID = _descriptor.Descriptor( - name='TopologyId', - full_name='context.TopologyId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.TopologyId.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='topology_uuid', full_name='context.TopologyId.topology_uuid', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=584, - serialized_end=674, -) - - -_TOPOLOGY = _descriptor.Descriptor( - name='Topology', - full_name='context.Topology', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='topology_id', full_name='context.Topology.topology_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_ids', full_name='context.Topology.device_ids', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='link_ids', full_name='context.Topology.link_ids', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=676, - serialized_end=802, -) - - -_TOPOLOGYIDLIST = _descriptor.Descriptor( - name='TopologyIdList', - full_name='context.TopologyIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='topology_ids', full_name='context.TopologyIdList.topology_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=804, - serialized_end=863, -) - - -_TOPOLOGYLIST = _descriptor.Descriptor( - name='TopologyList', - full_name='context.TopologyList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='topologies', full_name='context.TopologyList.topologies', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=865, - serialized_end=918, -) - - -_TOPOLOGYEVENT = _descriptor.Descriptor( - name='TopologyEvent', - full_name='context.TopologyEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.TopologyEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='topology_id', full_name='context.TopologyEvent.topology_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=920, - serialized_end=1008, -) - - -_DEVICEID = _descriptor.Descriptor( - name='DeviceId', - full_name='context.DeviceId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='device_uuid', full_name='context.DeviceId.device_uuid', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1010, - serialized_end=1056, -) - - -_DEVICE = _descriptor.Descriptor( - name='Device', - full_name='context.Device', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='device_id', full_name='context.Device.device_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_type', full_name='context.Device.device_type', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_config', full_name='context.Device.device_config', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_operational_status', full_name='context.Device.device_operational_status', index=3, - number=4, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_drivers', full_name='context.Device.device_drivers', index=4, - number=5, type=14, cpp_type=8, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_endpoints', full_name='context.Device.device_endpoints', index=5, - number=6, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1059, - serialized_end=1341, -) - - -_DEVICECONFIG = _descriptor.Descriptor( - name='DeviceConfig', - full_name='context.DeviceConfig', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='config_rules', full_name='context.DeviceConfig.config_rules', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1343, - serialized_end=1400, -) - - -_DEVICEIDLIST = _descriptor.Descriptor( - name='DeviceIdList', - full_name='context.DeviceIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='device_ids', full_name='context.DeviceIdList.device_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1402, - serialized_end=1455, -) - - -_DEVICELIST = _descriptor.Descriptor( - name='DeviceList', - full_name='context.DeviceList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='devices', full_name='context.DeviceList.devices', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1457, - serialized_end=1503, -) - - -_DEVICEEVENT = _descriptor.Descriptor( - name='DeviceEvent', - full_name='context.DeviceEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.DeviceEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_id', full_name='context.DeviceEvent.device_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1505, - serialized_end=1587, -) - - -_LINKID = _descriptor.Descriptor( - name='LinkId', - full_name='context.LinkId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='link_uuid', full_name='context.LinkId.link_uuid', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1589, - serialized_end=1631, -) - - -_LINK = _descriptor.Descriptor( - name='Link', - full_name='context.Link', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='link_id', full_name='context.Link.link_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='link_endpoint_ids', full_name='context.Link.link_endpoint_ids', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1633, - serialized_end=1721, -) - - -_LINKIDLIST = _descriptor.Descriptor( - name='LinkIdList', - full_name='context.LinkIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='link_ids', full_name='context.LinkIdList.link_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1723, - serialized_end=1770, -) - - -_LINKLIST = _descriptor.Descriptor( - name='LinkList', - full_name='context.LinkList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='links', full_name='context.LinkList.links', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1772, - serialized_end=1812, -) - - -_LINKEVENT = _descriptor.Descriptor( - name='LinkEvent', - full_name='context.LinkEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.LinkEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='link_id', full_name='context.LinkEvent.link_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1814, - serialized_end=1890, -) - - -_SERVICEID = _descriptor.Descriptor( - name='ServiceId', - full_name='context.ServiceId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.ServiceId.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_uuid', full_name='context.ServiceId.service_uuid', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1892, - serialized_end=1980, -) - - -_SERVICE = _descriptor.Descriptor( - name='Service', - full_name='context.Service', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='service_id', full_name='context.Service.service_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_type', full_name='context.Service.service_type', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_endpoint_ids', full_name='context.Service.service_endpoint_ids', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_constraints', full_name='context.Service.service_constraints', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_status', full_name='context.Service.service_status', index=4, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_config', full_name='context.Service.service_config', index=5, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1983, - serialized_end=2277, -) - - -_SERVICESTATUS = _descriptor.Descriptor( - name='ServiceStatus', - full_name='context.ServiceStatus', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='service_status', full_name='context.ServiceStatus.service_status', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2279, - serialized_end=2346, -) - - -_SERVICECONFIG = _descriptor.Descriptor( - name='ServiceConfig', - full_name='context.ServiceConfig', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='config_rules', full_name='context.ServiceConfig.config_rules', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2348, - serialized_end=2406, -) - - -_SERVICEIDLIST = _descriptor.Descriptor( - name='ServiceIdList', - full_name='context.ServiceIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='service_ids', full_name='context.ServiceIdList.service_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2408, - serialized_end=2464, -) - - -_SERVICELIST = _descriptor.Descriptor( - name='ServiceList', - full_name='context.ServiceList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='services', full_name='context.ServiceList.services', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2466, - serialized_end=2515, -) - - -_SERVICEEVENT = _descriptor.Descriptor( - name='ServiceEvent', - full_name='context.ServiceEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.ServiceEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_id', full_name='context.ServiceEvent.service_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2517, - serialized_end=2602, -) - - -_SLICEID = _descriptor.Descriptor( - name='SliceId', - full_name='context.SliceId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.SliceId.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_uuid', full_name='context.SliceId.slice_uuid', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2604, - serialized_end=2688, -) - - -_SLICE = _descriptor.Descriptor( - name='Slice', - full_name='context.Slice', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='slice_id', full_name='context.Slice.slice_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_endpoint_ids', full_name='context.Slice.slice_endpoint_ids', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_constraints', full_name='context.Slice.slice_constraints', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_service_ids', full_name='context.Slice.slice_service_ids', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_subslice_ids', full_name='context.Slice.slice_subslice_ids', index=4, - number=5, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_status', full_name='context.Slice.slice_status', index=5, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2691, - serialized_end=2968, -) - - -_SLICESTATUS = _descriptor.Descriptor( - name='SliceStatus', - full_name='context.SliceStatus', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='slice_status', full_name='context.SliceStatus.slice_status', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2970, - serialized_end=3031, -) - - -_SLICEIDLIST = _descriptor.Descriptor( - name='SliceIdList', - full_name='context.SliceIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='slice_ids', full_name='context.SliceIdList.slice_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3033, - serialized_end=3083, -) - - -_SLICELIST = _descriptor.Descriptor( - name='SliceList', - full_name='context.SliceList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='slices', full_name='context.SliceList.slices', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3085, - serialized_end=3128, -) - - -_SLICEEVENT = _descriptor.Descriptor( - name='SliceEvent', - full_name='context.SliceEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.SliceEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_id', full_name='context.SliceEvent.slice_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3130, - serialized_end=3209, -) - - -_CONNECTIONID = _descriptor.Descriptor( - name='ConnectionId', - full_name='context.ConnectionId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='connection_uuid', full_name='context.ConnectionId.connection_uuid', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3211, - serialized_end=3265, -) - - -_CONNECTION = _descriptor.Descriptor( - name='Connection', - full_name='context.Connection', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='connection_id', full_name='context.Connection.connection_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_id', full_name='context.Connection.service_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='path_hops_endpoint_ids', full_name='context.Connection.path_hops_endpoint_ids', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sub_service_ids', full_name='context.Connection.sub_service_ids', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3268, - serialized_end=3464, -) - - -_CONNECTIONIDLIST = _descriptor.Descriptor( - name='ConnectionIdList', - full_name='context.ConnectionIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='connection_ids', full_name='context.ConnectionIdList.connection_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3466, - serialized_end=3531, -) - - -_CONNECTIONLIST = _descriptor.Descriptor( - name='ConnectionList', - full_name='context.ConnectionList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='connections', full_name='context.ConnectionList.connections', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3533, - serialized_end=3591, -) - - -_CONNECTIONEVENT = _descriptor.Descriptor( - name='ConnectionEvent', - full_name='context.ConnectionEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.ConnectionEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='connection_id', full_name='context.ConnectionEvent.connection_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3593, - serialized_end=3687, -) - - -_ENDPOINTID = _descriptor.Descriptor( - name='EndPointId', - full_name='context.EndPointId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='topology_id', full_name='context.EndPointId.topology_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_id', full_name='context.EndPointId.device_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='endpoint_uuid', full_name='context.EndPointId.endpoint_uuid', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3690, - serialized_end=3820, -) - - -_ENDPOINT = _descriptor.Descriptor( - name='EndPoint', - full_name='context.EndPoint', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='endpoint_id', full_name='context.EndPoint.endpoint_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='endpoint_type', full_name='context.EndPoint.endpoint_type', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='kpi_sample_types', full_name='context.EndPoint.kpi_sample_types', index=2, - number=3, type=14, cpp_type=8, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3823, - serialized_end=3957, -) - - -_CONFIGRULE = _descriptor.Descriptor( - name='ConfigRule', - full_name='context.ConfigRule', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='action', full_name='context.ConfigRule.action', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='resource_key', full_name='context.ConfigRule.resource_key', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='resource_value', full_name='context.ConfigRule.resource_value', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3959, - serialized_end=4060, -) - - -_CONSTRAINT = _descriptor.Descriptor( - name='Constraint', - full_name='context.Constraint', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='constraint_type', full_name='context.Constraint.constraint_type', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='constraint_value', full_name='context.Constraint.constraint_value', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4062, - serialized_end=4125, -) - - -_TERAFLOWCONTROLLER = _descriptor.Descriptor( - name='TeraFlowController', - full_name='context.TeraFlowController', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.TeraFlowController.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ip_address', full_name='context.TeraFlowController.ip_address', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port', full_name='context.TeraFlowController.port', index=2, - number=3, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4127, - serialized_end=4221, -) - - -_AUTHENTICATIONRESULT = _descriptor.Descriptor( - name='AuthenticationResult', - full_name='context.AuthenticationResult', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.AuthenticationResult.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='authenticated', full_name='context.AuthenticationResult.authenticated', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4223, - serialized_end=4308, -) - -_EVENT.fields_by_name['event_type'].enum_type = _EVENTTYPEENUM -_CONTEXTID.fields_by_name['context_uuid'].message_type = _UUID -_CONTEXT.fields_by_name['context_id'].message_type = _CONTEXTID -_CONTEXT.fields_by_name['topology_ids'].message_type = _TOPOLOGYID -_CONTEXT.fields_by_name['service_ids'].message_type = _SERVICEID -_CONTEXT.fields_by_name['controller'].message_type = _TERAFLOWCONTROLLER -_CONTEXTIDLIST.fields_by_name['context_ids'].message_type = _CONTEXTID -_CONTEXTLIST.fields_by_name['contexts'].message_type = _CONTEXT -_CONTEXTEVENT.fields_by_name['event'].message_type = _EVENT -_CONTEXTEVENT.fields_by_name['context_id'].message_type = _CONTEXTID -_TOPOLOGYID.fields_by_name['context_id'].message_type = _CONTEXTID -_TOPOLOGYID.fields_by_name['topology_uuid'].message_type = _UUID -_TOPOLOGY.fields_by_name['topology_id'].message_type = _TOPOLOGYID -_TOPOLOGY.fields_by_name['device_ids'].message_type = _DEVICEID -_TOPOLOGY.fields_by_name['link_ids'].message_type = _LINKID -_TOPOLOGYIDLIST.fields_by_name['topology_ids'].message_type = _TOPOLOGYID -_TOPOLOGYLIST.fields_by_name['topologies'].message_type = _TOPOLOGY -_TOPOLOGYEVENT.fields_by_name['event'].message_type = _EVENT -_TOPOLOGYEVENT.fields_by_name['topology_id'].message_type = _TOPOLOGYID -_DEVICEID.fields_by_name['device_uuid'].message_type = _UUID -_DEVICE.fields_by_name['device_id'].message_type = _DEVICEID -_DEVICE.fields_by_name['device_config'].message_type = _DEVICECONFIG -_DEVICE.fields_by_name['device_operational_status'].enum_type = _DEVICEOPERATIONALSTATUSENUM -_DEVICE.fields_by_name['device_drivers'].enum_type = _DEVICEDRIVERENUM -_DEVICE.fields_by_name['device_endpoints'].message_type = _ENDPOINT -_DEVICECONFIG.fields_by_name['config_rules'].message_type = _CONFIGRULE -_DEVICEIDLIST.fields_by_name['device_ids'].message_type = _DEVICEID -_DEVICELIST.fields_by_name['devices'].message_type = _DEVICE -_DEVICEEVENT.fields_by_name['event'].message_type = _EVENT -_DEVICEEVENT.fields_by_name['device_id'].message_type = _DEVICEID -_LINKID.fields_by_name['link_uuid'].message_type = _UUID -_LINK.fields_by_name['link_id'].message_type = _LINKID -_LINK.fields_by_name['link_endpoint_ids'].message_type = _ENDPOINTID -_LINKIDLIST.fields_by_name['link_ids'].message_type = _LINKID -_LINKLIST.fields_by_name['links'].message_type = _LINK -_LINKEVENT.fields_by_name['event'].message_type = _EVENT -_LINKEVENT.fields_by_name['link_id'].message_type = _LINKID -_SERVICEID.fields_by_name['context_id'].message_type = _CONTEXTID -_SERVICEID.fields_by_name['service_uuid'].message_type = _UUID -_SERVICE.fields_by_name['service_id'].message_type = _SERVICEID -_SERVICE.fields_by_name['service_type'].enum_type = _SERVICETYPEENUM -_SERVICE.fields_by_name['service_endpoint_ids'].message_type = _ENDPOINTID -_SERVICE.fields_by_name['service_constraints'].message_type = _CONSTRAINT -_SERVICE.fields_by_name['service_status'].message_type = _SERVICESTATUS -_SERVICE.fields_by_name['service_config'].message_type = _SERVICECONFIG -_SERVICESTATUS.fields_by_name['service_status'].enum_type = _SERVICESTATUSENUM -_SERVICECONFIG.fields_by_name['config_rules'].message_type = _CONFIGRULE -_SERVICEIDLIST.fields_by_name['service_ids'].message_type = _SERVICEID -_SERVICELIST.fields_by_name['services'].message_type = _SERVICE -_SERVICEEVENT.fields_by_name['event'].message_type = _EVENT -_SERVICEEVENT.fields_by_name['service_id'].message_type = _SERVICEID -_SLICEID.fields_by_name['context_id'].message_type = _CONTEXTID -_SLICEID.fields_by_name['slice_uuid'].message_type = _UUID -_SLICE.fields_by_name['slice_id'].message_type = _SLICEID -_SLICE.fields_by_name['slice_endpoint_ids'].message_type = _ENDPOINTID -_SLICE.fields_by_name['slice_constraints'].message_type = _CONSTRAINT -_SLICE.fields_by_name['slice_service_ids'].message_type = _SERVICEID -_SLICE.fields_by_name['slice_subslice_ids'].message_type = _SLICEID -_SLICE.fields_by_name['slice_status'].message_type = _SLICESTATUS -_SLICESTATUS.fields_by_name['slice_status'].enum_type = _SLICESTATUSENUM -_SLICEIDLIST.fields_by_name['slice_ids'].message_type = _SLICEID -_SLICELIST.fields_by_name['slices'].message_type = _SLICE -_SLICEEVENT.fields_by_name['event'].message_type = _EVENT -_SLICEEVENT.fields_by_name['slice_id'].message_type = _SLICEID -_CONNECTIONID.fields_by_name['connection_uuid'].message_type = _UUID -_CONNECTION.fields_by_name['connection_id'].message_type = _CONNECTIONID -_CONNECTION.fields_by_name['service_id'].message_type = _SERVICEID -_CONNECTION.fields_by_name['path_hops_endpoint_ids'].message_type = _ENDPOINTID -_CONNECTION.fields_by_name['sub_service_ids'].message_type = _SERVICEID -_CONNECTIONIDLIST.fields_by_name['connection_ids'].message_type = _CONNECTIONID -_CONNECTIONLIST.fields_by_name['connections'].message_type = _CONNECTION -_CONNECTIONEVENT.fields_by_name['event'].message_type = _EVENT -_CONNECTIONEVENT.fields_by_name['connection_id'].message_type = _CONNECTIONID -_ENDPOINTID.fields_by_name['topology_id'].message_type = _TOPOLOGYID -_ENDPOINTID.fields_by_name['device_id'].message_type = _DEVICEID -_ENDPOINTID.fields_by_name['endpoint_uuid'].message_type = _UUID -_ENDPOINT.fields_by_name['endpoint_id'].message_type = _ENDPOINTID -_ENDPOINT.fields_by_name['kpi_sample_types'].enum_type = kpi__sample__types__pb2._KPISAMPLETYPE -_CONFIGRULE.fields_by_name['action'].enum_type = _CONFIGACTIONENUM -_TERAFLOWCONTROLLER.fields_by_name['context_id'].message_type = _CONTEXTID -_AUTHENTICATIONRESULT.fields_by_name['context_id'].message_type = _CONTEXTID -DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY -DESCRIPTOR.message_types_by_name['Uuid'] = _UUID -DESCRIPTOR.message_types_by_name['Event'] = _EVENT -DESCRIPTOR.message_types_by_name['ContextId'] = _CONTEXTID -DESCRIPTOR.message_types_by_name['Context'] = _CONTEXT -DESCRIPTOR.message_types_by_name['ContextIdList'] = _CONTEXTIDLIST -DESCRIPTOR.message_types_by_name['ContextList'] = _CONTEXTLIST -DESCRIPTOR.message_types_by_name['ContextEvent'] = _CONTEXTEVENT -DESCRIPTOR.message_types_by_name['TopologyId'] = _TOPOLOGYID -DESCRIPTOR.message_types_by_name['Topology'] = _TOPOLOGY -DESCRIPTOR.message_types_by_name['TopologyIdList'] = _TOPOLOGYIDLIST -DESCRIPTOR.message_types_by_name['TopologyList'] = _TOPOLOGYLIST -DESCRIPTOR.message_types_by_name['TopologyEvent'] = _TOPOLOGYEVENT -DESCRIPTOR.message_types_by_name['DeviceId'] = _DEVICEID -DESCRIPTOR.message_types_by_name['Device'] = _DEVICE -DESCRIPTOR.message_types_by_name['DeviceConfig'] = _DEVICECONFIG -DESCRIPTOR.message_types_by_name['DeviceIdList'] = _DEVICEIDLIST -DESCRIPTOR.message_types_by_name['DeviceList'] = _DEVICELIST -DESCRIPTOR.message_types_by_name['DeviceEvent'] = _DEVICEEVENT -DESCRIPTOR.message_types_by_name['LinkId'] = _LINKID -DESCRIPTOR.message_types_by_name['Link'] = _LINK -DESCRIPTOR.message_types_by_name['LinkIdList'] = _LINKIDLIST -DESCRIPTOR.message_types_by_name['LinkList'] = _LINKLIST -DESCRIPTOR.message_types_by_name['LinkEvent'] = _LINKEVENT -DESCRIPTOR.message_types_by_name['ServiceId'] = _SERVICEID -DESCRIPTOR.message_types_by_name['Service'] = _SERVICE -DESCRIPTOR.message_types_by_name['ServiceStatus'] = _SERVICESTATUS -DESCRIPTOR.message_types_by_name['ServiceConfig'] = _SERVICECONFIG -DESCRIPTOR.message_types_by_name['ServiceIdList'] = _SERVICEIDLIST -DESCRIPTOR.message_types_by_name['ServiceList'] = _SERVICELIST -DESCRIPTOR.message_types_by_name['ServiceEvent'] = _SERVICEEVENT -DESCRIPTOR.message_types_by_name['SliceId'] = _SLICEID -DESCRIPTOR.message_types_by_name['Slice'] = _SLICE -DESCRIPTOR.message_types_by_name['SliceStatus'] = _SLICESTATUS -DESCRIPTOR.message_types_by_name['SliceIdList'] = _SLICEIDLIST -DESCRIPTOR.message_types_by_name['SliceList'] = _SLICELIST -DESCRIPTOR.message_types_by_name['SliceEvent'] = _SLICEEVENT -DESCRIPTOR.message_types_by_name['ConnectionId'] = _CONNECTIONID -DESCRIPTOR.message_types_by_name['Connection'] = _CONNECTION -DESCRIPTOR.message_types_by_name['ConnectionIdList'] = _CONNECTIONIDLIST -DESCRIPTOR.message_types_by_name['ConnectionList'] = _CONNECTIONLIST -DESCRIPTOR.message_types_by_name['ConnectionEvent'] = _CONNECTIONEVENT -DESCRIPTOR.message_types_by_name['EndPointId'] = _ENDPOINTID -DESCRIPTOR.message_types_by_name['EndPoint'] = _ENDPOINT -DESCRIPTOR.message_types_by_name['ConfigRule'] = _CONFIGRULE -DESCRIPTOR.message_types_by_name['Constraint'] = _CONSTRAINT -DESCRIPTOR.message_types_by_name['TeraFlowController'] = _TERAFLOWCONTROLLER -DESCRIPTOR.message_types_by_name['AuthenticationResult'] = _AUTHENTICATIONRESULT -DESCRIPTOR.enum_types_by_name['EventTypeEnum'] = _EVENTTYPEENUM -DESCRIPTOR.enum_types_by_name['DeviceDriverEnum'] = _DEVICEDRIVERENUM -DESCRIPTOR.enum_types_by_name['DeviceOperationalStatusEnum'] = _DEVICEOPERATIONALSTATUSENUM -DESCRIPTOR.enum_types_by_name['ServiceTypeEnum'] = _SERVICETYPEENUM -DESCRIPTOR.enum_types_by_name['ServiceStatusEnum'] = _SERVICESTATUSENUM -DESCRIPTOR.enum_types_by_name['SliceStatusEnum'] = _SLICESTATUSENUM -DESCRIPTOR.enum_types_by_name['ConfigActionEnum'] = _CONFIGACTIONENUM -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), { - 'DESCRIPTOR' : _EMPTY, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Empty) - }) -_sym_db.RegisterMessage(Empty) - -Uuid = _reflection.GeneratedProtocolMessageType('Uuid', (_message.Message,), { - 'DESCRIPTOR' : _UUID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Uuid) - }) -_sym_db.RegisterMessage(Uuid) - -Event = _reflection.GeneratedProtocolMessageType('Event', (_message.Message,), { - 'DESCRIPTOR' : _EVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Event) - }) -_sym_db.RegisterMessage(Event) - -ContextId = _reflection.GeneratedProtocolMessageType('ContextId', (_message.Message,), { - 'DESCRIPTOR' : _CONTEXTID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ContextId) - }) -_sym_db.RegisterMessage(ContextId) - -Context = _reflection.GeneratedProtocolMessageType('Context', (_message.Message,), { - 'DESCRIPTOR' : _CONTEXT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Context) - }) -_sym_db.RegisterMessage(Context) - -ContextIdList = _reflection.GeneratedProtocolMessageType('ContextIdList', (_message.Message,), { - 'DESCRIPTOR' : _CONTEXTIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ContextIdList) - }) -_sym_db.RegisterMessage(ContextIdList) - -ContextList = _reflection.GeneratedProtocolMessageType('ContextList', (_message.Message,), { - 'DESCRIPTOR' : _CONTEXTLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ContextList) - }) -_sym_db.RegisterMessage(ContextList) - -ContextEvent = _reflection.GeneratedProtocolMessageType('ContextEvent', (_message.Message,), { - 'DESCRIPTOR' : _CONTEXTEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ContextEvent) - }) -_sym_db.RegisterMessage(ContextEvent) - -TopologyId = _reflection.GeneratedProtocolMessageType('TopologyId', (_message.Message,), { - 'DESCRIPTOR' : _TOPOLOGYID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.TopologyId) - }) -_sym_db.RegisterMessage(TopologyId) - -Topology = _reflection.GeneratedProtocolMessageType('Topology', (_message.Message,), { - 'DESCRIPTOR' : _TOPOLOGY, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Topology) - }) -_sym_db.RegisterMessage(Topology) - -TopologyIdList = _reflection.GeneratedProtocolMessageType('TopologyIdList', (_message.Message,), { - 'DESCRIPTOR' : _TOPOLOGYIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.TopologyIdList) - }) -_sym_db.RegisterMessage(TopologyIdList) - -TopologyList = _reflection.GeneratedProtocolMessageType('TopologyList', (_message.Message,), { - 'DESCRIPTOR' : _TOPOLOGYLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.TopologyList) - }) -_sym_db.RegisterMessage(TopologyList) - -TopologyEvent = _reflection.GeneratedProtocolMessageType('TopologyEvent', (_message.Message,), { - 'DESCRIPTOR' : _TOPOLOGYEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.TopologyEvent) - }) -_sym_db.RegisterMessage(TopologyEvent) - -DeviceId = _reflection.GeneratedProtocolMessageType('DeviceId', (_message.Message,), { - 'DESCRIPTOR' : _DEVICEID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.DeviceId) - }) -_sym_db.RegisterMessage(DeviceId) - -Device = _reflection.GeneratedProtocolMessageType('Device', (_message.Message,), { - 'DESCRIPTOR' : _DEVICE, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Device) - }) -_sym_db.RegisterMessage(Device) - -DeviceConfig = _reflection.GeneratedProtocolMessageType('DeviceConfig', (_message.Message,), { - 'DESCRIPTOR' : _DEVICECONFIG, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.DeviceConfig) - }) -_sym_db.RegisterMessage(DeviceConfig) - -DeviceIdList = _reflection.GeneratedProtocolMessageType('DeviceIdList', (_message.Message,), { - 'DESCRIPTOR' : _DEVICEIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.DeviceIdList) - }) -_sym_db.RegisterMessage(DeviceIdList) - -DeviceList = _reflection.GeneratedProtocolMessageType('DeviceList', (_message.Message,), { - 'DESCRIPTOR' : _DEVICELIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.DeviceList) - }) -_sym_db.RegisterMessage(DeviceList) - -DeviceEvent = _reflection.GeneratedProtocolMessageType('DeviceEvent', (_message.Message,), { - 'DESCRIPTOR' : _DEVICEEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.DeviceEvent) - }) -_sym_db.RegisterMessage(DeviceEvent) - -LinkId = _reflection.GeneratedProtocolMessageType('LinkId', (_message.Message,), { - 'DESCRIPTOR' : _LINKID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.LinkId) - }) -_sym_db.RegisterMessage(LinkId) - -Link = _reflection.GeneratedProtocolMessageType('Link', (_message.Message,), { - 'DESCRIPTOR' : _LINK, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Link) - }) -_sym_db.RegisterMessage(Link) - -LinkIdList = _reflection.GeneratedProtocolMessageType('LinkIdList', (_message.Message,), { - 'DESCRIPTOR' : _LINKIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.LinkIdList) - }) -_sym_db.RegisterMessage(LinkIdList) - -LinkList = _reflection.GeneratedProtocolMessageType('LinkList', (_message.Message,), { - 'DESCRIPTOR' : _LINKLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.LinkList) - }) -_sym_db.RegisterMessage(LinkList) - -LinkEvent = _reflection.GeneratedProtocolMessageType('LinkEvent', (_message.Message,), { - 'DESCRIPTOR' : _LINKEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.LinkEvent) - }) -_sym_db.RegisterMessage(LinkEvent) - -ServiceId = _reflection.GeneratedProtocolMessageType('ServiceId', (_message.Message,), { - 'DESCRIPTOR' : _SERVICEID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceId) - }) -_sym_db.RegisterMessage(ServiceId) - -Service = _reflection.GeneratedProtocolMessageType('Service', (_message.Message,), { - 'DESCRIPTOR' : _SERVICE, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Service) - }) -_sym_db.RegisterMessage(Service) - -ServiceStatus = _reflection.GeneratedProtocolMessageType('ServiceStatus', (_message.Message,), { - 'DESCRIPTOR' : _SERVICESTATUS, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceStatus) - }) -_sym_db.RegisterMessage(ServiceStatus) - -ServiceConfig = _reflection.GeneratedProtocolMessageType('ServiceConfig', (_message.Message,), { - 'DESCRIPTOR' : _SERVICECONFIG, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceConfig) - }) -_sym_db.RegisterMessage(ServiceConfig) - -ServiceIdList = _reflection.GeneratedProtocolMessageType('ServiceIdList', (_message.Message,), { - 'DESCRIPTOR' : _SERVICEIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceIdList) - }) -_sym_db.RegisterMessage(ServiceIdList) - -ServiceList = _reflection.GeneratedProtocolMessageType('ServiceList', (_message.Message,), { - 'DESCRIPTOR' : _SERVICELIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceList) - }) -_sym_db.RegisterMessage(ServiceList) - -ServiceEvent = _reflection.GeneratedProtocolMessageType('ServiceEvent', (_message.Message,), { - 'DESCRIPTOR' : _SERVICEEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceEvent) - }) -_sym_db.RegisterMessage(ServiceEvent) - -SliceId = _reflection.GeneratedProtocolMessageType('SliceId', (_message.Message,), { - 'DESCRIPTOR' : _SLICEID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.SliceId) - }) -_sym_db.RegisterMessage(SliceId) - -Slice = _reflection.GeneratedProtocolMessageType('Slice', (_message.Message,), { - 'DESCRIPTOR' : _SLICE, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Slice) - }) -_sym_db.RegisterMessage(Slice) - -SliceStatus = _reflection.GeneratedProtocolMessageType('SliceStatus', (_message.Message,), { - 'DESCRIPTOR' : _SLICESTATUS, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.SliceStatus) - }) -_sym_db.RegisterMessage(SliceStatus) - -SliceIdList = _reflection.GeneratedProtocolMessageType('SliceIdList', (_message.Message,), { - 'DESCRIPTOR' : _SLICEIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.SliceIdList) - }) -_sym_db.RegisterMessage(SliceIdList) - -SliceList = _reflection.GeneratedProtocolMessageType('SliceList', (_message.Message,), { - 'DESCRIPTOR' : _SLICELIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.SliceList) - }) -_sym_db.RegisterMessage(SliceList) - -SliceEvent = _reflection.GeneratedProtocolMessageType('SliceEvent', (_message.Message,), { - 'DESCRIPTOR' : _SLICEEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.SliceEvent) - }) -_sym_db.RegisterMessage(SliceEvent) - -ConnectionId = _reflection.GeneratedProtocolMessageType('ConnectionId', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTIONID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ConnectionId) - }) -_sym_db.RegisterMessage(ConnectionId) - -Connection = _reflection.GeneratedProtocolMessageType('Connection', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTION, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Connection) - }) -_sym_db.RegisterMessage(Connection) - -ConnectionIdList = _reflection.GeneratedProtocolMessageType('ConnectionIdList', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTIONIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ConnectionIdList) - }) -_sym_db.RegisterMessage(ConnectionIdList) - -ConnectionList = _reflection.GeneratedProtocolMessageType('ConnectionList', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTIONLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ConnectionList) - }) -_sym_db.RegisterMessage(ConnectionList) - -ConnectionEvent = _reflection.GeneratedProtocolMessageType('ConnectionEvent', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTIONEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ConnectionEvent) - }) -_sym_db.RegisterMessage(ConnectionEvent) - -EndPointId = _reflection.GeneratedProtocolMessageType('EndPointId', (_message.Message,), { - 'DESCRIPTOR' : _ENDPOINTID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.EndPointId) - }) -_sym_db.RegisterMessage(EndPointId) - -EndPoint = _reflection.GeneratedProtocolMessageType('EndPoint', (_message.Message,), { - 'DESCRIPTOR' : _ENDPOINT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.EndPoint) - }) -_sym_db.RegisterMessage(EndPoint) - -ConfigRule = _reflection.GeneratedProtocolMessageType('ConfigRule', (_message.Message,), { - 'DESCRIPTOR' : _CONFIGRULE, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ConfigRule) - }) -_sym_db.RegisterMessage(ConfigRule) - -Constraint = _reflection.GeneratedProtocolMessageType('Constraint', (_message.Message,), { - 'DESCRIPTOR' : _CONSTRAINT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Constraint) - }) -_sym_db.RegisterMessage(Constraint) - -TeraFlowController = _reflection.GeneratedProtocolMessageType('TeraFlowController', (_message.Message,), { - 'DESCRIPTOR' : _TERAFLOWCONTROLLER, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.TeraFlowController) - }) -_sym_db.RegisterMessage(TeraFlowController) - -AuthenticationResult = _reflection.GeneratedProtocolMessageType('AuthenticationResult', (_message.Message,), { - 'DESCRIPTOR' : _AUTHENTICATIONRESULT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.AuthenticationResult) - }) -_sym_db.RegisterMessage(AuthenticationResult) - - - -_CONTEXTSERVICE = _descriptor.ServiceDescriptor( - name='ContextService', - full_name='context.ContextService', - file=DESCRIPTOR, - index=0, - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_start=5273, - serialized_end=7688, - methods=[ - _descriptor.MethodDescriptor( - name='ListContextIds', - full_name='context.ContextService.ListContextIds', - index=0, - containing_service=None, - input_type=_EMPTY, - output_type=_CONTEXTIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListContexts', - full_name='context.ContextService.ListContexts', - index=1, - containing_service=None, - input_type=_EMPTY, - output_type=_CONTEXTLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetContext', - full_name='context.ContextService.GetContext', - index=2, - containing_service=None, - input_type=_CONTEXTID, - output_type=_CONTEXT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetContext', - full_name='context.ContextService.SetContext', - index=3, - containing_service=None, - input_type=_CONTEXT, - output_type=_CONTEXTID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveContext', - full_name='context.ContextService.RemoveContext', - index=4, - containing_service=None, - input_type=_CONTEXTID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetContextEvents', - full_name='context.ContextService.GetContextEvents', - index=5, - containing_service=None, - input_type=_EMPTY, - output_type=_CONTEXTEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListTopologyIds', - full_name='context.ContextService.ListTopologyIds', - index=6, - containing_service=None, - input_type=_CONTEXTID, - output_type=_TOPOLOGYIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListTopologies', - full_name='context.ContextService.ListTopologies', - index=7, - containing_service=None, - input_type=_CONTEXTID, - output_type=_TOPOLOGYLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetTopology', - full_name='context.ContextService.GetTopology', - index=8, - containing_service=None, - input_type=_TOPOLOGYID, - output_type=_TOPOLOGY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetTopology', - full_name='context.ContextService.SetTopology', - index=9, - containing_service=None, - input_type=_TOPOLOGY, - output_type=_TOPOLOGYID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveTopology', - full_name='context.ContextService.RemoveTopology', - index=10, - containing_service=None, - input_type=_TOPOLOGYID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetTopologyEvents', - full_name='context.ContextService.GetTopologyEvents', - index=11, - containing_service=None, - input_type=_EMPTY, - output_type=_TOPOLOGYEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListDeviceIds', - full_name='context.ContextService.ListDeviceIds', - index=12, - containing_service=None, - input_type=_EMPTY, - output_type=_DEVICEIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListDevices', - full_name='context.ContextService.ListDevices', - index=13, - containing_service=None, - input_type=_EMPTY, - output_type=_DEVICELIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetDevice', - full_name='context.ContextService.GetDevice', - index=14, - containing_service=None, - input_type=_DEVICEID, - output_type=_DEVICE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetDevice', - full_name='context.ContextService.SetDevice', - index=15, - containing_service=None, - input_type=_DEVICE, - output_type=_DEVICEID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveDevice', - full_name='context.ContextService.RemoveDevice', - index=16, - containing_service=None, - input_type=_DEVICEID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetDeviceEvents', - full_name='context.ContextService.GetDeviceEvents', - index=17, - containing_service=None, - input_type=_EMPTY, - output_type=_DEVICEEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListLinkIds', - full_name='context.ContextService.ListLinkIds', - index=18, - containing_service=None, - input_type=_EMPTY, - output_type=_LINKIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListLinks', - full_name='context.ContextService.ListLinks', - index=19, - containing_service=None, - input_type=_EMPTY, - output_type=_LINKLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetLink', - full_name='context.ContextService.GetLink', - index=20, - containing_service=None, - input_type=_LINKID, - output_type=_LINK, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetLink', - full_name='context.ContextService.SetLink', - index=21, - containing_service=None, - input_type=_LINK, - output_type=_LINKID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveLink', - full_name='context.ContextService.RemoveLink', - index=22, - containing_service=None, - input_type=_LINKID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetLinkEvents', - full_name='context.ContextService.GetLinkEvents', - index=23, - containing_service=None, - input_type=_EMPTY, - output_type=_LINKEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListServiceIds', - full_name='context.ContextService.ListServiceIds', - index=24, - containing_service=None, - input_type=_CONTEXTID, - output_type=_SERVICEIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListServices', - full_name='context.ContextService.ListServices', - index=25, - containing_service=None, - input_type=_CONTEXTID, - output_type=_SERVICELIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetService', - full_name='context.ContextService.GetService', - index=26, - containing_service=None, - input_type=_SERVICEID, - output_type=_SERVICE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetService', - full_name='context.ContextService.SetService', - index=27, - containing_service=None, - input_type=_SERVICE, - output_type=_SERVICEID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveService', - full_name='context.ContextService.RemoveService', - index=28, - containing_service=None, - input_type=_SERVICEID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetServiceEvents', - full_name='context.ContextService.GetServiceEvents', - index=29, - containing_service=None, - input_type=_EMPTY, - output_type=_SERVICEEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListSliceIds', - full_name='context.ContextService.ListSliceIds', - index=30, - containing_service=None, - input_type=_CONTEXTID, - output_type=_SLICEIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListSlices', - full_name='context.ContextService.ListSlices', - index=31, - containing_service=None, - input_type=_CONTEXTID, - output_type=_SLICELIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetSlice', - full_name='context.ContextService.GetSlice', - index=32, - containing_service=None, - input_type=_SLICEID, - output_type=_SLICE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetSlice', - full_name='context.ContextService.SetSlice', - index=33, - containing_service=None, - input_type=_SLICE, - output_type=_SLICEID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveSlice', - full_name='context.ContextService.RemoveSlice', - index=34, - containing_service=None, - input_type=_SLICEID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetSliceEvents', - full_name='context.ContextService.GetSliceEvents', - index=35, - containing_service=None, - input_type=_EMPTY, - output_type=_SLICEEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListConnectionIds', - full_name='context.ContextService.ListConnectionIds', - index=36, - containing_service=None, - input_type=_SERVICEID, - output_type=_CONNECTIONIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListConnections', - full_name='context.ContextService.ListConnections', - index=37, - containing_service=None, - input_type=_SERVICEID, - output_type=_CONNECTIONLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetConnection', - full_name='context.ContextService.GetConnection', - index=38, - containing_service=None, - input_type=_CONNECTIONID, - output_type=_CONNECTION, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetConnection', - full_name='context.ContextService.SetConnection', - index=39, - containing_service=None, - input_type=_CONNECTION, - output_type=_CONNECTIONID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveConnection', - full_name='context.ContextService.RemoveConnection', - index=40, - containing_service=None, - input_type=_CONNECTIONID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetConnectionEvents', - full_name='context.ContextService.GetConnectionEvents', - index=41, - containing_service=None, - input_type=_EMPTY, - output_type=_CONNECTIONEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), -]) -_sym_db.RegisterServiceDescriptor(_CONTEXTSERVICE) - -DESCRIPTOR.services_by_name['ContextService'] = _CONTEXTSERVICE - -# @@protoc_insertion_point(module_scope) diff --git a/src/l3_attackmitigator/proto/kpi_sample_types_pb2.py b/src/l3_attackmitigator/proto/kpi_sample_types_pb2.py deleted file mode 100644 index ea7fd2f82757d4c3db02d7e2c7817e2787b0b490..0000000000000000000000000000000000000000 --- a/src/l3_attackmitigator/proto/kpi_sample_types_pb2.py +++ /dev/null @@ -1,78 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: kpi_sample_types.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='kpi_sample_types.proto', - package='kpi_sample_types', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x16kpi_sample_types.proto\x12\x10kpi_sample_types*\xbe\x01\n\rKpiSampleType\x12\x19\n\x15KPISAMPLETYPE_UNKNOWN\x10\x00\x12%\n!KPISAMPLETYPE_PACKETS_TRANSMITTED\x10\x65\x12\"\n\x1eKPISAMPLETYPE_PACKETS_RECEIVED\x10\x66\x12$\n\x1fKPISAMPLETYPE_BYTES_TRANSMITTED\x10\xc9\x01\x12!\n\x1cKPISAMPLETYPE_BYTES_RECEIVED\x10\xca\x01\x62\x06proto3' -) - -_KPISAMPLETYPE = _descriptor.EnumDescriptor( - name='KpiSampleType', - full_name='kpi_sample_types.KpiSampleType', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='KPISAMPLETYPE_UNKNOWN', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='KPISAMPLETYPE_PACKETS_TRANSMITTED', index=1, number=101, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='KPISAMPLETYPE_PACKETS_RECEIVED', index=2, number=102, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='KPISAMPLETYPE_BYTES_TRANSMITTED', index=3, number=201, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='KPISAMPLETYPE_BYTES_RECEIVED', index=4, number=202, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=45, - serialized_end=235, -) -_sym_db.RegisterEnumDescriptor(_KPISAMPLETYPE) - -KpiSampleType = enum_type_wrapper.EnumTypeWrapper(_KPISAMPLETYPE) -KPISAMPLETYPE_UNKNOWN = 0 -KPISAMPLETYPE_PACKETS_TRANSMITTED = 101 -KPISAMPLETYPE_PACKETS_RECEIVED = 102 -KPISAMPLETYPE_BYTES_TRANSMITTED = 201 -KPISAMPLETYPE_BYTES_RECEIVED = 202 - - -DESCRIPTOR.enum_types_by_name['KpiSampleType'] = _KPISAMPLETYPE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - -# @@protoc_insertion_point(module_scope) diff --git a/src/l3_attackmitigator/proto/l3_attackmitigator_pb2.py b/src/l3_attackmitigator/proto/l3_attackmitigator_pb2.py deleted file mode 100644 index e148d0a2cfda7b7ea00b40218dcfe3dcb70f1f8f..0000000000000000000000000000000000000000 --- a/src/l3_attackmitigator/proto/l3_attackmitigator_pb2.py +++ /dev/null @@ -1,178 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: l3_attackmitigator.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from . import context_pb2 as context__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='l3_attackmitigator.proto', - package='', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x18l3_attackmitigator.proto\x1a\rcontext.proto\"\xd5\x01\n\x17L3AttackmitigatorOutput\x12\x12\n\nconfidence\x18\x01 \x01(\x02\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04ip_o\x18\x03 \x01(\t\x12\x10\n\x08tag_name\x18\x04 \x01(\t\x12\x0b\n\x03tag\x18\x05 \x01(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x01(\t\x12\x10\n\x08protocol\x18\x07 \x01(\t\x12\x0e\n\x06port_d\x18\x08 \x01(\t\x12\r\n\x05ml_id\x18\t \x01(\t\x12\x12\n\ntime_start\x18\n \x01(\x02\x12\x10\n\x08time_end\x18\x0b \x01(\x02\x32\x80\x01\n\x11L3Attackmitigator\x12\x38\n\nSendOutput\x12\x18.L3AttackmitigatorOutput\x1a\x0e.context.Empty\"\x00\x12\x31\n\rGetMitigation\x12\x0e.context.Empty\x1a\x0e.context.Empty\"\x00\x62\x06proto3' - , - dependencies=[context__pb2.DESCRIPTOR,]) - - - - -_L3ATTACKMITIGATOROUTPUT = _descriptor.Descriptor( - name='L3AttackmitigatorOutput', - full_name='L3AttackmitigatorOutput', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='confidence', full_name='L3AttackmitigatorOutput.confidence', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='timestamp', full_name='L3AttackmitigatorOutput.timestamp', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ip_o', full_name='L3AttackmitigatorOutput.ip_o', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tag_name', full_name='L3AttackmitigatorOutput.tag_name', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tag', full_name='L3AttackmitigatorOutput.tag', index=4, - number=5, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='flow_id', full_name='L3AttackmitigatorOutput.flow_id', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='protocol', full_name='L3AttackmitigatorOutput.protocol', index=6, - number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port_d', full_name='L3AttackmitigatorOutput.port_d', index=7, - number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ml_id', full_name='L3AttackmitigatorOutput.ml_id', index=8, - number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_start', full_name='L3AttackmitigatorOutput.time_start', index=9, - number=10, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_end', full_name='L3AttackmitigatorOutput.time_end', index=10, - number=11, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=44, - serialized_end=257, -) - -DESCRIPTOR.message_types_by_name['L3AttackmitigatorOutput'] = _L3ATTACKMITIGATOROUTPUT -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -L3AttackmitigatorOutput = _reflection.GeneratedProtocolMessageType('L3AttackmitigatorOutput', (_message.Message,), { - 'DESCRIPTOR' : _L3ATTACKMITIGATOROUTPUT, - '__module__' : 'l3_attackmitigator_pb2' - # @@protoc_insertion_point(class_scope:L3AttackmitigatorOutput) - }) -_sym_db.RegisterMessage(L3AttackmitigatorOutput) - - - -_L3ATTACKMITIGATOR = _descriptor.ServiceDescriptor( - name='L3Attackmitigator', - full_name='L3Attackmitigator', - file=DESCRIPTOR, - index=0, - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_start=260, - serialized_end=388, - methods=[ - _descriptor.MethodDescriptor( - name='SendOutput', - full_name='L3Attackmitigator.SendOutput', - index=0, - containing_service=None, - input_type=_L3ATTACKMITIGATOROUTPUT, - output_type=context__pb2._EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetMitigation', - full_name='L3Attackmitigator.GetMitigation', - index=1, - containing_service=None, - input_type=context__pb2._EMPTY, - output_type=context__pb2._EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), -]) -_sym_db.RegisterServiceDescriptor(_L3ATTACKMITIGATOR) - -DESCRIPTOR.services_by_name['L3Attackmitigator'] = _L3ATTACKMITIGATOR - -# @@protoc_insertion_point(module_scope) diff --git a/src/l3_attackmitigator/proto/l3_attackmitigator_pb2_grpc.py b/src/l3_attackmitigator/proto/l3_attackmitigator_pb2_grpc.py deleted file mode 100644 index 25d4afdbad81390589992b48374eb2226a31647e..0000000000000000000000000000000000000000 --- a/src/l3_attackmitigator/proto/l3_attackmitigator_pb2_grpc.py +++ /dev/null @@ -1,102 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - -from . import context_pb2 as context__pb2 -from . import l3_attackmitigator_pb2 as l3__attackmitigator__pb2 - - -class L3AttackmitigatorStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.SendOutput = channel.unary_unary( - '/L3Attackmitigator/SendOutput', - request_serializer=l3__attackmitigator__pb2.L3AttackmitigatorOutput.SerializeToString, - response_deserializer=context__pb2.Empty.FromString, - ) - self.GetMitigation = channel.unary_unary( - '/L3Attackmitigator/GetMitigation', - request_serializer=context__pb2.Empty.SerializeToString, - response_deserializer=context__pb2.Empty.FromString, - ) - - -class L3AttackmitigatorServicer(object): - """Missing associated documentation comment in .proto file.""" - - def SendOutput(self, request, context): - """Sends a greeting - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetMitigation(self, request, context): - """Sends another greeting - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_L3AttackmitigatorServicer_to_server(servicer, server): - rpc_method_handlers = { - 'SendOutput': grpc.unary_unary_rpc_method_handler( - servicer.SendOutput, - request_deserializer=l3__attackmitigator__pb2.L3AttackmitigatorOutput.FromString, - response_serializer=context__pb2.Empty.SerializeToString, - ), - 'GetMitigation': grpc.unary_unary_rpc_method_handler( - servicer.GetMitigation, - request_deserializer=context__pb2.Empty.FromString, - response_serializer=context__pb2.Empty.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'L3Attackmitigator', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class L3Attackmitigator(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def SendOutput(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/L3Attackmitigator/SendOutput', - l3__attackmitigator__pb2.L3AttackmitigatorOutput.SerializeToString, - context__pb2.Empty.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def GetMitigation(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/L3Attackmitigator/GetMitigation', - context__pb2.Empty.SerializeToString, - context__pb2.Empty.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/src/l3_attackmitigator/requirements.in b/src/l3_attackmitigator/requirements.in index ede9c839d93cc377e93c525bc1e85243576faa00..772ae923931c8b09917e75a600ce2b5a0d2d4ecf 100644 --- a/src/l3_attackmitigator/requirements.in +++ b/src/l3_attackmitigator/requirements.in @@ -1,9 +1 @@ -grpcio-health-checking -grpcio -grpcio-tools -prometheus-client -pytest -pytest-benchmark -numpy -scikit-learn -coverage \ No newline at end of file +# no extra dependency diff --git a/src/l3_attackmitigator/service/l3_attackmitigatorService.py b/src/l3_attackmitigator/service/l3_attackmitigatorService.py index ae52d6285c74e121f6062c42de69597d05c37b45..a359d1d9fc897ea3c01c7fa4d39e9dfbb4195306 100644 --- a/src/l3_attackmitigator/service/l3_attackmitigatorService.py +++ b/src/l3_attackmitigator/service/l3_attackmitigatorService.py @@ -18,10 +18,10 @@ from concurrent import futures from grpc_health.v1.health import HealthServicer, OVERALL_HEALTH from grpc_health.v1.health_pb2 import HealthCheckResponse from grpc_health.v1.health_pb2_grpc import add_HealthServicer_to_server -from l3_attackmitigator.proto.l3_attackmitigator_pb2_grpc import ( +from common.proto.l3_attackmitigator_pb2_grpc import ( add_L3AttackmitigatorServicer_to_server, ) -from l3_attackmitigator.service.l3_attackmitigatorServiceServicerImpl import ( +from common.service.l3_attackmitigatorServiceServicerImpl import ( l3_attackmitigatorServiceServicerImpl, ) from l3_attackmitigator.Config import ( diff --git a/src/l3_attackmitigator/service/l3_attackmitigatorServiceServicerImpl.py b/src/l3_attackmitigator/service/l3_attackmitigatorServiceServicerImpl.py index 6e74cd455b8a166802f2a1f781451a0aa5e743ca..8664704524ecef779235af3ca3dc765af7af4898 100644 --- a/src/l3_attackmitigator/service/l3_attackmitigatorServiceServicerImpl.py +++ b/src/l3_attackmitigator/service/l3_attackmitigatorServiceServicerImpl.py @@ -14,10 +14,10 @@ from __future__ import print_function import logging -from l3_attackmitigator.proto.l3_attackmitigator_pb2 import ( +from common.proto.l3_attackmitigator_pb2 import ( EmptyMitigator ) -from l3_attackmitigator.proto.l3_attackmitigator_pb2_grpc import ( +from common.proto.l3_attackmitigator_pb2_grpc import ( L3AttackmitigatorServicer, ) diff --git a/src/l3_attackmitigator/tests/test_unitary.py b/src/l3_attackmitigator/tests/test_unitary.py index 7a33cbd8a29c8d64ca468ac366d38bdc7199aacd..14d43edaff85da0e2597c55557dde74dbaae32aa 100644 --- a/src/l3_attackmitigator/tests/test_unitary.py +++ b/src/l3_attackmitigator/tests/test_unitary.py @@ -17,7 +17,7 @@ import pytest from l3_attackmitigator.Config import GRPC_SERVICE_PORT, GRPC_MAX_WORKERS, GRPC_GRACE_PERIOD from l3_attackmitigator.client.l3_attackmitigatorClient import l3_attackmitigatorClient from l3_attackmitigator.service.l3_attackmitigatorService import l3_attackmitigatorService -from l3_attackmitigator.proto.l3_attackmitigator_pb2 import ( +from common.proto.l3_attackmitigator_pb2 import ( Output, ) diff --git a/src/l3_centralizedattackdetector/.gitlab-ci.yml b/src/l3_centralizedattackdetector/.gitlab-ci.yml index ca95af8816ce01b433d462a5d09d8ef14776734f..073b7925c7f7c39e1a44766fc21167236875877d 100644 --- a/src/l3_centralizedattackdetector/.gitlab-ci.yml +++ b/src/l3_centralizedattackdetector/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag, and push the Docker images to the GitLab Docker registry +# Build, tag, and push the Docker image to the GitLab Docker registry build l3_centralizedattackdetector: variables: IMAGE_NAME: 'l3_centralizedattackdetector' # name of the microservice @@ -21,22 +21,24 @@ build l3_centralizedattackdetector: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile ./src/ + - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: - docker images --filter="dangling=true" --quiet | xargs -r docker rmi rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - changes: + - src/common/**/*.py + - proto/*.proto - src/$IMAGE_NAME/**/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py - manifests/${IMAGE_NAME}service.yaml - .gitlab-ci.yml -# Pull, execute, and run unitary tests for the Docker image from the GitLab registry +# Apply unit test to the component unit test l3_centralizedattackdetector: variables: IMAGE_NAME: 'l3_centralizedattackdetector' # name of the microservice @@ -46,7 +48,7 @@ unit test l3_centralizedattackdetector: - build l3_centralizedattackdetector before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi + - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" @@ -62,8 +64,10 @@ unit test l3_centralizedattackdetector: - docker network rm teraflowbridge rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - changes: + - src/common/**/*.py + - proto/*.proto - src/$IMAGE_NAME/**/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py diff --git a/src/l3_centralizedattackdetector/Dockerfile b/src/l3_centralizedattackdetector/Dockerfile index 6a52cda86e9de16213bc058a0ffeeba04f85f6f9..3db5c2b4d7e4020b727d0d3f9b106f9c4af2e6b6 100644 --- a/src/l3_centralizedattackdetector/Dockerfile +++ b/src/l3_centralizedattackdetector/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM python:3-slim +FROM python:3.9-slim # Install dependencies RUN apt-get --yes --quiet --quiet update && \ @@ -28,22 +28,41 @@ RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ chmod +x /bin/grpc_health_probe # Get generic Python packages -RUN python3 -m pip install --upgrade pip setuptools wheel pip-tools +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools -# Set working directory +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt -# Create module sub-folders -RUN mkdir -p /var/teraflow/l3_centralizedattackdetector +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; -# Get Python packages per module -COPY l3_centralizedattackdetector/requirements.in l3_centralizedattackdetector/requirements.in -RUN pip-compile --output-file=l3_centralizedattackdetector/requirements.txt l3_centralizedattackdetector/requirements.in -RUN python3 -m pip install -r l3_centralizedattackdetector/requirements.in +# Create component sub-folders, get specific Python packages +RUN mkdir -p /var/teraflow/l3_centralizedattackdetector +WORKDIR /var/teraflow/l3_centralizedattackdetector +COPY src/l3_centralizedattackdetector/requirements.in requirements.in +RUN pip-compile --quiet --output-file=requirements.txt requirements.in +RUN python3 -m pip install -r requirements.txt -# Add files into working directory -COPY common/. common -COPY l3_centralizedattackdetector/. l3_centralizedattackdetector +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/l3_centralizedattackdetector/. l3_centralizedattackdetector -# Start service service +# Start the service ENTRYPOINT ["python", "-m", "l3_centralizedattackdetector.service"] diff --git a/src/l3_centralizedattackdetector/client/l3_centralizedattackdetectorClient.py b/src/l3_centralizedattackdetector/client/l3_centralizedattackdetectorClient.py index b5181d63e02bcb77ec92e8c53374b38cb4bc72d3..3a159503c1c2d6b7387122430f1d36b77cd3ff78 100644 --- a/src/l3_centralizedattackdetector/client/l3_centralizedattackdetectorClient.py +++ b/src/l3_centralizedattackdetector/client/l3_centralizedattackdetectorClient.py @@ -14,10 +14,10 @@ import grpc, logging from common.tools.client.RetryDecorator import retry, delay_exponential -from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2_grpc import ( +from common.proto.l3_centralizedattackdetector_pb2_grpc import ( L3CentralizedattackdetectorStub, ) -from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2 import ( +from common.proto.l3_centralizedattackdetector_pb2 import ( Empty, ModelInput, ModelOutput diff --git a/src/l3_centralizedattackdetector/genproto.sh b/src/l3_centralizedattackdetector/genproto.sh deleted file mode 100755 index 54b16a486f893938a4970c5c28f80505dec5fc40..0000000000000000000000000000000000000000 --- a/src/l3_centralizedattackdetector/genproto.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash -eu -# -# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -# -# 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. - -# Make folder containing the script the root folder for its execution -cd $(dirname $0) - -rm -rf proto/*.py -rm -rf proto/__pycache__ -tee proto/__init__.py << EOF > /dev/null -# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -# -# 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. - -EOF - -python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto context.proto -python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto kpi_sample_types.proto -python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto l3_attackmitigator.proto -python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto l3_centralizedattackdetector.proto - -rm proto/context_pb2_grpc.py -rm proto/kpi_sample_types_pb2_grpc.py -rm proto/l3_attackmitigator_pb2_grpc.py - -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/context_pb2.py -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/kpi_sample_types_pb2.py -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_centralizedattackdetector_pb2.py -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_centralizedattackdetector_pb2_grpc.py -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_attackmitigator_pb2.py diff --git a/src/l3_centralizedattackdetector/proto/__init__.py b/src/l3_centralizedattackdetector/proto/__init__.py deleted file mode 100644 index 70a33251242c51f49140e596b8208a19dd5245f7..0000000000000000000000000000000000000000 --- a/src/l3_centralizedattackdetector/proto/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -# -# 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. - diff --git a/src/l3_centralizedattackdetector/proto/context_pb2.py b/src/l3_centralizedattackdetector/proto/context_pb2.py deleted file mode 100644 index 50d501d3ac053ad644554331af26e3c40cd426a1..0000000000000000000000000000000000000000 --- a/src/l3_centralizedattackdetector/proto/context_pb2.py +++ /dev/null @@ -1,3071 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: context.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from . import kpi_sample_types_pb2 as kpi__sample__types__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='context.proto', - package='context', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\rcontext.proto\x12\x07\x63ontext\x1a\x16kpi_sample_types.proto\"\x07\n\x05\x45mpty\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"F\n\x05\x45vent\x12\x11\n\ttimestamp\x18\x01 \x01(\x01\x12*\n\nevent_type\x18\x02 \x01(\x0e\x32\x16.context.EventTypeEnum\"0\n\tContextId\x12#\n\x0c\x63ontext_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\xb6\x01\n\x07\x43ontext\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12)\n\x0ctopology_ids\x18\x02 \x03(\x0b\x32\x13.context.TopologyId\x12\'\n\x0bservice_ids\x18\x03 \x03(\x0b\x32\x12.context.ServiceId\x12/\n\ncontroller\x18\x04 \x01(\x0b\x32\x1b.context.TeraFlowController\"8\n\rContextIdList\x12\'\n\x0b\x63ontext_ids\x18\x01 \x03(\x0b\x32\x12.context.ContextId\"1\n\x0b\x43ontextList\x12\"\n\x08\x63ontexts\x18\x01 \x03(\x0b\x32\x10.context.Context\"U\n\x0c\x43ontextEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12&\n\ncontext_id\x18\x02 \x01(\x0b\x32\x12.context.ContextId\"Z\n\nTopologyId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12$\n\rtopology_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"~\n\x08Topology\x12(\n\x0btopology_id\x18\x01 \x01(\x0b\x32\x13.context.TopologyId\x12%\n\ndevice_ids\x18\x02 \x03(\x0b\x32\x11.context.DeviceId\x12!\n\x08link_ids\x18\x03 \x03(\x0b\x32\x0f.context.LinkId\";\n\x0eTopologyIdList\x12)\n\x0ctopology_ids\x18\x01 \x03(\x0b\x32\x13.context.TopologyId\"5\n\x0cTopologyList\x12%\n\ntopologies\x18\x01 \x03(\x0b\x32\x11.context.Topology\"X\n\rTopologyEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12(\n\x0btopology_id\x18\x02 \x01(\x0b\x32\x13.context.TopologyId\".\n\x08\x44\x65viceId\x12\"\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\x9a\x02\n\x06\x44\x65vice\x12$\n\tdevice_id\x18\x01 \x01(\x0b\x32\x11.context.DeviceId\x12\x13\n\x0b\x64\x65vice_type\x18\x02 \x01(\t\x12,\n\rdevice_config\x18\x03 \x01(\x0b\x32\x15.context.DeviceConfig\x12G\n\x19\x64\x65vice_operational_status\x18\x04 \x01(\x0e\x32$.context.DeviceOperationalStatusEnum\x12\x31\n\x0e\x64\x65vice_drivers\x18\x05 \x03(\x0e\x32\x19.context.DeviceDriverEnum\x12+\n\x10\x64\x65vice_endpoints\x18\x06 \x03(\x0b\x32\x11.context.EndPoint\"9\n\x0c\x44\x65viceConfig\x12)\n\x0c\x63onfig_rules\x18\x01 \x03(\x0b\x32\x13.context.ConfigRule\"5\n\x0c\x44\x65viceIdList\x12%\n\ndevice_ids\x18\x01 \x03(\x0b\x32\x11.context.DeviceId\".\n\nDeviceList\x12 \n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32\x0f.context.Device\"R\n\x0b\x44\x65viceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\"*\n\x06LinkId\x12 \n\tlink_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"X\n\x04Link\x12 \n\x07link_id\x18\x01 \x01(\x0b\x32\x0f.context.LinkId\x12.\n\x11link_endpoint_ids\x18\x02 \x03(\x0b\x32\x13.context.EndPointId\"/\n\nLinkIdList\x12!\n\x08link_ids\x18\x01 \x03(\x0b\x32\x0f.context.LinkId\"(\n\x08LinkList\x12\x1c\n\x05links\x18\x01 \x03(\x0b\x32\r.context.Link\"L\n\tLinkEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12 \n\x07link_id\x18\x02 \x01(\x0b\x32\x0f.context.LinkId\"X\n\tServiceId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12#\n\x0cservice_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"\xa6\x02\n\x07Service\x12&\n\nservice_id\x18\x01 \x01(\x0b\x32\x12.context.ServiceId\x12.\n\x0cservice_type\x18\x02 \x01(\x0e\x32\x18.context.ServiceTypeEnum\x12\x31\n\x14service_endpoint_ids\x18\x03 \x03(\x0b\x32\x13.context.EndPointId\x12\x30\n\x13service_constraints\x18\x04 \x03(\x0b\x32\x13.context.Constraint\x12.\n\x0eservice_status\x18\x05 \x01(\x0b\x32\x16.context.ServiceStatus\x12.\n\x0eservice_config\x18\x06 \x01(\x0b\x32\x16.context.ServiceConfig\"C\n\rServiceStatus\x12\x32\n\x0eservice_status\x18\x01 \x01(\x0e\x32\x1a.context.ServiceStatusEnum\":\n\rServiceConfig\x12)\n\x0c\x63onfig_rules\x18\x01 \x03(\x0b\x32\x13.context.ConfigRule\"8\n\rServiceIdList\x12\'\n\x0bservice_ids\x18\x01 \x03(\x0b\x32\x12.context.ServiceId\"1\n\x0bServiceList\x12\"\n\x08services\x18\x01 \x03(\x0b\x32\x10.context.Service\"U\n\x0cServiceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12&\n\nservice_id\x18\x02 \x01(\x0b\x32\x12.context.ServiceId\"T\n\x07SliceId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12!\n\nslice_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"\x95\x02\n\x05Slice\x12\"\n\x08slice_id\x18\x01 \x01(\x0b\x32\x10.context.SliceId\x12/\n\x12slice_endpoint_ids\x18\x02 \x03(\x0b\x32\x13.context.EndPointId\x12.\n\x11slice_constraints\x18\x03 \x03(\x0b\x32\x13.context.Constraint\x12-\n\x11slice_service_ids\x18\x04 \x03(\x0b\x32\x12.context.ServiceId\x12,\n\x12slice_subslice_ids\x18\x05 \x03(\x0b\x32\x10.context.SliceId\x12*\n\x0cslice_status\x18\x06 \x01(\x0b\x32\x14.context.SliceStatus\"=\n\x0bSliceStatus\x12.\n\x0cslice_status\x18\x01 \x01(\x0e\x32\x18.context.SliceStatusEnum\"2\n\x0bSliceIdList\x12#\n\tslice_ids\x18\x01 \x03(\x0b\x32\x10.context.SliceId\"+\n\tSliceList\x12\x1e\n\x06slices\x18\x01 \x03(\x0b\x32\x0e.context.Slice\"O\n\nSliceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12\"\n\x08slice_id\x18\x02 \x01(\x0b\x32\x10.context.SliceId\"6\n\x0c\x43onnectionId\x12&\n\x0f\x63onnection_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\xc4\x01\n\nConnection\x12,\n\rconnection_id\x18\x01 \x01(\x0b\x32\x15.context.ConnectionId\x12&\n\nservice_id\x18\x02 \x01(\x0b\x32\x12.context.ServiceId\x12\x33\n\x16path_hops_endpoint_ids\x18\x03 \x03(\x0b\x32\x13.context.EndPointId\x12+\n\x0fsub_service_ids\x18\x04 \x03(\x0b\x32\x12.context.ServiceId\"A\n\x10\x43onnectionIdList\x12-\n\x0e\x63onnection_ids\x18\x01 \x03(\x0b\x32\x15.context.ConnectionId\":\n\x0e\x43onnectionList\x12(\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32\x13.context.Connection\"^\n\x0f\x43onnectionEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12,\n\rconnection_id\x18\x02 \x01(\x0b\x32\x15.context.ConnectionId\"\x82\x01\n\nEndPointId\x12(\n\x0btopology_id\x18\x01 \x01(\x0b\x32\x13.context.TopologyId\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\x12$\n\rendpoint_uuid\x18\x03 \x01(\x0b\x32\r.context.Uuid\"\x86\x01\n\x08\x45ndPoint\x12(\n\x0b\x65ndpoint_id\x18\x01 \x01(\x0b\x32\x13.context.EndPointId\x12\x15\n\rendpoint_type\x18\x02 \x01(\t\x12\x39\n\x10kpi_sample_types\x18\x03 \x03(\x0e\x32\x1f.kpi_sample_types.KpiSampleType\"e\n\nConfigRule\x12)\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\x19.context.ConfigActionEnum\x12\x14\n\x0cresource_key\x18\x02 \x01(\t\x12\x16\n\x0eresource_value\x18\x03 \x01(\t\"?\n\nConstraint\x12\x17\n\x0f\x63onstraint_type\x18\x01 \x01(\t\x12\x18\n\x10\x63onstraint_value\x18\x02 \x01(\t\"^\n\x12TeraFlowController\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x12\n\nip_address\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\"U\n\x14\x41uthenticationResult\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x15\n\rauthenticated\x18\x02 \x01(\x08*j\n\rEventTypeEnum\x12\x17\n\x13\x45VENTTYPE_UNDEFINED\x10\x00\x12\x14\n\x10\x45VENTTYPE_CREATE\x10\x01\x12\x14\n\x10\x45VENTTYPE_UPDATE\x10\x02\x12\x14\n\x10\x45VENTTYPE_REMOVE\x10\x03*\xc5\x01\n\x10\x44\x65viceDriverEnum\x12\x1a\n\x16\x44\x45VICEDRIVER_UNDEFINED\x10\x00\x12\x1b\n\x17\x44\x45VICEDRIVER_OPENCONFIG\x10\x01\x12\x1e\n\x1a\x44\x45VICEDRIVER_TRANSPORT_API\x10\x02\x12\x13\n\x0f\x44\x45VICEDRIVER_P4\x10\x03\x12&\n\"DEVICEDRIVER_IETF_NETWORK_TOPOLOGY\x10\x04\x12\x1b\n\x17\x44\x45VICEDRIVER_ONF_TR_352\x10\x05*\x8f\x01\n\x1b\x44\x65viceOperationalStatusEnum\x12%\n!DEVICEOPERATIONALSTATUS_UNDEFINED\x10\x00\x12$\n DEVICEOPERATIONALSTATUS_DISABLED\x10\x01\x12#\n\x1f\x44\x45VICEOPERATIONALSTATUS_ENABLED\x10\x02*\x81\x01\n\x0fServiceTypeEnum\x12\x17\n\x13SERVICETYPE_UNKNOWN\x10\x00\x12\x14\n\x10SERVICETYPE_L3NM\x10\x01\x12\x14\n\x10SERVICETYPE_L2NM\x10\x02\x12)\n%SERVICETYPE_TAPI_CONNECTIVITY_SERVICE\x10\x03*\x88\x01\n\x11ServiceStatusEnum\x12\x1b\n\x17SERVICESTATUS_UNDEFINED\x10\x00\x12\x19\n\x15SERVICESTATUS_PLANNED\x10\x01\x12\x18\n\x14SERVICESTATUS_ACTIVE\x10\x02\x12!\n\x1dSERVICESTATUS_PENDING_REMOVAL\x10\x03*\x8b\x01\n\x0fSliceStatusEnum\x12\x19\n\x15SLICESTATUS_UNDEFINED\x10\x00\x12\x17\n\x13SLICESTATUS_PLANNED\x10\x01\x12\x14\n\x10SLICESTATUS_INIT\x10\x02\x12\x16\n\x12SLICESTATUS_ACTIVE\x10\x03\x12\x16\n\x12SLICESTATUS_DEINIT\x10\x04*]\n\x10\x43onfigActionEnum\x12\x1a\n\x16\x43ONFIGACTION_UNDEFINED\x10\x00\x12\x14\n\x10\x43ONFIGACTION_SET\x10\x01\x12\x17\n\x13\x43ONFIGACTION_DELETE\x10\x02\x32\xef\x12\n\x0e\x43ontextService\x12:\n\x0eListContextIds\x12\x0e.context.Empty\x1a\x16.context.ContextIdList\"\x00\x12\x36\n\x0cListContexts\x12\x0e.context.Empty\x1a\x14.context.ContextList\"\x00\x12\x34\n\nGetContext\x12\x12.context.ContextId\x1a\x10.context.Context\"\x00\x12\x34\n\nSetContext\x12\x10.context.Context\x1a\x12.context.ContextId\"\x00\x12\x35\n\rRemoveContext\x12\x12.context.ContextId\x1a\x0e.context.Empty\"\x00\x12=\n\x10GetContextEvents\x12\x0e.context.Empty\x1a\x15.context.ContextEvent\"\x00\x30\x01\x12@\n\x0fListTopologyIds\x12\x12.context.ContextId\x1a\x17.context.TopologyIdList\"\x00\x12=\n\x0eListTopologies\x12\x12.context.ContextId\x1a\x15.context.TopologyList\"\x00\x12\x37\n\x0bGetTopology\x12\x13.context.TopologyId\x1a\x11.context.Topology\"\x00\x12\x37\n\x0bSetTopology\x12\x11.context.Topology\x1a\x13.context.TopologyId\"\x00\x12\x37\n\x0eRemoveTopology\x12\x13.context.TopologyId\x1a\x0e.context.Empty\"\x00\x12?\n\x11GetTopologyEvents\x12\x0e.context.Empty\x1a\x16.context.TopologyEvent\"\x00\x30\x01\x12\x38\n\rListDeviceIds\x12\x0e.context.Empty\x1a\x15.context.DeviceIdList\"\x00\x12\x34\n\x0bListDevices\x12\x0e.context.Empty\x1a\x13.context.DeviceList\"\x00\x12\x31\n\tGetDevice\x12\x11.context.DeviceId\x1a\x0f.context.Device\"\x00\x12\x31\n\tSetDevice\x12\x0f.context.Device\x1a\x11.context.DeviceId\"\x00\x12\x33\n\x0cRemoveDevice\x12\x11.context.DeviceId\x1a\x0e.context.Empty\"\x00\x12;\n\x0fGetDeviceEvents\x12\x0e.context.Empty\x1a\x14.context.DeviceEvent\"\x00\x30\x01\x12\x34\n\x0bListLinkIds\x12\x0e.context.Empty\x1a\x13.context.LinkIdList\"\x00\x12\x30\n\tListLinks\x12\x0e.context.Empty\x1a\x11.context.LinkList\"\x00\x12+\n\x07GetLink\x12\x0f.context.LinkId\x1a\r.context.Link\"\x00\x12+\n\x07SetLink\x12\r.context.Link\x1a\x0f.context.LinkId\"\x00\x12/\n\nRemoveLink\x12\x0f.context.LinkId\x1a\x0e.context.Empty\"\x00\x12\x37\n\rGetLinkEvents\x12\x0e.context.Empty\x1a\x12.context.LinkEvent\"\x00\x30\x01\x12>\n\x0eListServiceIds\x12\x12.context.ContextId\x1a\x16.context.ServiceIdList\"\x00\x12:\n\x0cListServices\x12\x12.context.ContextId\x1a\x14.context.ServiceList\"\x00\x12\x34\n\nGetService\x12\x12.context.ServiceId\x1a\x10.context.Service\"\x00\x12\x34\n\nSetService\x12\x10.context.Service\x1a\x12.context.ServiceId\"\x00\x12\x35\n\rRemoveService\x12\x12.context.ServiceId\x1a\x0e.context.Empty\"\x00\x12=\n\x10GetServiceEvents\x12\x0e.context.Empty\x1a\x15.context.ServiceEvent\"\x00\x30\x01\x12:\n\x0cListSliceIds\x12\x12.context.ContextId\x1a\x14.context.SliceIdList\"\x00\x12\x36\n\nListSlices\x12\x12.context.ContextId\x1a\x12.context.SliceList\"\x00\x12.\n\x08GetSlice\x12\x10.context.SliceId\x1a\x0e.context.Slice\"\x00\x12.\n\x08SetSlice\x12\x0e.context.Slice\x1a\x10.context.SliceId\"\x00\x12\x31\n\x0bRemoveSlice\x12\x10.context.SliceId\x1a\x0e.context.Empty\"\x00\x12\x39\n\x0eGetSliceEvents\x12\x0e.context.Empty\x1a\x13.context.SliceEvent\"\x00\x30\x01\x12\x44\n\x11ListConnectionIds\x12\x12.context.ServiceId\x1a\x19.context.ConnectionIdList\"\x00\x12@\n\x0fListConnections\x12\x12.context.ServiceId\x1a\x17.context.ConnectionList\"\x00\x12=\n\rGetConnection\x12\x15.context.ConnectionId\x1a\x13.context.Connection\"\x00\x12=\n\rSetConnection\x12\x13.context.Connection\x1a\x15.context.ConnectionId\"\x00\x12;\n\x10RemoveConnection\x12\x15.context.ConnectionId\x1a\x0e.context.Empty\"\x00\x12\x43\n\x13GetConnectionEvents\x12\x0e.context.Empty\x1a\x18.context.ConnectionEvent\"\x00\x30\x01\x62\x06proto3' - , - dependencies=[kpi__sample__types__pb2.DESCRIPTOR,]) - -_EVENTTYPEENUM = _descriptor.EnumDescriptor( - name='EventTypeEnum', - full_name='context.EventTypeEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='EVENTTYPE_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EVENTTYPE_CREATE', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EVENTTYPE_UPDATE', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EVENTTYPE_REMOVE', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=4310, - serialized_end=4416, -) -_sym_db.RegisterEnumDescriptor(_EVENTTYPEENUM) - -EventTypeEnum = enum_type_wrapper.EnumTypeWrapper(_EVENTTYPEENUM) -_DEVICEDRIVERENUM = _descriptor.EnumDescriptor( - name='DeviceDriverEnum', - full_name='context.DeviceDriverEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_OPENCONFIG', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_TRANSPORT_API', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_P4', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_IETF_NETWORK_TOPOLOGY', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEDRIVER_ONF_TR_352', index=5, number=5, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=4419, - serialized_end=4616, -) -_sym_db.RegisterEnumDescriptor(_DEVICEDRIVERENUM) - -DeviceDriverEnum = enum_type_wrapper.EnumTypeWrapper(_DEVICEDRIVERENUM) -_DEVICEOPERATIONALSTATUSENUM = _descriptor.EnumDescriptor( - name='DeviceOperationalStatusEnum', - full_name='context.DeviceOperationalStatusEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='DEVICEOPERATIONALSTATUS_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEOPERATIONALSTATUS_DISABLED', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DEVICEOPERATIONALSTATUS_ENABLED', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=4619, - serialized_end=4762, -) -_sym_db.RegisterEnumDescriptor(_DEVICEOPERATIONALSTATUSENUM) - -DeviceOperationalStatusEnum = enum_type_wrapper.EnumTypeWrapper(_DEVICEOPERATIONALSTATUSENUM) -_SERVICETYPEENUM = _descriptor.EnumDescriptor( - name='ServiceTypeEnum', - full_name='context.ServiceTypeEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='SERVICETYPE_UNKNOWN', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICETYPE_L3NM', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICETYPE_L2NM', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICETYPE_TAPI_CONNECTIVITY_SERVICE', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=4765, - serialized_end=4894, -) -_sym_db.RegisterEnumDescriptor(_SERVICETYPEENUM) - -ServiceTypeEnum = enum_type_wrapper.EnumTypeWrapper(_SERVICETYPEENUM) -_SERVICESTATUSENUM = _descriptor.EnumDescriptor( - name='ServiceStatusEnum', - full_name='context.ServiceStatusEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='SERVICESTATUS_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICESTATUS_PLANNED', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICESTATUS_ACTIVE', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SERVICESTATUS_PENDING_REMOVAL', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=4897, - serialized_end=5033, -) -_sym_db.RegisterEnumDescriptor(_SERVICESTATUSENUM) - -ServiceStatusEnum = enum_type_wrapper.EnumTypeWrapper(_SERVICESTATUSENUM) -_SLICESTATUSENUM = _descriptor.EnumDescriptor( - name='SliceStatusEnum', - full_name='context.SliceStatusEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='SLICESTATUS_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SLICESTATUS_PLANNED', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SLICESTATUS_INIT', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SLICESTATUS_ACTIVE', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='SLICESTATUS_DEINIT', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=5036, - serialized_end=5175, -) -_sym_db.RegisterEnumDescriptor(_SLICESTATUSENUM) - -SliceStatusEnum = enum_type_wrapper.EnumTypeWrapper(_SLICESTATUSENUM) -_CONFIGACTIONENUM = _descriptor.EnumDescriptor( - name='ConfigActionEnum', - full_name='context.ConfigActionEnum', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='CONFIGACTION_UNDEFINED', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='CONFIGACTION_SET', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='CONFIGACTION_DELETE', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=5177, - serialized_end=5270, -) -_sym_db.RegisterEnumDescriptor(_CONFIGACTIONENUM) - -ConfigActionEnum = enum_type_wrapper.EnumTypeWrapper(_CONFIGACTIONENUM) -EVENTTYPE_UNDEFINED = 0 -EVENTTYPE_CREATE = 1 -EVENTTYPE_UPDATE = 2 -EVENTTYPE_REMOVE = 3 -DEVICEDRIVER_UNDEFINED = 0 -DEVICEDRIVER_OPENCONFIG = 1 -DEVICEDRIVER_TRANSPORT_API = 2 -DEVICEDRIVER_P4 = 3 -DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4 -DEVICEDRIVER_ONF_TR_352 = 5 -DEVICEOPERATIONALSTATUS_UNDEFINED = 0 -DEVICEOPERATIONALSTATUS_DISABLED = 1 -DEVICEOPERATIONALSTATUS_ENABLED = 2 -SERVICETYPE_UNKNOWN = 0 -SERVICETYPE_L3NM = 1 -SERVICETYPE_L2NM = 2 -SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3 -SERVICESTATUS_UNDEFINED = 0 -SERVICESTATUS_PLANNED = 1 -SERVICESTATUS_ACTIVE = 2 -SERVICESTATUS_PENDING_REMOVAL = 3 -SLICESTATUS_UNDEFINED = 0 -SLICESTATUS_PLANNED = 1 -SLICESTATUS_INIT = 2 -SLICESTATUS_ACTIVE = 3 -SLICESTATUS_DEINIT = 4 -CONFIGACTION_UNDEFINED = 0 -CONFIGACTION_SET = 1 -CONFIGACTION_DELETE = 2 - - - -_EMPTY = _descriptor.Descriptor( - name='Empty', - full_name='context.Empty', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=50, - serialized_end=57, -) - - -_UUID = _descriptor.Descriptor( - name='Uuid', - full_name='context.Uuid', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='uuid', full_name='context.Uuid.uuid', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=59, - serialized_end=79, -) - - -_EVENT = _descriptor.Descriptor( - name='Event', - full_name='context.Event', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='timestamp', full_name='context.Event.timestamp', index=0, - number=1, type=1, cpp_type=5, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='event_type', full_name='context.Event.event_type', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=81, - serialized_end=151, -) - - -_CONTEXTID = _descriptor.Descriptor( - name='ContextId', - full_name='context.ContextId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_uuid', full_name='context.ContextId.context_uuid', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=153, - serialized_end=201, -) - - -_CONTEXT = _descriptor.Descriptor( - name='Context', - full_name='context.Context', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.Context.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='topology_ids', full_name='context.Context.topology_ids', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_ids', full_name='context.Context.service_ids', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='controller', full_name='context.Context.controller', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=204, - serialized_end=386, -) - - -_CONTEXTIDLIST = _descriptor.Descriptor( - name='ContextIdList', - full_name='context.ContextIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_ids', full_name='context.ContextIdList.context_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=388, - serialized_end=444, -) - - -_CONTEXTLIST = _descriptor.Descriptor( - name='ContextList', - full_name='context.ContextList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='contexts', full_name='context.ContextList.contexts', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=446, - serialized_end=495, -) - - -_CONTEXTEVENT = _descriptor.Descriptor( - name='ContextEvent', - full_name='context.ContextEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.ContextEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='context_id', full_name='context.ContextEvent.context_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=497, - serialized_end=582, -) - - -_TOPOLOGYID = _descriptor.Descriptor( - name='TopologyId', - full_name='context.TopologyId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.TopologyId.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='topology_uuid', full_name='context.TopologyId.topology_uuid', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=584, - serialized_end=674, -) - - -_TOPOLOGY = _descriptor.Descriptor( - name='Topology', - full_name='context.Topology', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='topology_id', full_name='context.Topology.topology_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_ids', full_name='context.Topology.device_ids', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='link_ids', full_name='context.Topology.link_ids', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=676, - serialized_end=802, -) - - -_TOPOLOGYIDLIST = _descriptor.Descriptor( - name='TopologyIdList', - full_name='context.TopologyIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='topology_ids', full_name='context.TopologyIdList.topology_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=804, - serialized_end=863, -) - - -_TOPOLOGYLIST = _descriptor.Descriptor( - name='TopologyList', - full_name='context.TopologyList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='topologies', full_name='context.TopologyList.topologies', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=865, - serialized_end=918, -) - - -_TOPOLOGYEVENT = _descriptor.Descriptor( - name='TopologyEvent', - full_name='context.TopologyEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.TopologyEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='topology_id', full_name='context.TopologyEvent.topology_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=920, - serialized_end=1008, -) - - -_DEVICEID = _descriptor.Descriptor( - name='DeviceId', - full_name='context.DeviceId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='device_uuid', full_name='context.DeviceId.device_uuid', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1010, - serialized_end=1056, -) - - -_DEVICE = _descriptor.Descriptor( - name='Device', - full_name='context.Device', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='device_id', full_name='context.Device.device_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_type', full_name='context.Device.device_type', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_config', full_name='context.Device.device_config', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_operational_status', full_name='context.Device.device_operational_status', index=3, - number=4, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_drivers', full_name='context.Device.device_drivers', index=4, - number=5, type=14, cpp_type=8, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_endpoints', full_name='context.Device.device_endpoints', index=5, - number=6, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1059, - serialized_end=1341, -) - - -_DEVICECONFIG = _descriptor.Descriptor( - name='DeviceConfig', - full_name='context.DeviceConfig', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='config_rules', full_name='context.DeviceConfig.config_rules', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1343, - serialized_end=1400, -) - - -_DEVICEIDLIST = _descriptor.Descriptor( - name='DeviceIdList', - full_name='context.DeviceIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='device_ids', full_name='context.DeviceIdList.device_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1402, - serialized_end=1455, -) - - -_DEVICELIST = _descriptor.Descriptor( - name='DeviceList', - full_name='context.DeviceList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='devices', full_name='context.DeviceList.devices', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1457, - serialized_end=1503, -) - - -_DEVICEEVENT = _descriptor.Descriptor( - name='DeviceEvent', - full_name='context.DeviceEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.DeviceEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_id', full_name='context.DeviceEvent.device_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1505, - serialized_end=1587, -) - - -_LINKID = _descriptor.Descriptor( - name='LinkId', - full_name='context.LinkId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='link_uuid', full_name='context.LinkId.link_uuid', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1589, - serialized_end=1631, -) - - -_LINK = _descriptor.Descriptor( - name='Link', - full_name='context.Link', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='link_id', full_name='context.Link.link_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='link_endpoint_ids', full_name='context.Link.link_endpoint_ids', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1633, - serialized_end=1721, -) - - -_LINKIDLIST = _descriptor.Descriptor( - name='LinkIdList', - full_name='context.LinkIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='link_ids', full_name='context.LinkIdList.link_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1723, - serialized_end=1770, -) - - -_LINKLIST = _descriptor.Descriptor( - name='LinkList', - full_name='context.LinkList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='links', full_name='context.LinkList.links', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1772, - serialized_end=1812, -) - - -_LINKEVENT = _descriptor.Descriptor( - name='LinkEvent', - full_name='context.LinkEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.LinkEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='link_id', full_name='context.LinkEvent.link_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1814, - serialized_end=1890, -) - - -_SERVICEID = _descriptor.Descriptor( - name='ServiceId', - full_name='context.ServiceId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.ServiceId.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_uuid', full_name='context.ServiceId.service_uuid', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1892, - serialized_end=1980, -) - - -_SERVICE = _descriptor.Descriptor( - name='Service', - full_name='context.Service', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='service_id', full_name='context.Service.service_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_type', full_name='context.Service.service_type', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_endpoint_ids', full_name='context.Service.service_endpoint_ids', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_constraints', full_name='context.Service.service_constraints', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_status', full_name='context.Service.service_status', index=4, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_config', full_name='context.Service.service_config', index=5, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1983, - serialized_end=2277, -) - - -_SERVICESTATUS = _descriptor.Descriptor( - name='ServiceStatus', - full_name='context.ServiceStatus', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='service_status', full_name='context.ServiceStatus.service_status', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2279, - serialized_end=2346, -) - - -_SERVICECONFIG = _descriptor.Descriptor( - name='ServiceConfig', - full_name='context.ServiceConfig', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='config_rules', full_name='context.ServiceConfig.config_rules', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2348, - serialized_end=2406, -) - - -_SERVICEIDLIST = _descriptor.Descriptor( - name='ServiceIdList', - full_name='context.ServiceIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='service_ids', full_name='context.ServiceIdList.service_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2408, - serialized_end=2464, -) - - -_SERVICELIST = _descriptor.Descriptor( - name='ServiceList', - full_name='context.ServiceList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='services', full_name='context.ServiceList.services', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2466, - serialized_end=2515, -) - - -_SERVICEEVENT = _descriptor.Descriptor( - name='ServiceEvent', - full_name='context.ServiceEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.ServiceEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_id', full_name='context.ServiceEvent.service_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2517, - serialized_end=2602, -) - - -_SLICEID = _descriptor.Descriptor( - name='SliceId', - full_name='context.SliceId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.SliceId.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_uuid', full_name='context.SliceId.slice_uuid', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2604, - serialized_end=2688, -) - - -_SLICE = _descriptor.Descriptor( - name='Slice', - full_name='context.Slice', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='slice_id', full_name='context.Slice.slice_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_endpoint_ids', full_name='context.Slice.slice_endpoint_ids', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_constraints', full_name='context.Slice.slice_constraints', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_service_ids', full_name='context.Slice.slice_service_ids', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_subslice_ids', full_name='context.Slice.slice_subslice_ids', index=4, - number=5, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_status', full_name='context.Slice.slice_status', index=5, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2691, - serialized_end=2968, -) - - -_SLICESTATUS = _descriptor.Descriptor( - name='SliceStatus', - full_name='context.SliceStatus', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='slice_status', full_name='context.SliceStatus.slice_status', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2970, - serialized_end=3031, -) - - -_SLICEIDLIST = _descriptor.Descriptor( - name='SliceIdList', - full_name='context.SliceIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='slice_ids', full_name='context.SliceIdList.slice_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3033, - serialized_end=3083, -) - - -_SLICELIST = _descriptor.Descriptor( - name='SliceList', - full_name='context.SliceList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='slices', full_name='context.SliceList.slices', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3085, - serialized_end=3128, -) - - -_SLICEEVENT = _descriptor.Descriptor( - name='SliceEvent', - full_name='context.SliceEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.SliceEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='slice_id', full_name='context.SliceEvent.slice_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3130, - serialized_end=3209, -) - - -_CONNECTIONID = _descriptor.Descriptor( - name='ConnectionId', - full_name='context.ConnectionId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='connection_uuid', full_name='context.ConnectionId.connection_uuid', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3211, - serialized_end=3265, -) - - -_CONNECTION = _descriptor.Descriptor( - name='Connection', - full_name='context.Connection', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='connection_id', full_name='context.Connection.connection_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='service_id', full_name='context.Connection.service_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='path_hops_endpoint_ids', full_name='context.Connection.path_hops_endpoint_ids', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='sub_service_ids', full_name='context.Connection.sub_service_ids', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3268, - serialized_end=3464, -) - - -_CONNECTIONIDLIST = _descriptor.Descriptor( - name='ConnectionIdList', - full_name='context.ConnectionIdList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='connection_ids', full_name='context.ConnectionIdList.connection_ids', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3466, - serialized_end=3531, -) - - -_CONNECTIONLIST = _descriptor.Descriptor( - name='ConnectionList', - full_name='context.ConnectionList', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='connections', full_name='context.ConnectionList.connections', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3533, - serialized_end=3591, -) - - -_CONNECTIONEVENT = _descriptor.Descriptor( - name='ConnectionEvent', - full_name='context.ConnectionEvent', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='event', full_name='context.ConnectionEvent.event', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='connection_id', full_name='context.ConnectionEvent.connection_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3593, - serialized_end=3687, -) - - -_ENDPOINTID = _descriptor.Descriptor( - name='EndPointId', - full_name='context.EndPointId', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='topology_id', full_name='context.EndPointId.topology_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='device_id', full_name='context.EndPointId.device_id', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='endpoint_uuid', full_name='context.EndPointId.endpoint_uuid', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3690, - serialized_end=3820, -) - - -_ENDPOINT = _descriptor.Descriptor( - name='EndPoint', - full_name='context.EndPoint', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='endpoint_id', full_name='context.EndPoint.endpoint_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='endpoint_type', full_name='context.EndPoint.endpoint_type', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='kpi_sample_types', full_name='context.EndPoint.kpi_sample_types', index=2, - number=3, type=14, cpp_type=8, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3823, - serialized_end=3957, -) - - -_CONFIGRULE = _descriptor.Descriptor( - name='ConfigRule', - full_name='context.ConfigRule', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='action', full_name='context.ConfigRule.action', index=0, - number=1, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='resource_key', full_name='context.ConfigRule.resource_key', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='resource_value', full_name='context.ConfigRule.resource_value', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=3959, - serialized_end=4060, -) - - -_CONSTRAINT = _descriptor.Descriptor( - name='Constraint', - full_name='context.Constraint', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='constraint_type', full_name='context.Constraint.constraint_type', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='constraint_value', full_name='context.Constraint.constraint_value', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4062, - serialized_end=4125, -) - - -_TERAFLOWCONTROLLER = _descriptor.Descriptor( - name='TeraFlowController', - full_name='context.TeraFlowController', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.TeraFlowController.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ip_address', full_name='context.TeraFlowController.ip_address', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port', full_name='context.TeraFlowController.port', index=2, - number=3, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4127, - serialized_end=4221, -) - - -_AUTHENTICATIONRESULT = _descriptor.Descriptor( - name='AuthenticationResult', - full_name='context.AuthenticationResult', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='context_id', full_name='context.AuthenticationResult.context_id', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='authenticated', full_name='context.AuthenticationResult.authenticated', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=4223, - serialized_end=4308, -) - -_EVENT.fields_by_name['event_type'].enum_type = _EVENTTYPEENUM -_CONTEXTID.fields_by_name['context_uuid'].message_type = _UUID -_CONTEXT.fields_by_name['context_id'].message_type = _CONTEXTID -_CONTEXT.fields_by_name['topology_ids'].message_type = _TOPOLOGYID -_CONTEXT.fields_by_name['service_ids'].message_type = _SERVICEID -_CONTEXT.fields_by_name['controller'].message_type = _TERAFLOWCONTROLLER -_CONTEXTIDLIST.fields_by_name['context_ids'].message_type = _CONTEXTID -_CONTEXTLIST.fields_by_name['contexts'].message_type = _CONTEXT -_CONTEXTEVENT.fields_by_name['event'].message_type = _EVENT -_CONTEXTEVENT.fields_by_name['context_id'].message_type = _CONTEXTID -_TOPOLOGYID.fields_by_name['context_id'].message_type = _CONTEXTID -_TOPOLOGYID.fields_by_name['topology_uuid'].message_type = _UUID -_TOPOLOGY.fields_by_name['topology_id'].message_type = _TOPOLOGYID -_TOPOLOGY.fields_by_name['device_ids'].message_type = _DEVICEID -_TOPOLOGY.fields_by_name['link_ids'].message_type = _LINKID -_TOPOLOGYIDLIST.fields_by_name['topology_ids'].message_type = _TOPOLOGYID -_TOPOLOGYLIST.fields_by_name['topologies'].message_type = _TOPOLOGY -_TOPOLOGYEVENT.fields_by_name['event'].message_type = _EVENT -_TOPOLOGYEVENT.fields_by_name['topology_id'].message_type = _TOPOLOGYID -_DEVICEID.fields_by_name['device_uuid'].message_type = _UUID -_DEVICE.fields_by_name['device_id'].message_type = _DEVICEID -_DEVICE.fields_by_name['device_config'].message_type = _DEVICECONFIG -_DEVICE.fields_by_name['device_operational_status'].enum_type = _DEVICEOPERATIONALSTATUSENUM -_DEVICE.fields_by_name['device_drivers'].enum_type = _DEVICEDRIVERENUM -_DEVICE.fields_by_name['device_endpoints'].message_type = _ENDPOINT -_DEVICECONFIG.fields_by_name['config_rules'].message_type = _CONFIGRULE -_DEVICEIDLIST.fields_by_name['device_ids'].message_type = _DEVICEID -_DEVICELIST.fields_by_name['devices'].message_type = _DEVICE -_DEVICEEVENT.fields_by_name['event'].message_type = _EVENT -_DEVICEEVENT.fields_by_name['device_id'].message_type = _DEVICEID -_LINKID.fields_by_name['link_uuid'].message_type = _UUID -_LINK.fields_by_name['link_id'].message_type = _LINKID -_LINK.fields_by_name['link_endpoint_ids'].message_type = _ENDPOINTID -_LINKIDLIST.fields_by_name['link_ids'].message_type = _LINKID -_LINKLIST.fields_by_name['links'].message_type = _LINK -_LINKEVENT.fields_by_name['event'].message_type = _EVENT -_LINKEVENT.fields_by_name['link_id'].message_type = _LINKID -_SERVICEID.fields_by_name['context_id'].message_type = _CONTEXTID -_SERVICEID.fields_by_name['service_uuid'].message_type = _UUID -_SERVICE.fields_by_name['service_id'].message_type = _SERVICEID -_SERVICE.fields_by_name['service_type'].enum_type = _SERVICETYPEENUM -_SERVICE.fields_by_name['service_endpoint_ids'].message_type = _ENDPOINTID -_SERVICE.fields_by_name['service_constraints'].message_type = _CONSTRAINT -_SERVICE.fields_by_name['service_status'].message_type = _SERVICESTATUS -_SERVICE.fields_by_name['service_config'].message_type = _SERVICECONFIG -_SERVICESTATUS.fields_by_name['service_status'].enum_type = _SERVICESTATUSENUM -_SERVICECONFIG.fields_by_name['config_rules'].message_type = _CONFIGRULE -_SERVICEIDLIST.fields_by_name['service_ids'].message_type = _SERVICEID -_SERVICELIST.fields_by_name['services'].message_type = _SERVICE -_SERVICEEVENT.fields_by_name['event'].message_type = _EVENT -_SERVICEEVENT.fields_by_name['service_id'].message_type = _SERVICEID -_SLICEID.fields_by_name['context_id'].message_type = _CONTEXTID -_SLICEID.fields_by_name['slice_uuid'].message_type = _UUID -_SLICE.fields_by_name['slice_id'].message_type = _SLICEID -_SLICE.fields_by_name['slice_endpoint_ids'].message_type = _ENDPOINTID -_SLICE.fields_by_name['slice_constraints'].message_type = _CONSTRAINT -_SLICE.fields_by_name['slice_service_ids'].message_type = _SERVICEID -_SLICE.fields_by_name['slice_subslice_ids'].message_type = _SLICEID -_SLICE.fields_by_name['slice_status'].message_type = _SLICESTATUS -_SLICESTATUS.fields_by_name['slice_status'].enum_type = _SLICESTATUSENUM -_SLICEIDLIST.fields_by_name['slice_ids'].message_type = _SLICEID -_SLICELIST.fields_by_name['slices'].message_type = _SLICE -_SLICEEVENT.fields_by_name['event'].message_type = _EVENT -_SLICEEVENT.fields_by_name['slice_id'].message_type = _SLICEID -_CONNECTIONID.fields_by_name['connection_uuid'].message_type = _UUID -_CONNECTION.fields_by_name['connection_id'].message_type = _CONNECTIONID -_CONNECTION.fields_by_name['service_id'].message_type = _SERVICEID -_CONNECTION.fields_by_name['path_hops_endpoint_ids'].message_type = _ENDPOINTID -_CONNECTION.fields_by_name['sub_service_ids'].message_type = _SERVICEID -_CONNECTIONIDLIST.fields_by_name['connection_ids'].message_type = _CONNECTIONID -_CONNECTIONLIST.fields_by_name['connections'].message_type = _CONNECTION -_CONNECTIONEVENT.fields_by_name['event'].message_type = _EVENT -_CONNECTIONEVENT.fields_by_name['connection_id'].message_type = _CONNECTIONID -_ENDPOINTID.fields_by_name['topology_id'].message_type = _TOPOLOGYID -_ENDPOINTID.fields_by_name['device_id'].message_type = _DEVICEID -_ENDPOINTID.fields_by_name['endpoint_uuid'].message_type = _UUID -_ENDPOINT.fields_by_name['endpoint_id'].message_type = _ENDPOINTID -_ENDPOINT.fields_by_name['kpi_sample_types'].enum_type = kpi__sample__types__pb2._KPISAMPLETYPE -_CONFIGRULE.fields_by_name['action'].enum_type = _CONFIGACTIONENUM -_TERAFLOWCONTROLLER.fields_by_name['context_id'].message_type = _CONTEXTID -_AUTHENTICATIONRESULT.fields_by_name['context_id'].message_type = _CONTEXTID -DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY -DESCRIPTOR.message_types_by_name['Uuid'] = _UUID -DESCRIPTOR.message_types_by_name['Event'] = _EVENT -DESCRIPTOR.message_types_by_name['ContextId'] = _CONTEXTID -DESCRIPTOR.message_types_by_name['Context'] = _CONTEXT -DESCRIPTOR.message_types_by_name['ContextIdList'] = _CONTEXTIDLIST -DESCRIPTOR.message_types_by_name['ContextList'] = _CONTEXTLIST -DESCRIPTOR.message_types_by_name['ContextEvent'] = _CONTEXTEVENT -DESCRIPTOR.message_types_by_name['TopologyId'] = _TOPOLOGYID -DESCRIPTOR.message_types_by_name['Topology'] = _TOPOLOGY -DESCRIPTOR.message_types_by_name['TopologyIdList'] = _TOPOLOGYIDLIST -DESCRIPTOR.message_types_by_name['TopologyList'] = _TOPOLOGYLIST -DESCRIPTOR.message_types_by_name['TopologyEvent'] = _TOPOLOGYEVENT -DESCRIPTOR.message_types_by_name['DeviceId'] = _DEVICEID -DESCRIPTOR.message_types_by_name['Device'] = _DEVICE -DESCRIPTOR.message_types_by_name['DeviceConfig'] = _DEVICECONFIG -DESCRIPTOR.message_types_by_name['DeviceIdList'] = _DEVICEIDLIST -DESCRIPTOR.message_types_by_name['DeviceList'] = _DEVICELIST -DESCRIPTOR.message_types_by_name['DeviceEvent'] = _DEVICEEVENT -DESCRIPTOR.message_types_by_name['LinkId'] = _LINKID -DESCRIPTOR.message_types_by_name['Link'] = _LINK -DESCRIPTOR.message_types_by_name['LinkIdList'] = _LINKIDLIST -DESCRIPTOR.message_types_by_name['LinkList'] = _LINKLIST -DESCRIPTOR.message_types_by_name['LinkEvent'] = _LINKEVENT -DESCRIPTOR.message_types_by_name['ServiceId'] = _SERVICEID -DESCRIPTOR.message_types_by_name['Service'] = _SERVICE -DESCRIPTOR.message_types_by_name['ServiceStatus'] = _SERVICESTATUS -DESCRIPTOR.message_types_by_name['ServiceConfig'] = _SERVICECONFIG -DESCRIPTOR.message_types_by_name['ServiceIdList'] = _SERVICEIDLIST -DESCRIPTOR.message_types_by_name['ServiceList'] = _SERVICELIST -DESCRIPTOR.message_types_by_name['ServiceEvent'] = _SERVICEEVENT -DESCRIPTOR.message_types_by_name['SliceId'] = _SLICEID -DESCRIPTOR.message_types_by_name['Slice'] = _SLICE -DESCRIPTOR.message_types_by_name['SliceStatus'] = _SLICESTATUS -DESCRIPTOR.message_types_by_name['SliceIdList'] = _SLICEIDLIST -DESCRIPTOR.message_types_by_name['SliceList'] = _SLICELIST -DESCRIPTOR.message_types_by_name['SliceEvent'] = _SLICEEVENT -DESCRIPTOR.message_types_by_name['ConnectionId'] = _CONNECTIONID -DESCRIPTOR.message_types_by_name['Connection'] = _CONNECTION -DESCRIPTOR.message_types_by_name['ConnectionIdList'] = _CONNECTIONIDLIST -DESCRIPTOR.message_types_by_name['ConnectionList'] = _CONNECTIONLIST -DESCRIPTOR.message_types_by_name['ConnectionEvent'] = _CONNECTIONEVENT -DESCRIPTOR.message_types_by_name['EndPointId'] = _ENDPOINTID -DESCRIPTOR.message_types_by_name['EndPoint'] = _ENDPOINT -DESCRIPTOR.message_types_by_name['ConfigRule'] = _CONFIGRULE -DESCRIPTOR.message_types_by_name['Constraint'] = _CONSTRAINT -DESCRIPTOR.message_types_by_name['TeraFlowController'] = _TERAFLOWCONTROLLER -DESCRIPTOR.message_types_by_name['AuthenticationResult'] = _AUTHENTICATIONRESULT -DESCRIPTOR.enum_types_by_name['EventTypeEnum'] = _EVENTTYPEENUM -DESCRIPTOR.enum_types_by_name['DeviceDriverEnum'] = _DEVICEDRIVERENUM -DESCRIPTOR.enum_types_by_name['DeviceOperationalStatusEnum'] = _DEVICEOPERATIONALSTATUSENUM -DESCRIPTOR.enum_types_by_name['ServiceTypeEnum'] = _SERVICETYPEENUM -DESCRIPTOR.enum_types_by_name['ServiceStatusEnum'] = _SERVICESTATUSENUM -DESCRIPTOR.enum_types_by_name['SliceStatusEnum'] = _SLICESTATUSENUM -DESCRIPTOR.enum_types_by_name['ConfigActionEnum'] = _CONFIGACTIONENUM -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), { - 'DESCRIPTOR' : _EMPTY, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Empty) - }) -_sym_db.RegisterMessage(Empty) - -Uuid = _reflection.GeneratedProtocolMessageType('Uuid', (_message.Message,), { - 'DESCRIPTOR' : _UUID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Uuid) - }) -_sym_db.RegisterMessage(Uuid) - -Event = _reflection.GeneratedProtocolMessageType('Event', (_message.Message,), { - 'DESCRIPTOR' : _EVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Event) - }) -_sym_db.RegisterMessage(Event) - -ContextId = _reflection.GeneratedProtocolMessageType('ContextId', (_message.Message,), { - 'DESCRIPTOR' : _CONTEXTID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ContextId) - }) -_sym_db.RegisterMessage(ContextId) - -Context = _reflection.GeneratedProtocolMessageType('Context', (_message.Message,), { - 'DESCRIPTOR' : _CONTEXT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Context) - }) -_sym_db.RegisterMessage(Context) - -ContextIdList = _reflection.GeneratedProtocolMessageType('ContextIdList', (_message.Message,), { - 'DESCRIPTOR' : _CONTEXTIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ContextIdList) - }) -_sym_db.RegisterMessage(ContextIdList) - -ContextList = _reflection.GeneratedProtocolMessageType('ContextList', (_message.Message,), { - 'DESCRIPTOR' : _CONTEXTLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ContextList) - }) -_sym_db.RegisterMessage(ContextList) - -ContextEvent = _reflection.GeneratedProtocolMessageType('ContextEvent', (_message.Message,), { - 'DESCRIPTOR' : _CONTEXTEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ContextEvent) - }) -_sym_db.RegisterMessage(ContextEvent) - -TopologyId = _reflection.GeneratedProtocolMessageType('TopologyId', (_message.Message,), { - 'DESCRIPTOR' : _TOPOLOGYID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.TopologyId) - }) -_sym_db.RegisterMessage(TopologyId) - -Topology = _reflection.GeneratedProtocolMessageType('Topology', (_message.Message,), { - 'DESCRIPTOR' : _TOPOLOGY, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Topology) - }) -_sym_db.RegisterMessage(Topology) - -TopologyIdList = _reflection.GeneratedProtocolMessageType('TopologyIdList', (_message.Message,), { - 'DESCRIPTOR' : _TOPOLOGYIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.TopologyIdList) - }) -_sym_db.RegisterMessage(TopologyIdList) - -TopologyList = _reflection.GeneratedProtocolMessageType('TopologyList', (_message.Message,), { - 'DESCRIPTOR' : _TOPOLOGYLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.TopologyList) - }) -_sym_db.RegisterMessage(TopologyList) - -TopologyEvent = _reflection.GeneratedProtocolMessageType('TopologyEvent', (_message.Message,), { - 'DESCRIPTOR' : _TOPOLOGYEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.TopologyEvent) - }) -_sym_db.RegisterMessage(TopologyEvent) - -DeviceId = _reflection.GeneratedProtocolMessageType('DeviceId', (_message.Message,), { - 'DESCRIPTOR' : _DEVICEID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.DeviceId) - }) -_sym_db.RegisterMessage(DeviceId) - -Device = _reflection.GeneratedProtocolMessageType('Device', (_message.Message,), { - 'DESCRIPTOR' : _DEVICE, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Device) - }) -_sym_db.RegisterMessage(Device) - -DeviceConfig = _reflection.GeneratedProtocolMessageType('DeviceConfig', (_message.Message,), { - 'DESCRIPTOR' : _DEVICECONFIG, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.DeviceConfig) - }) -_sym_db.RegisterMessage(DeviceConfig) - -DeviceIdList = _reflection.GeneratedProtocolMessageType('DeviceIdList', (_message.Message,), { - 'DESCRIPTOR' : _DEVICEIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.DeviceIdList) - }) -_sym_db.RegisterMessage(DeviceIdList) - -DeviceList = _reflection.GeneratedProtocolMessageType('DeviceList', (_message.Message,), { - 'DESCRIPTOR' : _DEVICELIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.DeviceList) - }) -_sym_db.RegisterMessage(DeviceList) - -DeviceEvent = _reflection.GeneratedProtocolMessageType('DeviceEvent', (_message.Message,), { - 'DESCRIPTOR' : _DEVICEEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.DeviceEvent) - }) -_sym_db.RegisterMessage(DeviceEvent) - -LinkId = _reflection.GeneratedProtocolMessageType('LinkId', (_message.Message,), { - 'DESCRIPTOR' : _LINKID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.LinkId) - }) -_sym_db.RegisterMessage(LinkId) - -Link = _reflection.GeneratedProtocolMessageType('Link', (_message.Message,), { - 'DESCRIPTOR' : _LINK, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Link) - }) -_sym_db.RegisterMessage(Link) - -LinkIdList = _reflection.GeneratedProtocolMessageType('LinkIdList', (_message.Message,), { - 'DESCRIPTOR' : _LINKIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.LinkIdList) - }) -_sym_db.RegisterMessage(LinkIdList) - -LinkList = _reflection.GeneratedProtocolMessageType('LinkList', (_message.Message,), { - 'DESCRIPTOR' : _LINKLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.LinkList) - }) -_sym_db.RegisterMessage(LinkList) - -LinkEvent = _reflection.GeneratedProtocolMessageType('LinkEvent', (_message.Message,), { - 'DESCRIPTOR' : _LINKEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.LinkEvent) - }) -_sym_db.RegisterMessage(LinkEvent) - -ServiceId = _reflection.GeneratedProtocolMessageType('ServiceId', (_message.Message,), { - 'DESCRIPTOR' : _SERVICEID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceId) - }) -_sym_db.RegisterMessage(ServiceId) - -Service = _reflection.GeneratedProtocolMessageType('Service', (_message.Message,), { - 'DESCRIPTOR' : _SERVICE, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Service) - }) -_sym_db.RegisterMessage(Service) - -ServiceStatus = _reflection.GeneratedProtocolMessageType('ServiceStatus', (_message.Message,), { - 'DESCRIPTOR' : _SERVICESTATUS, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceStatus) - }) -_sym_db.RegisterMessage(ServiceStatus) - -ServiceConfig = _reflection.GeneratedProtocolMessageType('ServiceConfig', (_message.Message,), { - 'DESCRIPTOR' : _SERVICECONFIG, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceConfig) - }) -_sym_db.RegisterMessage(ServiceConfig) - -ServiceIdList = _reflection.GeneratedProtocolMessageType('ServiceIdList', (_message.Message,), { - 'DESCRIPTOR' : _SERVICEIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceIdList) - }) -_sym_db.RegisterMessage(ServiceIdList) - -ServiceList = _reflection.GeneratedProtocolMessageType('ServiceList', (_message.Message,), { - 'DESCRIPTOR' : _SERVICELIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceList) - }) -_sym_db.RegisterMessage(ServiceList) - -ServiceEvent = _reflection.GeneratedProtocolMessageType('ServiceEvent', (_message.Message,), { - 'DESCRIPTOR' : _SERVICEEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ServiceEvent) - }) -_sym_db.RegisterMessage(ServiceEvent) - -SliceId = _reflection.GeneratedProtocolMessageType('SliceId', (_message.Message,), { - 'DESCRIPTOR' : _SLICEID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.SliceId) - }) -_sym_db.RegisterMessage(SliceId) - -Slice = _reflection.GeneratedProtocolMessageType('Slice', (_message.Message,), { - 'DESCRIPTOR' : _SLICE, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Slice) - }) -_sym_db.RegisterMessage(Slice) - -SliceStatus = _reflection.GeneratedProtocolMessageType('SliceStatus', (_message.Message,), { - 'DESCRIPTOR' : _SLICESTATUS, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.SliceStatus) - }) -_sym_db.RegisterMessage(SliceStatus) - -SliceIdList = _reflection.GeneratedProtocolMessageType('SliceIdList', (_message.Message,), { - 'DESCRIPTOR' : _SLICEIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.SliceIdList) - }) -_sym_db.RegisterMessage(SliceIdList) - -SliceList = _reflection.GeneratedProtocolMessageType('SliceList', (_message.Message,), { - 'DESCRIPTOR' : _SLICELIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.SliceList) - }) -_sym_db.RegisterMessage(SliceList) - -SliceEvent = _reflection.GeneratedProtocolMessageType('SliceEvent', (_message.Message,), { - 'DESCRIPTOR' : _SLICEEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.SliceEvent) - }) -_sym_db.RegisterMessage(SliceEvent) - -ConnectionId = _reflection.GeneratedProtocolMessageType('ConnectionId', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTIONID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ConnectionId) - }) -_sym_db.RegisterMessage(ConnectionId) - -Connection = _reflection.GeneratedProtocolMessageType('Connection', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTION, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Connection) - }) -_sym_db.RegisterMessage(Connection) - -ConnectionIdList = _reflection.GeneratedProtocolMessageType('ConnectionIdList', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTIONIDLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ConnectionIdList) - }) -_sym_db.RegisterMessage(ConnectionIdList) - -ConnectionList = _reflection.GeneratedProtocolMessageType('ConnectionList', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTIONLIST, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ConnectionList) - }) -_sym_db.RegisterMessage(ConnectionList) - -ConnectionEvent = _reflection.GeneratedProtocolMessageType('ConnectionEvent', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTIONEVENT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ConnectionEvent) - }) -_sym_db.RegisterMessage(ConnectionEvent) - -EndPointId = _reflection.GeneratedProtocolMessageType('EndPointId', (_message.Message,), { - 'DESCRIPTOR' : _ENDPOINTID, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.EndPointId) - }) -_sym_db.RegisterMessage(EndPointId) - -EndPoint = _reflection.GeneratedProtocolMessageType('EndPoint', (_message.Message,), { - 'DESCRIPTOR' : _ENDPOINT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.EndPoint) - }) -_sym_db.RegisterMessage(EndPoint) - -ConfigRule = _reflection.GeneratedProtocolMessageType('ConfigRule', (_message.Message,), { - 'DESCRIPTOR' : _CONFIGRULE, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.ConfigRule) - }) -_sym_db.RegisterMessage(ConfigRule) - -Constraint = _reflection.GeneratedProtocolMessageType('Constraint', (_message.Message,), { - 'DESCRIPTOR' : _CONSTRAINT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.Constraint) - }) -_sym_db.RegisterMessage(Constraint) - -TeraFlowController = _reflection.GeneratedProtocolMessageType('TeraFlowController', (_message.Message,), { - 'DESCRIPTOR' : _TERAFLOWCONTROLLER, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.TeraFlowController) - }) -_sym_db.RegisterMessage(TeraFlowController) - -AuthenticationResult = _reflection.GeneratedProtocolMessageType('AuthenticationResult', (_message.Message,), { - 'DESCRIPTOR' : _AUTHENTICATIONRESULT, - '__module__' : 'context_pb2' - # @@protoc_insertion_point(class_scope:context.AuthenticationResult) - }) -_sym_db.RegisterMessage(AuthenticationResult) - - - -_CONTEXTSERVICE = _descriptor.ServiceDescriptor( - name='ContextService', - full_name='context.ContextService', - file=DESCRIPTOR, - index=0, - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_start=5273, - serialized_end=7688, - methods=[ - _descriptor.MethodDescriptor( - name='ListContextIds', - full_name='context.ContextService.ListContextIds', - index=0, - containing_service=None, - input_type=_EMPTY, - output_type=_CONTEXTIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListContexts', - full_name='context.ContextService.ListContexts', - index=1, - containing_service=None, - input_type=_EMPTY, - output_type=_CONTEXTLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetContext', - full_name='context.ContextService.GetContext', - index=2, - containing_service=None, - input_type=_CONTEXTID, - output_type=_CONTEXT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetContext', - full_name='context.ContextService.SetContext', - index=3, - containing_service=None, - input_type=_CONTEXT, - output_type=_CONTEXTID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveContext', - full_name='context.ContextService.RemoveContext', - index=4, - containing_service=None, - input_type=_CONTEXTID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetContextEvents', - full_name='context.ContextService.GetContextEvents', - index=5, - containing_service=None, - input_type=_EMPTY, - output_type=_CONTEXTEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListTopologyIds', - full_name='context.ContextService.ListTopologyIds', - index=6, - containing_service=None, - input_type=_CONTEXTID, - output_type=_TOPOLOGYIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListTopologies', - full_name='context.ContextService.ListTopologies', - index=7, - containing_service=None, - input_type=_CONTEXTID, - output_type=_TOPOLOGYLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetTopology', - full_name='context.ContextService.GetTopology', - index=8, - containing_service=None, - input_type=_TOPOLOGYID, - output_type=_TOPOLOGY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetTopology', - full_name='context.ContextService.SetTopology', - index=9, - containing_service=None, - input_type=_TOPOLOGY, - output_type=_TOPOLOGYID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveTopology', - full_name='context.ContextService.RemoveTopology', - index=10, - containing_service=None, - input_type=_TOPOLOGYID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetTopologyEvents', - full_name='context.ContextService.GetTopologyEvents', - index=11, - containing_service=None, - input_type=_EMPTY, - output_type=_TOPOLOGYEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListDeviceIds', - full_name='context.ContextService.ListDeviceIds', - index=12, - containing_service=None, - input_type=_EMPTY, - output_type=_DEVICEIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListDevices', - full_name='context.ContextService.ListDevices', - index=13, - containing_service=None, - input_type=_EMPTY, - output_type=_DEVICELIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetDevice', - full_name='context.ContextService.GetDevice', - index=14, - containing_service=None, - input_type=_DEVICEID, - output_type=_DEVICE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetDevice', - full_name='context.ContextService.SetDevice', - index=15, - containing_service=None, - input_type=_DEVICE, - output_type=_DEVICEID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveDevice', - full_name='context.ContextService.RemoveDevice', - index=16, - containing_service=None, - input_type=_DEVICEID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetDeviceEvents', - full_name='context.ContextService.GetDeviceEvents', - index=17, - containing_service=None, - input_type=_EMPTY, - output_type=_DEVICEEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListLinkIds', - full_name='context.ContextService.ListLinkIds', - index=18, - containing_service=None, - input_type=_EMPTY, - output_type=_LINKIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListLinks', - full_name='context.ContextService.ListLinks', - index=19, - containing_service=None, - input_type=_EMPTY, - output_type=_LINKLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetLink', - full_name='context.ContextService.GetLink', - index=20, - containing_service=None, - input_type=_LINKID, - output_type=_LINK, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetLink', - full_name='context.ContextService.SetLink', - index=21, - containing_service=None, - input_type=_LINK, - output_type=_LINKID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveLink', - full_name='context.ContextService.RemoveLink', - index=22, - containing_service=None, - input_type=_LINKID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetLinkEvents', - full_name='context.ContextService.GetLinkEvents', - index=23, - containing_service=None, - input_type=_EMPTY, - output_type=_LINKEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListServiceIds', - full_name='context.ContextService.ListServiceIds', - index=24, - containing_service=None, - input_type=_CONTEXTID, - output_type=_SERVICEIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListServices', - full_name='context.ContextService.ListServices', - index=25, - containing_service=None, - input_type=_CONTEXTID, - output_type=_SERVICELIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetService', - full_name='context.ContextService.GetService', - index=26, - containing_service=None, - input_type=_SERVICEID, - output_type=_SERVICE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetService', - full_name='context.ContextService.SetService', - index=27, - containing_service=None, - input_type=_SERVICE, - output_type=_SERVICEID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveService', - full_name='context.ContextService.RemoveService', - index=28, - containing_service=None, - input_type=_SERVICEID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetServiceEvents', - full_name='context.ContextService.GetServiceEvents', - index=29, - containing_service=None, - input_type=_EMPTY, - output_type=_SERVICEEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListSliceIds', - full_name='context.ContextService.ListSliceIds', - index=30, - containing_service=None, - input_type=_CONTEXTID, - output_type=_SLICEIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListSlices', - full_name='context.ContextService.ListSlices', - index=31, - containing_service=None, - input_type=_CONTEXTID, - output_type=_SLICELIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetSlice', - full_name='context.ContextService.GetSlice', - index=32, - containing_service=None, - input_type=_SLICEID, - output_type=_SLICE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetSlice', - full_name='context.ContextService.SetSlice', - index=33, - containing_service=None, - input_type=_SLICE, - output_type=_SLICEID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveSlice', - full_name='context.ContextService.RemoveSlice', - index=34, - containing_service=None, - input_type=_SLICEID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetSliceEvents', - full_name='context.ContextService.GetSliceEvents', - index=35, - containing_service=None, - input_type=_EMPTY, - output_type=_SLICEEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListConnectionIds', - full_name='context.ContextService.ListConnectionIds', - index=36, - containing_service=None, - input_type=_SERVICEID, - output_type=_CONNECTIONIDLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='ListConnections', - full_name='context.ContextService.ListConnections', - index=37, - containing_service=None, - input_type=_SERVICEID, - output_type=_CONNECTIONLIST, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetConnection', - full_name='context.ContextService.GetConnection', - index=38, - containing_service=None, - input_type=_CONNECTIONID, - output_type=_CONNECTION, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SetConnection', - full_name='context.ContextService.SetConnection', - index=39, - containing_service=None, - input_type=_CONNECTION, - output_type=_CONNECTIONID, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='RemoveConnection', - full_name='context.ContextService.RemoveConnection', - index=40, - containing_service=None, - input_type=_CONNECTIONID, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetConnectionEvents', - full_name='context.ContextService.GetConnectionEvents', - index=41, - containing_service=None, - input_type=_EMPTY, - output_type=_CONNECTIONEVENT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), -]) -_sym_db.RegisterServiceDescriptor(_CONTEXTSERVICE) - -DESCRIPTOR.services_by_name['ContextService'] = _CONTEXTSERVICE - -# @@protoc_insertion_point(module_scope) diff --git a/src/l3_centralizedattackdetector/proto/kpi_sample_types_pb2.py b/src/l3_centralizedattackdetector/proto/kpi_sample_types_pb2.py deleted file mode 100644 index ea7fd2f82757d4c3db02d7e2c7817e2787b0b490..0000000000000000000000000000000000000000 --- a/src/l3_centralizedattackdetector/proto/kpi_sample_types_pb2.py +++ /dev/null @@ -1,78 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: kpi_sample_types.proto -"""Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='kpi_sample_types.proto', - package='kpi_sample_types', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x16kpi_sample_types.proto\x12\x10kpi_sample_types*\xbe\x01\n\rKpiSampleType\x12\x19\n\x15KPISAMPLETYPE_UNKNOWN\x10\x00\x12%\n!KPISAMPLETYPE_PACKETS_TRANSMITTED\x10\x65\x12\"\n\x1eKPISAMPLETYPE_PACKETS_RECEIVED\x10\x66\x12$\n\x1fKPISAMPLETYPE_BYTES_TRANSMITTED\x10\xc9\x01\x12!\n\x1cKPISAMPLETYPE_BYTES_RECEIVED\x10\xca\x01\x62\x06proto3' -) - -_KPISAMPLETYPE = _descriptor.EnumDescriptor( - name='KpiSampleType', - full_name='kpi_sample_types.KpiSampleType', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='KPISAMPLETYPE_UNKNOWN', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='KPISAMPLETYPE_PACKETS_TRANSMITTED', index=1, number=101, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='KPISAMPLETYPE_PACKETS_RECEIVED', index=2, number=102, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='KPISAMPLETYPE_BYTES_TRANSMITTED', index=3, number=201, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='KPISAMPLETYPE_BYTES_RECEIVED', index=4, number=202, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=45, - serialized_end=235, -) -_sym_db.RegisterEnumDescriptor(_KPISAMPLETYPE) - -KpiSampleType = enum_type_wrapper.EnumTypeWrapper(_KPISAMPLETYPE) -KPISAMPLETYPE_UNKNOWN = 0 -KPISAMPLETYPE_PACKETS_TRANSMITTED = 101 -KPISAMPLETYPE_PACKETS_RECEIVED = 102 -KPISAMPLETYPE_BYTES_TRANSMITTED = 201 -KPISAMPLETYPE_BYTES_RECEIVED = 202 - - -DESCRIPTOR.enum_types_by_name['KpiSampleType'] = _KPISAMPLETYPE -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - - -# @@protoc_insertion_point(module_scope) diff --git a/src/l3_centralizedattackdetector/proto/l3_attackmitigator_pb2.py b/src/l3_centralizedattackdetector/proto/l3_attackmitigator_pb2.py deleted file mode 100644 index e148d0a2cfda7b7ea00b40218dcfe3dcb70f1f8f..0000000000000000000000000000000000000000 --- a/src/l3_centralizedattackdetector/proto/l3_attackmitigator_pb2.py +++ /dev/null @@ -1,178 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: l3_attackmitigator.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from . import context_pb2 as context__pb2 - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='l3_attackmitigator.proto', - package='', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x18l3_attackmitigator.proto\x1a\rcontext.proto\"\xd5\x01\n\x17L3AttackmitigatorOutput\x12\x12\n\nconfidence\x18\x01 \x01(\x02\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04ip_o\x18\x03 \x01(\t\x12\x10\n\x08tag_name\x18\x04 \x01(\t\x12\x0b\n\x03tag\x18\x05 \x01(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x01(\t\x12\x10\n\x08protocol\x18\x07 \x01(\t\x12\x0e\n\x06port_d\x18\x08 \x01(\t\x12\r\n\x05ml_id\x18\t \x01(\t\x12\x12\n\ntime_start\x18\n \x01(\x02\x12\x10\n\x08time_end\x18\x0b \x01(\x02\x32\x80\x01\n\x11L3Attackmitigator\x12\x38\n\nSendOutput\x12\x18.L3AttackmitigatorOutput\x1a\x0e.context.Empty\"\x00\x12\x31\n\rGetMitigation\x12\x0e.context.Empty\x1a\x0e.context.Empty\"\x00\x62\x06proto3' - , - dependencies=[context__pb2.DESCRIPTOR,]) - - - - -_L3ATTACKMITIGATOROUTPUT = _descriptor.Descriptor( - name='L3AttackmitigatorOutput', - full_name='L3AttackmitigatorOutput', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='confidence', full_name='L3AttackmitigatorOutput.confidence', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='timestamp', full_name='L3AttackmitigatorOutput.timestamp', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ip_o', full_name='L3AttackmitigatorOutput.ip_o', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tag_name', full_name='L3AttackmitigatorOutput.tag_name', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tag', full_name='L3AttackmitigatorOutput.tag', index=4, - number=5, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='flow_id', full_name='L3AttackmitigatorOutput.flow_id', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='protocol', full_name='L3AttackmitigatorOutput.protocol', index=6, - number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port_d', full_name='L3AttackmitigatorOutput.port_d', index=7, - number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ml_id', full_name='L3AttackmitigatorOutput.ml_id', index=8, - number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_start', full_name='L3AttackmitigatorOutput.time_start', index=9, - number=10, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_end', full_name='L3AttackmitigatorOutput.time_end', index=10, - number=11, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=44, - serialized_end=257, -) - -DESCRIPTOR.message_types_by_name['L3AttackmitigatorOutput'] = _L3ATTACKMITIGATOROUTPUT -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -L3AttackmitigatorOutput = _reflection.GeneratedProtocolMessageType('L3AttackmitigatorOutput', (_message.Message,), { - 'DESCRIPTOR' : _L3ATTACKMITIGATOROUTPUT, - '__module__' : 'l3_attackmitigator_pb2' - # @@protoc_insertion_point(class_scope:L3AttackmitigatorOutput) - }) -_sym_db.RegisterMessage(L3AttackmitigatorOutput) - - - -_L3ATTACKMITIGATOR = _descriptor.ServiceDescriptor( - name='L3Attackmitigator', - full_name='L3Attackmitigator', - file=DESCRIPTOR, - index=0, - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_start=260, - serialized_end=388, - methods=[ - _descriptor.MethodDescriptor( - name='SendOutput', - full_name='L3Attackmitigator.SendOutput', - index=0, - containing_service=None, - input_type=_L3ATTACKMITIGATOROUTPUT, - output_type=context__pb2._EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetMitigation', - full_name='L3Attackmitigator.GetMitigation', - index=1, - containing_service=None, - input_type=context__pb2._EMPTY, - output_type=context__pb2._EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), -]) -_sym_db.RegisterServiceDescriptor(_L3ATTACKMITIGATOR) - -DESCRIPTOR.services_by_name['L3Attackmitigator'] = _L3ATTACKMITIGATOR - -# @@protoc_insertion_point(module_scope) diff --git a/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2.py b/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2.py deleted file mode 100644 index 517fdb84b06c2c15b62a5616f33887ba337abf18..0000000000000000000000000000000000000000 --- a/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2.py +++ /dev/null @@ -1,361 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: l3_centralizedattackdetector.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='l3_centralizedattackdetector.proto', - package='', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\"l3_centralizedattackdetector.proto\"\xcb\x03\n\"L3CentralizedattackdetectorMetrics\x12 \n\x18n_packets_server_seconds\x18\x01 \x01(\x02\x12 \n\x18n_packets_client_seconds\x18\x02 \x01(\x02\x12\x1d\n\x15n_bits_server_seconds\x18\x03 \x01(\x02\x12\x1d\n\x15n_bits_client_seconds\x18\x04 \x01(\x02\x12&\n\x1en_bits_server_n_packets_server\x18\x05 \x01(\x02\x12&\n\x1en_bits_client_n_packets_client\x18\x06 \x01(\x02\x12)\n!n_packets_server_n_packets_client\x18\x07 \x01(\x02\x12#\n\x1bn_bits_server_n_bits_client\x18\x08 \x01(\x02\x12\x0c\n\x04ip_o\x18\t \x01(\t\x12\x0e\n\x06port_o\x18\n \x01(\t\x12\x0c\n\x04ip_d\x18\x0b \x01(\t\x12\x0e\n\x06port_d\x18\x0c \x01(\t\x12\x0f\n\x07\x66low_id\x18\r \x01(\t\x12\x10\n\x08protocol\x18\x0e \x01(\t\x12\x12\n\ntime_start\x18\x0f \x01(\x02\x12\x10\n\x08time_end\x18\x10 \x01(\x02\"\x18\n\x05\x45mpty\x12\x0f\n\x07message\x18\x01 \x01(\t\"\xe4\x01\n&L3CentralizedattackdetectorModelOutput\x12\x12\n\nconfidence\x18\x01 \x01(\x02\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04ip_o\x18\x03 \x01(\t\x12\x10\n\x08tag_name\x18\x04 \x01(\t\x12\x0b\n\x03tag\x18\x05 \x01(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x01(\t\x12\x10\n\x08protocol\x18\x07 \x01(\t\x12\x0e\n\x06port_d\x18\x08 \x01(\t\x12\r\n\x05ml_id\x18\t \x01(\t\x12\x12\n\ntime_start\x18\n \x01(\x02\x12\x10\n\x08time_end\x18\x0b \x01(\x02\x32\x99\x01\n\x1bL3Centralizedattackdetector\x12:\n\tSendInput\x12#.L3CentralizedattackdetectorMetrics\x1a\x06.Empty\"\x00\x12>\n\tGetOutput\x12\x06.Empty\x1a\'.L3CentralizedattackdetectorModelOutput\"\x00\x62\x06proto3' -) - - - - -_L3CENTRALIZEDATTACKDETECTORMETRICS = _descriptor.Descriptor( - name='L3CentralizedattackdetectorMetrics', - full_name='L3CentralizedattackdetectorMetrics', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='n_packets_server_seconds', full_name='L3CentralizedattackdetectorMetrics.n_packets_server_seconds', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_packets_client_seconds', full_name='L3CentralizedattackdetectorMetrics.n_packets_client_seconds', index=1, - number=2, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_bits_server_seconds', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_seconds', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_bits_client_seconds', full_name='L3CentralizedattackdetectorMetrics.n_bits_client_seconds', index=3, - number=4, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_bits_server_n_packets_server', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_n_packets_server', index=4, - number=5, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_bits_client_n_packets_client', full_name='L3CentralizedattackdetectorMetrics.n_bits_client_n_packets_client', index=5, - number=6, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_packets_server_n_packets_client', full_name='L3CentralizedattackdetectorMetrics.n_packets_server_n_packets_client', index=6, - number=7, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_bits_server_n_bits_client', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_n_bits_client', index=7, - number=8, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ip_o', full_name='L3CentralizedattackdetectorMetrics.ip_o', index=8, - number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port_o', full_name='L3CentralizedattackdetectorMetrics.port_o', index=9, - number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ip_d', full_name='L3CentralizedattackdetectorMetrics.ip_d', index=10, - number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port_d', full_name='L3CentralizedattackdetectorMetrics.port_d', index=11, - number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='flow_id', full_name='L3CentralizedattackdetectorMetrics.flow_id', index=12, - number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='protocol', full_name='L3CentralizedattackdetectorMetrics.protocol', index=13, - number=14, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_start', full_name='L3CentralizedattackdetectorMetrics.time_start', index=14, - number=15, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_end', full_name='L3CentralizedattackdetectorMetrics.time_end', index=15, - number=16, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=39, - serialized_end=498, -) - - -_EMPTY = _descriptor.Descriptor( - name='Empty', - full_name='Empty', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='message', full_name='Empty.message', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=500, - serialized_end=524, -) - - -_L3CENTRALIZEDATTACKDETECTORMODELOUTPUT = _descriptor.Descriptor( - name='L3CentralizedattackdetectorModelOutput', - full_name='L3CentralizedattackdetectorModelOutput', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='confidence', full_name='L3CentralizedattackdetectorModelOutput.confidence', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='timestamp', full_name='L3CentralizedattackdetectorModelOutput.timestamp', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ip_o', full_name='L3CentralizedattackdetectorModelOutput.ip_o', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tag_name', full_name='L3CentralizedattackdetectorModelOutput.tag_name', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tag', full_name='L3CentralizedattackdetectorModelOutput.tag', index=4, - number=5, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='flow_id', full_name='L3CentralizedattackdetectorModelOutput.flow_id', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='protocol', full_name='L3CentralizedattackdetectorModelOutput.protocol', index=6, - number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port_d', full_name='L3CentralizedattackdetectorModelOutput.port_d', index=7, - number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ml_id', full_name='L3CentralizedattackdetectorModelOutput.ml_id', index=8, - number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_start', full_name='L3CentralizedattackdetectorModelOutput.time_start', index=9, - number=10, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_end', full_name='L3CentralizedattackdetectorModelOutput.time_end', index=10, - number=11, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=527, - serialized_end=755, -) - -DESCRIPTOR.message_types_by_name['L3CentralizedattackdetectorMetrics'] = _L3CENTRALIZEDATTACKDETECTORMETRICS -DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY -DESCRIPTOR.message_types_by_name['L3CentralizedattackdetectorModelOutput'] = _L3CENTRALIZEDATTACKDETECTORMODELOUTPUT -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -L3CentralizedattackdetectorMetrics = _reflection.GeneratedProtocolMessageType('L3CentralizedattackdetectorMetrics', (_message.Message,), { - 'DESCRIPTOR' : _L3CENTRALIZEDATTACKDETECTORMETRICS, - '__module__' : 'l3_centralizedattackdetector_pb2' - # @@protoc_insertion_point(class_scope:L3CentralizedattackdetectorMetrics) - }) -_sym_db.RegisterMessage(L3CentralizedattackdetectorMetrics) - -Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), { - 'DESCRIPTOR' : _EMPTY, - '__module__' : 'l3_centralizedattackdetector_pb2' - # @@protoc_insertion_point(class_scope:Empty) - }) -_sym_db.RegisterMessage(Empty) - -L3CentralizedattackdetectorModelOutput = _reflection.GeneratedProtocolMessageType('L3CentralizedattackdetectorModelOutput', (_message.Message,), { - 'DESCRIPTOR' : _L3CENTRALIZEDATTACKDETECTORMODELOUTPUT, - '__module__' : 'l3_centralizedattackdetector_pb2' - # @@protoc_insertion_point(class_scope:L3CentralizedattackdetectorModelOutput) - }) -_sym_db.RegisterMessage(L3CentralizedattackdetectorModelOutput) - - - -_L3CENTRALIZEDATTACKDETECTOR = _descriptor.ServiceDescriptor( - name='L3Centralizedattackdetector', - full_name='L3Centralizedattackdetector', - file=DESCRIPTOR, - index=0, - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_start=758, - serialized_end=911, - methods=[ - _descriptor.MethodDescriptor( - name='SendInput', - full_name='L3Centralizedattackdetector.SendInput', - index=0, - containing_service=None, - input_type=_L3CENTRALIZEDATTACKDETECTORMETRICS, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetOutput', - full_name='L3Centralizedattackdetector.GetOutput', - index=1, - containing_service=None, - input_type=_EMPTY, - output_type=_L3CENTRALIZEDATTACKDETECTORMODELOUTPUT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), -]) -_sym_db.RegisterServiceDescriptor(_L3CENTRALIZEDATTACKDETECTOR) - -DESCRIPTOR.services_by_name['L3Centralizedattackdetector'] = _L3CENTRALIZEDATTACKDETECTOR - -# @@protoc_insertion_point(module_scope) diff --git a/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py b/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py deleted file mode 100644 index 29136b4da95c9fc2ad7d4827521b26e872186dcf..0000000000000000000000000000000000000000 --- a/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py +++ /dev/null @@ -1,101 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - -from . import l3_centralizedattackdetector_pb2 as l3__centralizedattackdetector__pb2 - - -class L3CentralizedattackdetectorStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.SendInput = channel.unary_unary( - '/L3Centralizedattackdetector/SendInput', - request_serializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.SerializeToString, - response_deserializer=l3__centralizedattackdetector__pb2.Empty.FromString, - ) - self.GetOutput = channel.unary_unary( - '/L3Centralizedattackdetector/GetOutput', - request_serializer=l3__centralizedattackdetector__pb2.Empty.SerializeToString, - response_deserializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.FromString, - ) - - -class L3CentralizedattackdetectorServicer(object): - """Missing associated documentation comment in .proto file.""" - - def SendInput(self, request, context): - """Sends a greeting - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetOutput(self, request, context): - """Sends another greeting - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_L3CentralizedattackdetectorServicer_to_server(servicer, server): - rpc_method_handlers = { - 'SendInput': grpc.unary_unary_rpc_method_handler( - servicer.SendInput, - request_deserializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.FromString, - response_serializer=l3__centralizedattackdetector__pb2.Empty.SerializeToString, - ), - 'GetOutput': grpc.unary_unary_rpc_method_handler( - servicer.GetOutput, - request_deserializer=l3__centralizedattackdetector__pb2.Empty.FromString, - response_serializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'L3Centralizedattackdetector', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class L3Centralizedattackdetector(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def SendInput(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/L3Centralizedattackdetector/SendInput', - l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.SerializeToString, - l3__centralizedattackdetector__pb2.Empty.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def GetOutput(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/L3Centralizedattackdetector/GetOutput', - l3__centralizedattackdetector__pb2.Empty.SerializeToString, - l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/src/l3_centralizedattackdetector/requirements.in b/src/l3_centralizedattackdetector/requirements.in index e14d501b5a23d29e4950a56f28ee08fc54568d4d..9a1a05518bbe63bba70192fcb19e71c68d143246 100644 --- a/src/l3_centralizedattackdetector/requirements.in +++ b/src/l3_centralizedattackdetector/requirements.in @@ -1,10 +1,3 @@ -grpcio-health-checking -grpcio -grpcio-tools -prometheus-client -pytest -pytest-benchmark -numpy -scikit-learn -onnxruntime -coverage \ No newline at end of file +numpy==1.23.* +scikit-learn==1.12.* +onnxruntime==1.1.* diff --git a/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorService.py b/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorService.py index 0eb101f0e36fc59e5c6e8b1346609693259e0ccf..bad8cee7eadc26ceaf4dddd8a8452b3b8636e1d9 100644 --- a/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorService.py +++ b/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorService.py @@ -18,7 +18,7 @@ from concurrent import futures from grpc_health.v1.health import HealthServicer, OVERALL_HEALTH from grpc_health.v1.health_pb2 import HealthCheckResponse from grpc_health.v1.health_pb2_grpc import add_HealthServicer_to_server -from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2_grpc import ( +from common.proto.l3_centralizedattackdetector_pb2_grpc import ( add_L3CentralizedattackdetectorServicer_to_server, ) from l3_centralizedattackdetector.service.l3_centralizedattackdetectorServiceServicerImpl import ( diff --git a/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py b/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py index 18006f5a60de4c6f5596d03e3b9482dc4040014d..ead32d248bf4f22ecab0ce9de4ae364aa4925995 100644 --- a/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py +++ b/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py @@ -19,17 +19,17 @@ import grpc import numpy as np import onnxruntime as rt import logging -from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2 import ( +from common.proto.l3_centralizedattackdetector_pb2 import ( Empty, ) -from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2_grpc import ( +from common.proto.l3_centralizedattackdetector_pb2_grpc import ( L3CentralizedattackdetectorServicer, ) -from l3_centralizedattackdetector.proto.l3_attackmitigator_pb2 import ( +from common.proto.l3_attackmitigator_pb2 import ( Output, ) -from l3_centralizedattackdetector.proto.l3_attackmitigator_pb2_grpc import ( +from common.proto.l3_attackmitigator_pb2_grpc import ( L3AttackmitigatorStub, ) diff --git a/src/l3_centralizedattackdetector/tests/test_unitary.py b/src/l3_centralizedattackdetector/tests/test_unitary.py index c63975cc896373f4d33a7dc8dc4c6d15692c8fe6..a939b9efa11c9ceeb96ccb6d04c9ec929ab55cda 100644 --- a/src/l3_centralizedattackdetector/tests/test_unitary.py +++ b/src/l3_centralizedattackdetector/tests/test_unitary.py @@ -17,7 +17,7 @@ import pytest from l3_centralizedattackdetector.Config import GRPC_SERVICE_PORT, GRPC_MAX_WORKERS, GRPC_GRACE_PERIOD from l3_centralizedattackdetector.client.l3_centralizedattackdetectorClient import l3_centralizedattackdetectorClient from l3_centralizedattackdetector.service.l3_centralizedattackdetectorService import l3_centralizedattackdetectorService -from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2 import ( +from common.proto.l3_centralizedattackdetector_pb2 import ( ModelInput, ) diff --git a/src/l3_distributedattackdetector/.gitlab-ci.yml b/src/l3_distributedattackdetector/.gitlab-ci.yml index 7ced7a62c19c717e2c4091f08c73579a79ad383b..c373d223715f77a833fdb3ea1c090e61f2e2c303 100644 --- a/src/l3_distributedattackdetector/.gitlab-ci.yml +++ b/src/l3_distributedattackdetector/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag, and push the Docker images to the GitLab Docker registry +# Build, tag, and push the Docker image to the GitLab Docker registry build l3_distributedattackdetector: variables: IMAGE_NAME: 'l3_distributedattackdetector' # name of the microservice @@ -21,22 +21,24 @@ build l3_distributedattackdetector: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile ./src/ + - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" after_script: - docker images --filter="dangling=true" --quiet | xargs -r docker rmi rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - changes: + - src/common/**/*.py + - proto/*.proto - src/$IMAGE_NAME/**/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py - manifests/${IMAGE_NAME}service.yaml - .gitlab-ci.yml -# Pull, execute, and run unitary tests for the Docker image from the GitLab registry +# Apply unit test to the component unit test l3_distributedattackdetector: variables: IMAGE_NAME: 'l3_distributedattackdetector' # name of the microservice @@ -46,7 +48,7 @@ unit test l3_distributedattackdetector: - build l3_distributedattackdetector before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi + - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" @@ -62,8 +64,10 @@ unit test l3_distributedattackdetector: - docker network rm teraflowbridge rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - changes: + - src/common/**/*.py + - proto/*.proto - src/$IMAGE_NAME/**/*.{py,in,yml} - src/$IMAGE_NAME/Dockerfile - src/$IMAGE_NAME/tests/*.py diff --git a/src/l3_distributedattackdetector/Dockerfile b/src/l3_distributedattackdetector/Dockerfile index b0f1714e80055a328e90f070e9f957f8ec99708b..4bdbcf03cebc6f89603cde6d8ea41e28d6bd157c 100644 --- a/src/l3_distributedattackdetector/Dockerfile +++ b/src/l3_distributedattackdetector/Dockerfile @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM python:3-slim +FROM python:3.9-slim # Install dependencies RUN apt-get --yes --quiet --quiet update && \ @@ -28,23 +28,42 @@ RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ chmod +x /bin/grpc_health_probe # Get generic Python packages -RUN python3 -m pip install --upgrade pip setuptools wheel pip-tools +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools -# Set working directory +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt -# Create module sub-folders -RUN mkdir -p /var/teraflow/l3_distributedattackdetector +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; -# Get Python packages per module -COPY l3_distributedattackdetector/requirements.in l3_distributedattackdetector/requirements.in -RUN pip-compile --output-file=l3_distributedattackdetector/requirements.txt l3_distributedattackdetector/requirements.in -RUN python3 -m pip install -r l3_distributedattackdetector/requirements.in +# Create component sub-folders, get specific Python packages +RUN mkdir -p /var/teraflow/l3_distributedattackdetector +WORKDIR /var/teraflow/l3_distributedattackdetector +COPY src/l3_distributedattackdetector/requirements.in requirements.in +RUN pip-compile --quiet --output-file=requirements.txt requirements.in +RUN python3 -m pip install -r requirements.txt -# Add files into working directory -COPY common/. common -COPY l3_distributedattackdetector/. l3_distributedattackdetector +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/l3_distributedattackdetector/. l3_distributedattackdetector -# Start service service +# Start the service RUN nohup bash -c "service/tstat -l -i lo -s service/piped &" && sleep 5 ENTRYPOINT ["python", "-m", "l3_distributedattackdetector.service"] diff --git a/src/l3_distributedattackdetector/genproto.sh b/src/l3_distributedattackdetector/genproto.sh deleted file mode 100755 index c1f54c0dc1cdb6ef2681504ec0783f5479084fa8..0000000000000000000000000000000000000000 --- a/src/l3_distributedattackdetector/genproto.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -eu -# -# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -# -# 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. - -# Make folder containing the script the root folder for its execution -cd $(dirname $0) - -rm -rf proto/*.py -rm -rf proto/__pycache__ -tee proto/__init__.py << EOF > /dev/null -# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -# -# 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. - -EOF - -python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto l3_centralizedattackdetector.proto - -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_centralizedattackdetector_pb2.py -sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_centralizedattackdetector_pb2_grpc.py diff --git a/src/l3_distributedattackdetector/proto/__init__.py b/src/l3_distributedattackdetector/proto/__init__.py deleted file mode 100644 index 70a33251242c51f49140e596b8208a19dd5245f7..0000000000000000000000000000000000000000 --- a/src/l3_distributedattackdetector/proto/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) -# -# 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. - diff --git a/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2.py b/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2.py deleted file mode 100644 index 517fdb84b06c2c15b62a5616f33887ba337abf18..0000000000000000000000000000000000000000 --- a/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2.py +++ /dev/null @@ -1,361 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: l3_centralizedattackdetector.proto -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='l3_centralizedattackdetector.proto', - package='', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\"l3_centralizedattackdetector.proto\"\xcb\x03\n\"L3CentralizedattackdetectorMetrics\x12 \n\x18n_packets_server_seconds\x18\x01 \x01(\x02\x12 \n\x18n_packets_client_seconds\x18\x02 \x01(\x02\x12\x1d\n\x15n_bits_server_seconds\x18\x03 \x01(\x02\x12\x1d\n\x15n_bits_client_seconds\x18\x04 \x01(\x02\x12&\n\x1en_bits_server_n_packets_server\x18\x05 \x01(\x02\x12&\n\x1en_bits_client_n_packets_client\x18\x06 \x01(\x02\x12)\n!n_packets_server_n_packets_client\x18\x07 \x01(\x02\x12#\n\x1bn_bits_server_n_bits_client\x18\x08 \x01(\x02\x12\x0c\n\x04ip_o\x18\t \x01(\t\x12\x0e\n\x06port_o\x18\n \x01(\t\x12\x0c\n\x04ip_d\x18\x0b \x01(\t\x12\x0e\n\x06port_d\x18\x0c \x01(\t\x12\x0f\n\x07\x66low_id\x18\r \x01(\t\x12\x10\n\x08protocol\x18\x0e \x01(\t\x12\x12\n\ntime_start\x18\x0f \x01(\x02\x12\x10\n\x08time_end\x18\x10 \x01(\x02\"\x18\n\x05\x45mpty\x12\x0f\n\x07message\x18\x01 \x01(\t\"\xe4\x01\n&L3CentralizedattackdetectorModelOutput\x12\x12\n\nconfidence\x18\x01 \x01(\x02\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04ip_o\x18\x03 \x01(\t\x12\x10\n\x08tag_name\x18\x04 \x01(\t\x12\x0b\n\x03tag\x18\x05 \x01(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x01(\t\x12\x10\n\x08protocol\x18\x07 \x01(\t\x12\x0e\n\x06port_d\x18\x08 \x01(\t\x12\r\n\x05ml_id\x18\t \x01(\t\x12\x12\n\ntime_start\x18\n \x01(\x02\x12\x10\n\x08time_end\x18\x0b \x01(\x02\x32\x99\x01\n\x1bL3Centralizedattackdetector\x12:\n\tSendInput\x12#.L3CentralizedattackdetectorMetrics\x1a\x06.Empty\"\x00\x12>\n\tGetOutput\x12\x06.Empty\x1a\'.L3CentralizedattackdetectorModelOutput\"\x00\x62\x06proto3' -) - - - - -_L3CENTRALIZEDATTACKDETECTORMETRICS = _descriptor.Descriptor( - name='L3CentralizedattackdetectorMetrics', - full_name='L3CentralizedattackdetectorMetrics', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='n_packets_server_seconds', full_name='L3CentralizedattackdetectorMetrics.n_packets_server_seconds', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_packets_client_seconds', full_name='L3CentralizedattackdetectorMetrics.n_packets_client_seconds', index=1, - number=2, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_bits_server_seconds', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_seconds', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_bits_client_seconds', full_name='L3CentralizedattackdetectorMetrics.n_bits_client_seconds', index=3, - number=4, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_bits_server_n_packets_server', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_n_packets_server', index=4, - number=5, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_bits_client_n_packets_client', full_name='L3CentralizedattackdetectorMetrics.n_bits_client_n_packets_client', index=5, - number=6, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_packets_server_n_packets_client', full_name='L3CentralizedattackdetectorMetrics.n_packets_server_n_packets_client', index=6, - number=7, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='n_bits_server_n_bits_client', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_n_bits_client', index=7, - number=8, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ip_o', full_name='L3CentralizedattackdetectorMetrics.ip_o', index=8, - number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port_o', full_name='L3CentralizedattackdetectorMetrics.port_o', index=9, - number=10, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ip_d', full_name='L3CentralizedattackdetectorMetrics.ip_d', index=10, - number=11, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port_d', full_name='L3CentralizedattackdetectorMetrics.port_d', index=11, - number=12, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='flow_id', full_name='L3CentralizedattackdetectorMetrics.flow_id', index=12, - number=13, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='protocol', full_name='L3CentralizedattackdetectorMetrics.protocol', index=13, - number=14, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_start', full_name='L3CentralizedattackdetectorMetrics.time_start', index=14, - number=15, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_end', full_name='L3CentralizedattackdetectorMetrics.time_end', index=15, - number=16, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=39, - serialized_end=498, -) - - -_EMPTY = _descriptor.Descriptor( - name='Empty', - full_name='Empty', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='message', full_name='Empty.message', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=500, - serialized_end=524, -) - - -_L3CENTRALIZEDATTACKDETECTORMODELOUTPUT = _descriptor.Descriptor( - name='L3CentralizedattackdetectorModelOutput', - full_name='L3CentralizedattackdetectorModelOutput', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='confidence', full_name='L3CentralizedattackdetectorModelOutput.confidence', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='timestamp', full_name='L3CentralizedattackdetectorModelOutput.timestamp', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ip_o', full_name='L3CentralizedattackdetectorModelOutput.ip_o', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tag_name', full_name='L3CentralizedattackdetectorModelOutput.tag_name', index=3, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='tag', full_name='L3CentralizedattackdetectorModelOutput.tag', index=4, - number=5, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='flow_id', full_name='L3CentralizedattackdetectorModelOutput.flow_id', index=5, - number=6, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='protocol', full_name='L3CentralizedattackdetectorModelOutput.protocol', index=6, - number=7, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='port_d', full_name='L3CentralizedattackdetectorModelOutput.port_d', index=7, - number=8, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ml_id', full_name='L3CentralizedattackdetectorModelOutput.ml_id', index=8, - number=9, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_start', full_name='L3CentralizedattackdetectorModelOutput.time_start', index=9, - number=10, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='time_end', full_name='L3CentralizedattackdetectorModelOutput.time_end', index=10, - number=11, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=527, - serialized_end=755, -) - -DESCRIPTOR.message_types_by_name['L3CentralizedattackdetectorMetrics'] = _L3CENTRALIZEDATTACKDETECTORMETRICS -DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY -DESCRIPTOR.message_types_by_name['L3CentralizedattackdetectorModelOutput'] = _L3CENTRALIZEDATTACKDETECTORMODELOUTPUT -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -L3CentralizedattackdetectorMetrics = _reflection.GeneratedProtocolMessageType('L3CentralizedattackdetectorMetrics', (_message.Message,), { - 'DESCRIPTOR' : _L3CENTRALIZEDATTACKDETECTORMETRICS, - '__module__' : 'l3_centralizedattackdetector_pb2' - # @@protoc_insertion_point(class_scope:L3CentralizedattackdetectorMetrics) - }) -_sym_db.RegisterMessage(L3CentralizedattackdetectorMetrics) - -Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), { - 'DESCRIPTOR' : _EMPTY, - '__module__' : 'l3_centralizedattackdetector_pb2' - # @@protoc_insertion_point(class_scope:Empty) - }) -_sym_db.RegisterMessage(Empty) - -L3CentralizedattackdetectorModelOutput = _reflection.GeneratedProtocolMessageType('L3CentralizedattackdetectorModelOutput', (_message.Message,), { - 'DESCRIPTOR' : _L3CENTRALIZEDATTACKDETECTORMODELOUTPUT, - '__module__' : 'l3_centralizedattackdetector_pb2' - # @@protoc_insertion_point(class_scope:L3CentralizedattackdetectorModelOutput) - }) -_sym_db.RegisterMessage(L3CentralizedattackdetectorModelOutput) - - - -_L3CENTRALIZEDATTACKDETECTOR = _descriptor.ServiceDescriptor( - name='L3Centralizedattackdetector', - full_name='L3Centralizedattackdetector', - file=DESCRIPTOR, - index=0, - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_start=758, - serialized_end=911, - methods=[ - _descriptor.MethodDescriptor( - name='SendInput', - full_name='L3Centralizedattackdetector.SendInput', - index=0, - containing_service=None, - input_type=_L3CENTRALIZEDATTACKDETECTORMETRICS, - output_type=_EMPTY, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetOutput', - full_name='L3Centralizedattackdetector.GetOutput', - index=1, - containing_service=None, - input_type=_EMPTY, - output_type=_L3CENTRALIZEDATTACKDETECTORMODELOUTPUT, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), -]) -_sym_db.RegisterServiceDescriptor(_L3CENTRALIZEDATTACKDETECTOR) - -DESCRIPTOR.services_by_name['L3Centralizedattackdetector'] = _L3CENTRALIZEDATTACKDETECTOR - -# @@protoc_insertion_point(module_scope) diff --git a/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py b/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py deleted file mode 100644 index 29136b4da95c9fc2ad7d4827521b26e872186dcf..0000000000000000000000000000000000000000 --- a/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py +++ /dev/null @@ -1,101 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc - -from . import l3_centralizedattackdetector_pb2 as l3__centralizedattackdetector__pb2 - - -class L3CentralizedattackdetectorStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.SendInput = channel.unary_unary( - '/L3Centralizedattackdetector/SendInput', - request_serializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.SerializeToString, - response_deserializer=l3__centralizedattackdetector__pb2.Empty.FromString, - ) - self.GetOutput = channel.unary_unary( - '/L3Centralizedattackdetector/GetOutput', - request_serializer=l3__centralizedattackdetector__pb2.Empty.SerializeToString, - response_deserializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.FromString, - ) - - -class L3CentralizedattackdetectorServicer(object): - """Missing associated documentation comment in .proto file.""" - - def SendInput(self, request, context): - """Sends a greeting - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetOutput(self, request, context): - """Sends another greeting - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_L3CentralizedattackdetectorServicer_to_server(servicer, server): - rpc_method_handlers = { - 'SendInput': grpc.unary_unary_rpc_method_handler( - servicer.SendInput, - request_deserializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.FromString, - response_serializer=l3__centralizedattackdetector__pb2.Empty.SerializeToString, - ), - 'GetOutput': grpc.unary_unary_rpc_method_handler( - servicer.GetOutput, - request_deserializer=l3__centralizedattackdetector__pb2.Empty.FromString, - response_serializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'L3Centralizedattackdetector', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class L3Centralizedattackdetector(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def SendInput(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/L3Centralizedattackdetector/SendInput', - l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.SerializeToString, - l3__centralizedattackdetector__pb2.Empty.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def GetOutput(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/L3Centralizedattackdetector/GetOutput', - l3__centralizedattackdetector__pb2.Empty.SerializeToString, - l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/src/l3_distributedattackdetector/requirements.in b/src/l3_distributedattackdetector/requirements.in index ede9c839d93cc377e93c525bc1e85243576faa00..772ae923931c8b09917e75a600ce2b5a0d2d4ecf 100644 --- a/src/l3_distributedattackdetector/requirements.in +++ b/src/l3_distributedattackdetector/requirements.in @@ -1,9 +1 @@ -grpcio-health-checking -grpcio -grpcio-tools -prometheus-client -pytest -pytest-benchmark -numpy -scikit-learn -coverage \ No newline at end of file +# no extra dependency diff --git a/src/l3_distributedattackdetector/service/__main__.py b/src/l3_distributedattackdetector/service/__main__.py index 29f943ce745bc1355ac063fea83a63b42e19f36b..1ce6831f22e63b482031f919f040ad1182c4e2d4 100644 --- a/src/l3_distributedattackdetector/service/__main__.py +++ b/src/l3_distributedattackdetector/service/__main__.py @@ -17,10 +17,10 @@ import sys import os import time import grpc -from l3_distributedattackdetector.proto.l3_centralizedattackdetector_pb2_grpc import ( +from common.proto.l3_centralizedattackdetector_pb2_grpc import ( L3CentralizedattackdetectorStub, ) -from l3_distributedattackdetector.proto.l3_centralizedattackdetector_pb2 import ( +from common.proto.l3_centralizedattackdetector_pb2 import ( ModelInput, ) diff --git a/src/monitoring/.gitlab-ci.yml b/src/monitoring/.gitlab-ci.yml index 31789a0f1ea7914e70a155ac3fa45230679b8317..fac3f967bbf531ef5cc9b67b2a1afe47fb9990d5 100644 --- a/src/monitoring/.gitlab-ci.yml +++ b/src/monitoring/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag and push the Docker image to the GitLab registry +# Build, tag, and push the Docker image to the GitLab Docker registry build monitoring: variables: IMAGE_NAME: 'monitoring' # name of the microservice diff --git a/src/pathcomp/.gitlab-ci.yml b/src/pathcomp/.gitlab-ci.yml index 671e1dc035bf8d5ebe497dfef7db0f995eaa5f84..fd52da6fb7bf8dc556b92e4db080c9927bb58a5d 100644 --- a/src/pathcomp/.gitlab-ci.yml +++ b/src/pathcomp/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag and push the Docker image to the GitLab registry +# Build, tag, and push the Docker image to the GitLab Docker registry build pathcomp: variables: IMAGE_NAME: 'pathcomp' # name of the microservice diff --git a/src/policy/pom.xml b/src/policy/pom.xml index 003c3d48bc6edc8c32f0ad02009dc9eb6577f4cc..531cc7ecf96424b3180c1f4471ae0d002de85acc 100644 --- a/src/policy/pom.xml +++ b/src/policy/pom.xml @@ -302,6 +302,7 @@ monitoring/* service/* kpi_sample_types/* + acl/* diff --git a/src/policy/src/main/java/eu/teraflow/policy/Serializer.java b/src/policy/src/main/java/eu/teraflow/policy/Serializer.java new file mode 100644 index 0000000000000000000000000000000000000000..9970852124fb0a5334087ef703a6b0fb5b3ef9a8 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/Serializer.java @@ -0,0 +1,2140 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy; + +import acl.Acl; +import context.ContextOuterClass; +import context.ContextOuterClass.ConfigRule_ACL; +import context.ContextOuterClass.ConfigRule_Custom; +import context.ContextOuterClass.ContextId; +import context.ContextOuterClass.DeviceId; +import context.ContextOuterClass.DeviceOperationalStatusEnum; +import context.ContextOuterClass.Uuid; +import eu.teraflow.policy.acl.AclAction; +import eu.teraflow.policy.acl.AclEntry; +import eu.teraflow.policy.acl.AclForwardActionEnum; +import eu.teraflow.policy.acl.AclLogActionEnum; +import eu.teraflow.policy.acl.AclMatch; +import eu.teraflow.policy.acl.AclRuleSet; +import eu.teraflow.policy.acl.AclRuleTypeEnum; +import eu.teraflow.policy.context.model.ConfigActionEnum; +import eu.teraflow.policy.context.model.ConfigRule; +import eu.teraflow.policy.context.model.ConfigRuleAcl; +import eu.teraflow.policy.context.model.ConfigRuleCustom; +import eu.teraflow.policy.context.model.ConfigRuleTypeAcl; +import eu.teraflow.policy.context.model.ConfigRuleTypeCustom; +import eu.teraflow.policy.context.model.Constraint; +import eu.teraflow.policy.context.model.ConstraintCustom; +import eu.teraflow.policy.context.model.ConstraintEndPointLocation; +import eu.teraflow.policy.context.model.ConstraintSchedule; +import eu.teraflow.policy.context.model.ConstraintSlaAvailability; +import eu.teraflow.policy.context.model.ConstraintSlaCapacity; +import eu.teraflow.policy.context.model.ConstraintSlaIsolationLevel; +import eu.teraflow.policy.context.model.ConstraintSlaLatency; +import eu.teraflow.policy.context.model.ConstraintTypeCustom; +import eu.teraflow.policy.context.model.ConstraintTypeEndPointLocation; +import eu.teraflow.policy.context.model.ConstraintTypeSchedule; +import eu.teraflow.policy.context.model.ConstraintTypeSlaAvailability; +import eu.teraflow.policy.context.model.ConstraintTypeSlaCapacity; +import eu.teraflow.policy.context.model.ConstraintTypeSlaIsolationLevel; +import eu.teraflow.policy.context.model.ConstraintTypeSlaLatency; +import eu.teraflow.policy.context.model.Device; +import eu.teraflow.policy.context.model.DeviceConfig; +import eu.teraflow.policy.context.model.DeviceDriverEnum; +import eu.teraflow.policy.context.model.DeviceOperationalStatus; +import eu.teraflow.policy.context.model.EndPoint; +import eu.teraflow.policy.context.model.EndPointId; +import eu.teraflow.policy.context.model.Event; +import eu.teraflow.policy.context.model.EventTypeEnum; +import eu.teraflow.policy.context.model.GpsPosition; +import eu.teraflow.policy.context.model.IsolationLevelEnum; +import eu.teraflow.policy.context.model.Location; +import eu.teraflow.policy.context.model.LocationTypeGpsPosition; +import eu.teraflow.policy.context.model.LocationTypeRegion; +import eu.teraflow.policy.context.model.Service; +import eu.teraflow.policy.context.model.ServiceConfig; +import eu.teraflow.policy.context.model.ServiceId; +import eu.teraflow.policy.context.model.ServiceStatus; +import eu.teraflow.policy.context.model.ServiceStatusEnum; +import eu.teraflow.policy.context.model.ServiceTypeEnum; +import eu.teraflow.policy.context.model.SliceId; +import eu.teraflow.policy.context.model.TopologyId; +import eu.teraflow.policy.kpi_sample_types.model.KpiSampleType; +import eu.teraflow.policy.model.BooleanOperator; +import eu.teraflow.policy.model.NumericalOperator; +import eu.teraflow.policy.model.PolicyRuleAction; +import eu.teraflow.policy.model.PolicyRuleActionEnum; +import eu.teraflow.policy.model.PolicyRuleBasic; +import eu.teraflow.policy.model.PolicyRuleCondition; +import eu.teraflow.policy.model.PolicyRuleDevice; +import eu.teraflow.policy.model.PolicyRuleService; +import eu.teraflow.policy.model.PolicyRuleState; +import eu.teraflow.policy.model.RuleState; +import eu.teraflow.policy.monitoring.model.AlarmDescriptor; +import eu.teraflow.policy.monitoring.model.AlarmResponse; +import eu.teraflow.policy.monitoring.model.BooleanKpiValue; +import eu.teraflow.policy.monitoring.model.FloatKpiValue; +import eu.teraflow.policy.monitoring.model.IntegerKpiValue; +import eu.teraflow.policy.monitoring.model.Kpi; +import eu.teraflow.policy.monitoring.model.KpiDescriptor; +import eu.teraflow.policy.monitoring.model.KpiValue; +import eu.teraflow.policy.monitoring.model.KpiValueRange; +import eu.teraflow.policy.monitoring.model.StringKpiValue; +import eu.teraflow.policy.monitoring.model.SubsDescriptor; +import java.util.stream.Collectors; +import javax.inject.Singleton; +import kpi_sample_types.KpiSampleTypes; +import monitoring.Monitoring; +import monitoring.Monitoring.KpiId; +import policy.Policy; +import policy.Policy.PolicyRuleId; +import policy.PolicyAction; +import policy.PolicyCondition; + +@Singleton +public class Serializer { + + public DeviceId serializeDeviceId(String expectedDeviceId) { + final var builder = DeviceId.newBuilder(); + final var uuid = serializeUuid(expectedDeviceId); + + builder.setDeviceUuid(uuid); + + return builder.build(); + } + + public String deserialize(DeviceId deviceId) { + return deviceId.getDeviceUuid().getUuid(); + } + + public ContextId serializeContextId(String expectedContextId) { + final var builder = ContextId.newBuilder(); + final var uuid = serializeUuid(expectedContextId); + + builder.setContextUuid(uuid); + + return builder.build(); + } + + public String deserialize(ContextId contextId) { + return contextId.getContextUuid().getUuid(); + } + + public PolicyRuleId serializePolicyRuleId(String expectedPolicyRuleId) { + final var builder = PolicyRuleId.newBuilder(); + final var uuid = serializeUuid(expectedPolicyRuleId); + + builder.setUuid(uuid); + + return builder.build(); + } + + public String deserialize(PolicyRuleId policyRuleId) { + return policyRuleId.getUuid().getUuid(); + } + + public ContextOuterClass.TopologyId serialize(TopologyId topologyId) { + final var builder = ContextOuterClass.TopologyId.newBuilder(); + + final var topologyIdContextId = topologyId.getContextId(); + final var topologyIdId = topologyId.getId(); + + final var contextId = serializeContextId(topologyIdContextId); + final var topologyIdIdUuid = serializeUuid(topologyIdId); + + builder.setContextId(contextId); + builder.setTopologyUuid(topologyIdIdUuid); + + return builder.build(); + } + + public TopologyId deserialize(ContextOuterClass.TopologyId topologyId) { + final var topologyIdContextId = deserialize(topologyId.getContextId()); + final var topologyIdId = deserialize(topologyId.getTopologyUuid()); + + return new TopologyId(topologyIdContextId, topologyIdId); + } + + public ContextOuterClass.ConfigActionEnum serialize(ConfigActionEnum configActionEnum) { + switch (configActionEnum) { + case SET: + return ContextOuterClass.ConfigActionEnum.CONFIGACTION_SET; + case DELETE: + return ContextOuterClass.ConfigActionEnum.CONFIGACTION_DELETE; + case UNDEFINED: + return ContextOuterClass.ConfigActionEnum.CONFIGACTION_UNDEFINED; + default: + return ContextOuterClass.ConfigActionEnum.UNRECOGNIZED; + } + } + + public ConfigActionEnum deserialize( + ContextOuterClass.ConfigActionEnum serializedConfigActionEnum) { + switch (serializedConfigActionEnum) { + case CONFIGACTION_SET: + return ConfigActionEnum.SET; + case CONFIGACTION_DELETE: + return ConfigActionEnum.DELETE; + case CONFIGACTION_UNDEFINED: + case UNRECOGNIZED: + default: + return ConfigActionEnum.UNDEFINED; + } + } + + public Acl.AclRuleTypeEnum serialize(AclRuleTypeEnum aclRuleTypeEnum) { + switch (aclRuleTypeEnum) { + case IPV4: + return Acl.AclRuleTypeEnum.ACLRULETYPE_IPV4; + case IPV6: + return Acl.AclRuleTypeEnum.ACLRULETYPE_IPV6; + case L2: + return Acl.AclRuleTypeEnum.ACLRULETYPE_L2; + case MPLS: + return Acl.AclRuleTypeEnum.ACLRULETYPE_MPLS; + case MIXED: + return Acl.AclRuleTypeEnum.ACLRULETYPE_MIXED; + case UNDEFINED: + return Acl.AclRuleTypeEnum.ACLRULETYPE_UNDEFINED; + default: + return Acl.AclRuleTypeEnum.UNRECOGNIZED; + } + } + + public AclRuleTypeEnum deserialize(Acl.AclRuleTypeEnum serializedAclRuleTypeEnum) { + switch (serializedAclRuleTypeEnum) { + case ACLRULETYPE_IPV4: + return AclRuleTypeEnum.IPV4; + case ACLRULETYPE_IPV6: + return AclRuleTypeEnum.IPV6; + case ACLRULETYPE_L2: + return AclRuleTypeEnum.L2; + case ACLRULETYPE_MPLS: + return AclRuleTypeEnum.MPLS; + case ACLRULETYPE_MIXED: + return AclRuleTypeEnum.MIXED; + case UNRECOGNIZED: + default: + return AclRuleTypeEnum.UNDEFINED; + } + } + + public Acl.AclMatch serialize(AclMatch aclMatch) { + final var builder = Acl.AclMatch.newBuilder(); + + final var dscp = aclMatch.getDscp(); + final var protocol = aclMatch.getProtocol(); + final var srcAddress = aclMatch.getSrcAddress(); + final var dstAddress = aclMatch.getDstAddress(); + final var srcPort = aclMatch.getSrcPort(); + final var dstPort = aclMatch.getDstPort(); + final var startMplsLabel = aclMatch.getStartMplsLabel(); + final var endMplsLabel = aclMatch.getEndMplsLabel(); + + builder.setDscp(dscp); + builder.setProtocol(protocol); + builder.setSrcAddress(srcAddress); + builder.setDstAddress(dstAddress); + builder.setSrcPort(srcPort); + builder.setDstPort(dstPort); + builder.setStartMplsLabel(startMplsLabel); + builder.setEndMplsLabel(endMplsLabel); + + return builder.build(); + } + + public AclMatch deserialize(Acl.AclMatch serializedAclMatch) { + final var dscp = serializedAclMatch.getDscp(); + final var protocol = serializedAclMatch.getProtocol(); + final var srcAddress = serializedAclMatch.getSrcAddress(); + final var dstAddress = serializedAclMatch.getDstAddress(); + final var srcPort = serializedAclMatch.getSrcPort(); + final var dstPort = serializedAclMatch.getDstPort(); + final var startMplsLabel = serializedAclMatch.getStartMplsLabel(); + final var endMplsLabel = serializedAclMatch.getEndMplsLabel(); + + return new AclMatch( + dscp, protocol, srcAddress, dstAddress, srcPort, dstPort, startMplsLabel, endMplsLabel); + } + + public Acl.AclForwardActionEnum serialize(AclForwardActionEnum aclForwardActionEnum) { + switch (aclForwardActionEnum) { + case DROP: + return Acl.AclForwardActionEnum.ACLFORWARDINGACTION_DROP; + case ACCEPT: + return Acl.AclForwardActionEnum.ACLFORWARDINGACTION_ACCEPT; + case REJECT: + return Acl.AclForwardActionEnum.ACLFORWARDINGACTION_REJECT; + case UNDEFINED: + return Acl.AclForwardActionEnum.ACLFORWARDINGACTION_UNDEFINED; + default: + return Acl.AclForwardActionEnum.UNRECOGNIZED; + } + } + + public AclForwardActionEnum deserialize(Acl.AclForwardActionEnum serializedAclForwardActionEnum) { + switch (serializedAclForwardActionEnum) { + case ACLFORWARDINGACTION_DROP: + return AclForwardActionEnum.DROP; + case ACLFORWARDINGACTION_ACCEPT: + return AclForwardActionEnum.ACCEPT; + case ACLFORWARDINGACTION_REJECT: + return AclForwardActionEnum.REJECT; + case UNRECOGNIZED: + default: + return AclForwardActionEnum.UNDEFINED; + } + } + + public Acl.AclLogActionEnum serialize(AclLogActionEnum aclLogActionEnum) { + switch (aclLogActionEnum) { + case NO_LOG: + return Acl.AclLogActionEnum.ACLLOGACTION_NOLOG; + case SYSLOG: + return Acl.AclLogActionEnum.ACLLOGACTION_SYSLOG; + case UNDEFINED: + return Acl.AclLogActionEnum.ACLLOGACTION_UNDEFINED; + default: + return Acl.AclLogActionEnum.UNRECOGNIZED; + } + } + + public AclLogActionEnum deserialize(Acl.AclLogActionEnum serializedAclLogActionEnum) { + switch (serializedAclLogActionEnum) { + case ACLLOGACTION_NOLOG: + return AclLogActionEnum.NO_LOG; + case ACLLOGACTION_SYSLOG: + return AclLogActionEnum.SYSLOG; + case UNRECOGNIZED: + default: + return AclLogActionEnum.UNDEFINED; + } + } + + public Acl.AclAction serialize(AclAction aclAction) { + final var builder = Acl.AclAction.newBuilder(); + + final var aclForwardActionEnum = aclAction.getAclForwardActionEnum(); + final var aclLogActionEnum = aclAction.getAclLogActionEnum(); + + final var serializedAclForwardActionEnum = serialize(aclForwardActionEnum); + final var serializedAclLogActionEnum = serialize(aclLogActionEnum); + + builder.setForwardAction(serializedAclForwardActionEnum); + builder.setLogAction(serializedAclLogActionEnum); + + return builder.build(); + } + + public AclAction deserialize(Acl.AclAction serializedAclAction) { + final var serializedAclForwardActionEnum = serializedAclAction.getForwardAction(); + final var serializedAclLogActionEnum = serializedAclAction.getLogAction(); + + final var aclForwardActionEnum = deserialize(serializedAclForwardActionEnum); + final var aclLogActionEnum = deserialize(serializedAclLogActionEnum); + + return new AclAction(aclForwardActionEnum, aclLogActionEnum); + } + + public Acl.AclEntry serialize(AclEntry aclEntry) { + final var builder = Acl.AclEntry.newBuilder(); + + final var sequenceId = aclEntry.getSequenceId(); + final var description = aclEntry.getDescription(); + final var aclMatch = aclEntry.getMatch(); + final var aclAction = aclEntry.getAction(); + + final var serializedAclMatch = serialize(aclMatch); + final var serializedAclAction = serialize(aclAction); + + builder.setSequenceId(sequenceId); + builder.setDescription(description); + builder.setMatch(serializedAclMatch); + builder.setAction(serializedAclAction); + + return builder.build(); + } + + public AclEntry deserialize(Acl.AclEntry serializedAclEntry) { + final var sequenceId = serializedAclEntry.getSequenceId(); + final var description = serializedAclEntry.getDescription(); + final var serializedAclMatch = serializedAclEntry.getMatch(); + final var serializedAclAction = serializedAclEntry.getAction(); + + final var aclMatch = deserialize(serializedAclMatch); + final var aclAction = deserialize(serializedAclAction); + + return new AclEntry(sequenceId, description, aclMatch, aclAction); + } + + public Acl.AclRuleSet serialize(AclRuleSet aclRuleSet) { + final var builder = Acl.AclRuleSet.newBuilder(); + + final var name = aclRuleSet.getName(); + final var type = aclRuleSet.getType(); + final var description = aclRuleSet.getDescription(); + final var userId = aclRuleSet.getUserId(); + final var entries = aclRuleSet.getEntries(); + + final var serializedType = serialize(type); + final var serializedEntries = + entries.stream().map(this::serialize).collect(Collectors.toList()); + + builder.setName(name); + builder.setType(serializedType); + builder.setDescription(description); + builder.setUserId(userId); + builder.addAllEntries(serializedEntries); + + return builder.build(); + } + + public AclRuleSet deserialize(Acl.AclRuleSet serializedAclRuleSet) { + final var serializedName = serializedAclRuleSet.getName(); + final var serializedType = serializedAclRuleSet.getType(); + final var serializedDescription = serializedAclRuleSet.getDescription(); + final var serializedUserId = serializedAclRuleSet.getUserId(); + final var serializedEntries = serializedAclRuleSet.getEntriesList(); + + final var type = deserialize(serializedType); + final var entries = + serializedEntries.stream().map(this::deserialize).collect(Collectors.toList()); + + return new AclRuleSet(serializedName, type, serializedDescription, serializedUserId, entries); + } + + public ConfigRule_ACL serialize(ConfigRuleAcl configRuleAcl) { + final var builder = ContextOuterClass.ConfigRule_ACL.newBuilder(); + + final var endPointId = configRuleAcl.getEndPointId(); + final var aclRuleSet = configRuleAcl.getRuleSet(); + + final var serializedEndPointId = serialize(endPointId); + final var serializedAclRuleSet = serialize(aclRuleSet); + + builder.setEndpointId(serializedEndPointId); + builder.setRuleSet(serializedAclRuleSet); + + return builder.build(); + } + + public ConfigRuleAcl deserialize(ConfigRule_ACL serializedConfigRuleAcl) { + final var serializedEndPointId = serializedConfigRuleAcl.getEndpointId(); + final var serializedAclRuleSet = serializedConfigRuleAcl.getRuleSet(); + + final var endPointId = deserialize(serializedEndPointId); + final var aclRuleSet = deserialize(serializedAclRuleSet); + + return new ConfigRuleAcl(endPointId, aclRuleSet); + } + + public ConfigRule_Custom serialize(ConfigRuleCustom configRuleCustom) { + final var builder = ConfigRule_Custom.newBuilder(); + + final var resourceKey = configRuleCustom.getResourceKey(); + final var resourceValue = configRuleCustom.getResourceValue(); + + builder.setResourceKey(resourceKey); + builder.setResourceValue(resourceValue); + + return builder.build(); + } + + public ConfigRuleCustom deserialize(ConfigRule_Custom serializedConfigRuleCustom) { + final var serializedResourceKey = serializedConfigRuleCustom.getResourceKey(); + final var serializedResourceValue = serializedConfigRuleCustom.getResourceValue(); + + return new ConfigRuleCustom(serializedResourceKey, serializedResourceValue); + } + + public ContextOuterClass.ConfigRule serialize(ConfigRule configRule) { + final var builder = ContextOuterClass.ConfigRule.newBuilder(); + + final var configActionEnum = configRule.getConfigActionEnum(); + final var configRuleType = configRule.getConfigRuleType(); + final var configRuleTypeSpecificType = configRuleType.getConfigRuleType(); + + if (configRuleTypeSpecificType instanceof ConfigRuleAcl) { + final var endPointId = ((ConfigRuleAcl) configRuleTypeSpecificType).getEndPointId(); + final var aclRuleSet = ((ConfigRuleAcl) configRuleTypeSpecificType).getRuleSet(); + + final var serializedEndPointId = serialize(endPointId); + final var serializedAclRuleSet = serialize(aclRuleSet); + + final var serializedConfigRuleAcl = + ConfigRule_ACL.newBuilder() + .setEndpointId(serializedEndPointId) + .setRuleSet(serializedAclRuleSet) + .build(); + + builder.setAcl(serializedConfigRuleAcl); + } + + if (configRuleTypeSpecificType instanceof ConfigRuleCustom) { + final var configRuleCustomResourceKey = + ((ConfigRuleCustom) configRuleTypeSpecificType).getResourceKey(); + final var configRuleCustomResourceValue = + ((ConfigRuleCustom) configRuleTypeSpecificType).getResourceValue(); + + final var serializedConfigRuleCustom = + ConfigRule_Custom.newBuilder() + .setResourceKey(configRuleCustomResourceKey) + .setResourceValue(configRuleCustomResourceValue) + .build(); + + builder.setCustom(serializedConfigRuleCustom); + } + + final var serializedConfigActionEnum = serialize(configActionEnum); + + builder.setAction(serializedConfigActionEnum); + + return builder.build(); + } + + public ConfigRule deserialize(ContextOuterClass.ConfigRule serializedConfigRule) { + final var serializedConfigActionEnum = serializedConfigRule.getAction(); + final var typeOfConfigRule = serializedConfigRule.getConfigRuleCase(); + + final var configActionEnum = deserialize(serializedConfigActionEnum); + + switch (typeOfConfigRule) { + case ACL: + final var serializedConfigRuleAcl = serializedConfigRule.getAcl(); + + final var configRuleAcl = deserialize(serializedConfigRuleAcl); + final var configRuleTypeAcl = new ConfigRuleTypeAcl(configRuleAcl); + + return new ConfigRule(configActionEnum, configRuleTypeAcl); + case CUSTOM: + final var serializedConfigRuleCustom = serializedConfigRule.getCustom(); + + final var configRuleCustom = deserialize(serializedConfigRuleCustom); + final var configRuleTypeCustom = new ConfigRuleTypeCustom(configRuleCustom); + + return new ConfigRule(configActionEnum, configRuleTypeCustom); + default: + case CONFIGRULE_NOT_SET: + throw new IllegalStateException("Config Rule not set"); + } + } + + public ContextOuterClass.Location serialize(Location location) { + final var builder = ContextOuterClass.Location.newBuilder(); + + final var locationType = location.getLocationType(); + final var locationTypeSpecificType = locationType.getLocationType(); + + if (locationTypeSpecificType instanceof GpsPosition) { + final var latitude = ((GpsPosition) locationTypeSpecificType).getLatitude(); + final var longitude = ((GpsPosition) locationTypeSpecificType).getLongitude(); + + final var serializedGpsPosition = + ContextOuterClass.GPS_Position.newBuilder() + .setLatitude(latitude) + .setLongitude(longitude) + .build(); + + builder.setGpsPosition(serializedGpsPosition); + } + + if (locationTypeSpecificType instanceof String) { + final var region = ((String) locationTypeSpecificType); + + builder.setRegion(region); + } + + return builder.build(); + } + + public Location deserialize(ContextOuterClass.Location serializedLocation) { + final var typeOfLocation = serializedLocation.getLocationCase(); + + switch (typeOfLocation) { + case REGION: + final var region = serializedLocation.getRegion(); + final var locationTypeRegion = new LocationTypeRegion(region); + + return new Location(locationTypeRegion); + case GPS_POSITION: + final var serializedGpsPosition = serializedLocation.getGpsPosition(); + final var latitude = serializedGpsPosition.getLatitude(); + final var longitude = serializedGpsPosition.getLongitude(); + + final var gpsPosition = new GpsPosition(latitude, longitude); + final var locationTypeGpsPosition = new LocationTypeGpsPosition(gpsPosition); + + return new Location(locationTypeGpsPosition); + default: + case LOCATION_NOT_SET: + throw new IllegalStateException("Location value not set"); + } + } + + public ContextOuterClass.IsolationLevelEnum serialize(IsolationLevelEnum isolationLevelEnum) { + switch (isolationLevelEnum) { + case NO_ISOLATION: + return ContextOuterClass.IsolationLevelEnum.NO_ISOLATION; + case PHYSICAL_ISOLATION: + return ContextOuterClass.IsolationLevelEnum.PHYSICAL_ISOLATION; + case LOGICAL_ISOLATION: + return ContextOuterClass.IsolationLevelEnum.LOGICAL_ISOLATION; + case PROCESS_ISOLATION: + return ContextOuterClass.IsolationLevelEnum.PROCESS_ISOLATION; + case PHYSICAL_MEMORY_ISOLATION: + return ContextOuterClass.IsolationLevelEnum.PHYSICAL_MEMORY_ISOLATION; + case PHYSICAL_NETWORK_ISOLATION: + return ContextOuterClass.IsolationLevelEnum.PHYSICAL_NETWORK_ISOLATION; + case VIRTUAL_RESOURCE_ISOLATION: + return ContextOuterClass.IsolationLevelEnum.VIRTUAL_RESOURCE_ISOLATION; + case NETWORK_FUNCTIONS_ISOLATION: + return ContextOuterClass.IsolationLevelEnum.NETWORK_FUNCTIONS_ISOLATION; + case SERVICE_ISOLATION: + return ContextOuterClass.IsolationLevelEnum.SERVICE_ISOLATION; + default: + return ContextOuterClass.IsolationLevelEnum.UNRECOGNIZED; + } + } + + public IsolationLevelEnum deserialize( + ContextOuterClass.IsolationLevelEnum serializedIsolationLevelEnum) { + switch (serializedIsolationLevelEnum) { + case PHYSICAL_ISOLATION: + return IsolationLevelEnum.PHYSICAL_ISOLATION; + case LOGICAL_ISOLATION: + return IsolationLevelEnum.LOGICAL_ISOLATION; + case PROCESS_ISOLATION: + return IsolationLevelEnum.PROCESS_ISOLATION; + case PHYSICAL_MEMORY_ISOLATION: + return IsolationLevelEnum.PHYSICAL_MEMORY_ISOLATION; + case PHYSICAL_NETWORK_ISOLATION: + return IsolationLevelEnum.PHYSICAL_NETWORK_ISOLATION; + case VIRTUAL_RESOURCE_ISOLATION: + return IsolationLevelEnum.VIRTUAL_RESOURCE_ISOLATION; + case NETWORK_FUNCTIONS_ISOLATION: + return IsolationLevelEnum.NETWORK_FUNCTIONS_ISOLATION; + case SERVICE_ISOLATION: + return IsolationLevelEnum.SERVICE_ISOLATION; + case UNRECOGNIZED: + default: + return IsolationLevelEnum.NO_ISOLATION; + } + } + + public ContextOuterClass.Constraint_Custom serialize(ConstraintCustom constraintCustom) { + final var builder = ContextOuterClass.Constraint_Custom.newBuilder(); + + final var constraintType = constraintCustom.getConstraintType(); + final var constraintValue = constraintCustom.getConstraintValue(); + + builder.setConstraintType(constraintType); + builder.setConstraintValue(constraintValue); + + return builder.build(); + } + + public ConstraintCustom deserialize( + ContextOuterClass.Constraint_Custom serializedConstraintCustom) { + final var constraintType = serializedConstraintCustom.getConstraintType(); + final var constraintValue = serializedConstraintCustom.getConstraintValue(); + + return new ConstraintCustom(constraintType, constraintValue); + } + + public ContextOuterClass.Constraint_Schedule serialize(ConstraintSchedule constraintSchedule) { + final var builder = ContextOuterClass.Constraint_Schedule.newBuilder(); + + final var startTimestamp = constraintSchedule.getStartTimestamp(); + final var durationDays = constraintSchedule.getDurationDays(); + + builder.setStartTimestamp(startTimestamp); + builder.setDurationDays(durationDays); + + return builder.build(); + } + + public ConstraintSchedule deserialize( + ContextOuterClass.Constraint_Schedule serializedConstraintSchedule) { + final var startTimestamp = serializedConstraintSchedule.getStartTimestamp(); + final var durationDays = serializedConstraintSchedule.getDurationDays(); + + return new ConstraintSchedule(startTimestamp, durationDays); + } + + public ContextOuterClass.Constraint_EndPointLocation serialize( + ConstraintEndPointLocation constraintEndPointLocation) { + final var builder = ContextOuterClass.Constraint_EndPointLocation.newBuilder(); + + final var endPointId = constraintEndPointLocation.getEndPointId(); + final var location = constraintEndPointLocation.getLocation(); + + final var serializedEndPointId = serialize(endPointId); + final var serializedLocation = serialize(location); + + builder.setEndpointId(serializedEndPointId); + builder.setLocation(serializedLocation); + + return builder.build(); + } + + public ConstraintEndPointLocation deserialize( + ContextOuterClass.Constraint_EndPointLocation serializedConstraintEndPointLocation) { + final var serializedEndPointId = serializedConstraintEndPointLocation.getEndpointId(); + final var serializedLocation = serializedConstraintEndPointLocation.getLocation(); + + final var endPointId = deserialize(serializedEndPointId); + final var location = deserialize(serializedLocation); + + return new ConstraintEndPointLocation(endPointId, location); + } + + public ContextOuterClass.Constraint_SLA_Availability serialize( + ConstraintSlaAvailability constraintSlaAvailability) { + final var builder = ContextOuterClass.Constraint_SLA_Availability.newBuilder(); + + final var numDisjointPaths = constraintSlaAvailability.getNumDisjointPaths(); + final var isAllActive = constraintSlaAvailability.isAllActive(); + + builder.setNumDisjointPaths(numDisjointPaths); + builder.setAllActive(isAllActive); + + return builder.build(); + } + + public ConstraintSlaAvailability deserialize( + ContextOuterClass.Constraint_SLA_Availability serializedConstraintSlaAvailability) { + final var numDisjointPaths = serializedConstraintSlaAvailability.getNumDisjointPaths(); + final var isAllActive = serializedConstraintSlaAvailability.getAllActive(); + + return new ConstraintSlaAvailability(numDisjointPaths, isAllActive); + } + + public ContextOuterClass.Constraint_SLA_Capacity serialize( + ConstraintSlaCapacity constraintSlaCapacity) { + final var builder = ContextOuterClass.Constraint_SLA_Capacity.newBuilder(); + + final var capacityGbps = constraintSlaCapacity.getCapacityGbps(); + + builder.setCapacityGbps(capacityGbps); + + return builder.build(); + } + + public ConstraintSlaCapacity deserialize( + ContextOuterClass.Constraint_SLA_Capacity serializedConstraintSlaCapacity) { + final var capacityGbps = serializedConstraintSlaCapacity.getCapacityGbps(); + + return new ConstraintSlaCapacity(capacityGbps); + } + + public ContextOuterClass.Constraint_SLA_Isolation_level serialize( + ConstraintSlaIsolationLevel constraintSlaIsolationLevel) { + final var builder = ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder(); + + final var isolationLevelEnum = constraintSlaIsolationLevel.getIsolationLevelEnum(); + + final var serializedIsolationLevelEnum = serialize(isolationLevelEnum); + + builder.setIsolationLevel(serializedIsolationLevelEnum); + + return builder.build(); + } + + public ConstraintSlaIsolationLevel deserialize( + ContextOuterClass.Constraint_SLA_Isolation_level serializedConstraintIsolationLevel) { + final var serializedIsolationLevelEnum = serializedConstraintIsolationLevel.getIsolationLevel(); + + final var isolationLevelEnum = deserialize(serializedIsolationLevelEnum); + + return new ConstraintSlaIsolationLevel(isolationLevelEnum); + } + + public ContextOuterClass.Constraint_SLA_Latency serialize( + ConstraintSlaLatency constraintSlaLatency) { + final var builder = ContextOuterClass.Constraint_SLA_Latency.newBuilder(); + + final var e2eLatencyMs = constraintSlaLatency.getE2eLatencyMs(); + + builder.setE2ELatencyMs(e2eLatencyMs); + + return builder.build(); + } + + public ConstraintSlaLatency deserialize( + ContextOuterClass.Constraint_SLA_Latency serializedConstraintSlaLatency) { + final var e2ELatencyMs = serializedConstraintSlaLatency.getE2ELatencyMs(); + + return new ConstraintSlaLatency(e2ELatencyMs); + } + + public ContextOuterClass.Constraint serialize(Constraint constraint) { + final var builder = ContextOuterClass.Constraint.newBuilder(); + + final var constraintType = constraint.getConstraintType(); + final var constraintTypeSpecificType = constraintType.getConstraintType(); + + if (constraintTypeSpecificType instanceof ConstraintCustom) { + final var constraintCustomType = + ((ConstraintCustom) constraintTypeSpecificType).getConstraintType(); + final var constraintCustomValue = + ((ConstraintCustom) constraintTypeSpecificType).getConstraintValue(); + + final var serializedConstraintCustom = + ContextOuterClass.Constraint_Custom.newBuilder() + .setConstraintType(constraintCustomType) + .setConstraintValue(constraintCustomValue) + .build(); + + builder.setCustom(serializedConstraintCustom); + } + + if (constraintTypeSpecificType instanceof ConstraintSchedule) { + final var startTimestamp = + ((ConstraintSchedule) constraintTypeSpecificType).getStartTimestamp(); + final var durationDays = ((ConstraintSchedule) constraintTypeSpecificType).getDurationDays(); + + final var serializedConstraintSchedule = + ContextOuterClass.Constraint_Schedule.newBuilder() + .setStartTimestamp(startTimestamp) + .setDurationDays(durationDays) + .build(); + + builder.setSchedule(serializedConstraintSchedule); + } + + if (constraintTypeSpecificType instanceof ConstraintEndPointLocation) { + final var endPointId = + ((ConstraintEndPointLocation) constraintTypeSpecificType).getEndPointId(); + final var location = ((ConstraintEndPointLocation) constraintTypeSpecificType).getLocation(); + + final var serializedEndPointId = serialize(endPointId); + final var serializedLocation = serialize(location); + + final var serializedConstraintEndPointLocation = + ContextOuterClass.Constraint_EndPointLocation.newBuilder() + .setEndpointId(serializedEndPointId) + .setLocation(serializedLocation) + .build(); + + builder.setEndpointLocation(serializedConstraintEndPointLocation); + } + + if (constraintTypeSpecificType instanceof ConstraintSlaAvailability) { + final var numDisJointPaths = + ((ConstraintSlaAvailability) constraintTypeSpecificType).getNumDisjointPaths(); + final var isAllActive = + ((ConstraintSlaAvailability) constraintTypeSpecificType).isAllActive(); + + final var serializedConstraintSlaAvailability = + ContextOuterClass.Constraint_SLA_Availability.newBuilder() + .setNumDisjointPaths(numDisJointPaths) + .setAllActive(isAllActive) + .build(); + + builder.setSlaAvailability(serializedConstraintSlaAvailability); + } + + if (constraintTypeSpecificType instanceof ConstraintSlaCapacity) { + final var capacityGbps = + ((ConstraintSlaCapacity) constraintTypeSpecificType).getCapacityGbps(); + + final var serializedConstraintSlaCapacity = + ContextOuterClass.Constraint_SLA_Capacity.newBuilder() + .setCapacityGbps(capacityGbps) + .build(); + + builder.setSlaCapacity(serializedConstraintSlaCapacity); + } + + if (constraintTypeSpecificType instanceof ConstraintSlaIsolationLevel) { + final var isolationLevelEnum = + ((ConstraintSlaIsolationLevel) constraintTypeSpecificType).getIsolationLevelEnum(); + + final var serializedIsolationLevelEnum = serialize(isolationLevelEnum); + final var serializedConstraintSlaIsolationLevel = + ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder() + .setIsolationLevel(serializedIsolationLevelEnum) + .build(); + + builder.setSlaIsolation(serializedConstraintSlaIsolationLevel); + } + + if (constraintTypeSpecificType instanceof ConstraintSlaLatency) { + final var e2eLatencyMs = + ((ConstraintSlaLatency) constraintTypeSpecificType).getE2eLatencyMs(); + + final var serializedConstraintSlaLatency = + ContextOuterClass.Constraint_SLA_Latency.newBuilder() + .setE2ELatencyMs(e2eLatencyMs) + .build(); + + builder.setSlaLatency(serializedConstraintSlaLatency); + } + + return builder.build(); + } + + public Constraint deserialize(ContextOuterClass.Constraint serializedConstraint) { + final var typeOfConstraint = serializedConstraint.getConstraintCase(); + + switch (typeOfConstraint) { + case CUSTOM: + final var serializedConstraintCustom = serializedConstraint.getCustom(); + final var constraintType = serializedConstraintCustom.getConstraintType(); + final var constraintValue = serializedConstraintCustom.getConstraintValue(); + + final var constraintCustom = new ConstraintCustom(constraintType, constraintValue); + final var constraintTypeCustom = new ConstraintTypeCustom(constraintCustom); + + return new Constraint(constraintTypeCustom); + case SCHEDULE: + final var serializedConstraintSchedule = serializedConstraint.getSchedule(); + final var startTimestamp = serializedConstraintSchedule.getStartTimestamp(); + final var durationDays = serializedConstraintSchedule.getDurationDays(); + + final var constraintSchedule = new ConstraintSchedule(startTimestamp, durationDays); + final var constraintTypeSchedule = new ConstraintTypeSchedule(constraintSchedule); + + return new Constraint(constraintTypeSchedule); + case ENDPOINT_LOCATION: + final var serializedConstrainEndPointLocation = serializedConstraint.getEndpointLocation(); + final var serializedEndPointId = serializedConstrainEndPointLocation.getEndpointId(); + final var serializedLocation = serializedConstrainEndPointLocation.getLocation(); + + final var endPointId = deserialize(serializedEndPointId); + final var location = deserialize(serializedLocation); + final var constraintEndPointLocation = new ConstraintEndPointLocation(endPointId, location); + final var constraintTypeEndPointLocation = + new ConstraintTypeEndPointLocation(constraintEndPointLocation); + + return new Constraint(constraintTypeEndPointLocation); + case SLA_CAPACITY: + final var serializedConstrainSlaCapacity = serializedConstraint.getSlaCapacity(); + final var capacityGbps = serializedConstrainSlaCapacity.getCapacityGbps(); + + final var constraintSlaCapacity = new ConstraintSlaCapacity(capacityGbps); + final var constraintTypeSlaCapacity = new ConstraintTypeSlaCapacity(constraintSlaCapacity); + + return new Constraint(constraintTypeSlaCapacity); + case SLA_LATENCY: + final var serializedConstrainSlaLatency = serializedConstraint.getSlaLatency(); + final var e2ELatencyMs = serializedConstrainSlaLatency.getE2ELatencyMs(); + + final var constraintSlaLatency = new ConstraintSlaLatency(e2ELatencyMs); + final var constraintTypeSlaLatency = new ConstraintTypeSlaLatency(constraintSlaLatency); + + return new Constraint(constraintTypeSlaLatency); + case SLA_AVAILABILITY: + final var serializedConstrainSlaAvailability = serializedConstraint.getSlaAvailability(); + final var numDisjointPaths = serializedConstrainSlaAvailability.getNumDisjointPaths(); + final var isAllActive = serializedConstrainSlaAvailability.getAllActive(); + + final var constraintSlaAvailability = + new ConstraintSlaAvailability(numDisjointPaths, isAllActive); + final var constraintTypeSlaAvailability = + new ConstraintTypeSlaAvailability(constraintSlaAvailability); + + return new Constraint(constraintTypeSlaAvailability); + case SLA_ISOLATION: + final var serializedConstrainSlaIsolation = serializedConstraint.getSlaIsolation(); + final var serializedIsolationLevelEnum = + serializedConstrainSlaIsolation.getIsolationLevel(); + + final var isolationLevelEnum = deserialize(serializedIsolationLevelEnum); + final var constraintSlaIsolation = new ConstraintSlaIsolationLevel(isolationLevelEnum); + final var constraintTypeSlaIsolation = + new ConstraintTypeSlaIsolationLevel(constraintSlaIsolation); + + return new Constraint(constraintTypeSlaIsolation); + + default: + case CONSTRAINT_NOT_SET: + throw new IllegalStateException("Constraint value not set"); + } + } + + public ContextOuterClass.EndPointId serialize(EndPointId endPointId) { + final var builder = ContextOuterClass.EndPointId.newBuilder(); + + final var endPointIdTopologyId = endPointId.getTopologyId(); + final var endPointIdDeviceId = endPointId.getDeviceId(); + final var endPointIdId = endPointId.getId(); + + final var serializedTopologyId = serialize(endPointIdTopologyId); + final var serializedDeviceId = serializeDeviceId(endPointIdDeviceId); + final var serializedEndPointIdId = serializeUuid(endPointIdId); + + builder.setTopologyId(serializedTopologyId); + builder.setDeviceId(serializedDeviceId); + builder.setEndpointUuid(serializedEndPointIdId); + + return builder.build(); + } + + public EndPointId deserialize(ContextOuterClass.EndPointId serializedEndPointId) { + final var serializedTopologyId = serializedEndPointId.getTopologyId(); + final var serializedDeviceId = serializedEndPointId.getDeviceId(); + final var serializedId = serializedEndPointId.getEndpointUuid(); + + final var topologyId = deserialize(serializedTopologyId); + final var deviceId = deserialize(serializedDeviceId); + final var id = deserialize(serializedId); + + return new EndPointId(topologyId, deviceId, id); + } + + public ContextOuterClass.EventTypeEnum serialize(EventTypeEnum eventTypeEnum) { + switch (eventTypeEnum) { + case CREATE: + return ContextOuterClass.EventTypeEnum.EVENTTYPE_CREATE; + case REMOVE: + return ContextOuterClass.EventTypeEnum.EVENTTYPE_REMOVE; + case UPDATE: + return ContextOuterClass.EventTypeEnum.EVENTTYPE_UPDATE; + case UNDEFINED: + return ContextOuterClass.EventTypeEnum.EVENTTYPE_UNDEFINED; + default: + return ContextOuterClass.EventTypeEnum.UNRECOGNIZED; + } + } + + public EventTypeEnum deserialize(ContextOuterClass.EventTypeEnum serializedEventType) { + switch (serializedEventType) { + case EVENTTYPE_CREATE: + return EventTypeEnum.CREATE; + case EVENTTYPE_REMOVE: + return EventTypeEnum.REMOVE; + case EVENTTYPE_UPDATE: + return EventTypeEnum.UPDATE; + case EVENTTYPE_UNDEFINED: + case UNRECOGNIZED: + default: + return EventTypeEnum.UNDEFINED; + } + } + + public ContextOuterClass.Timestamp serialize(double timestamp) { + final var builder = ContextOuterClass.Timestamp.newBuilder(); + + builder.setTimestamp(timestamp); + + return builder.build(); + } + + public double deserialize(ContextOuterClass.Timestamp serializedTimeStamp) { + + return serializedTimeStamp.getTimestamp(); + } + + public ContextOuterClass.Event serialize(Event event) { + final var builder = ContextOuterClass.Event.newBuilder(); + + final var eventType = serialize(event.getEventTypeEnum()); + final var timestamp = serialize(event.getTimestamp()); + builder.setEventType(eventType); + builder.setTimestamp(timestamp); + + return builder.build(); + } + + public Event deserialize(ContextOuterClass.Event serializedEvent) { + final var timestamp = deserialize(serializedEvent.getTimestamp()); + final var eventType = deserialize(serializedEvent.getEventType()); + + return new Event(timestamp, eventType); + } + + public ContextOuterClass.ServiceId serialize(ServiceId serviceId) { + final var builder = ContextOuterClass.ServiceId.newBuilder(); + + final var contextId = serviceId.getContextId(); + final var id = serviceId.getId(); + + final var serializedContextId = serializeContextId(contextId); + final var serializedId = serializeUuid(id); + + builder.setContextId(serializedContextId); + builder.setServiceUuid(serializedId); + + return builder.build(); + } + + public ServiceId deserialize(ContextOuterClass.ServiceId serializedServiceId) { + final var serializedContextId = serializedServiceId.getContextId(); + final var serializedId = serializedServiceId.getServiceUuid(); + + final var contextId = deserialize(serializedContextId); + final var id = deserialize(serializedId); + + return new ServiceId(contextId, id); + } + + public ContextOuterClass.SliceId serialize(SliceId sliceId) { + final var builder = ContextOuterClass.SliceId.newBuilder(); + + final var contextId = sliceId.getContextId(); + final var id = sliceId.getId(); + + final var serializedContextId = serializeContextId(contextId); + final var serializedId = serializeUuid(id); + + builder.setContextId(serializedContextId); + builder.setSliceUuid(serializedId); + + return builder.build(); + } + + public SliceId deserialize(ContextOuterClass.SliceId serializedSliceId) { + final var serializedContextId = serializedSliceId.getContextId(); + final var serializedId = serializedSliceId.getSliceUuid(); + + final var contextId = deserialize(serializedContextId); + final var id = deserialize(serializedId); + + return new SliceId(contextId, id); + } + + public ContextOuterClass.ServiceStatusEnum serialize(ServiceStatusEnum serviceStatusEnum) { + switch (serviceStatusEnum) { + case ACTIVE: + return ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_ACTIVE; + case PLANNED: + return ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_PLANNED; + case PENDING_REMOVAL: + return ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_PENDING_REMOVAL; + case UNDEFINED: + return ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_UNDEFINED; + default: + return ContextOuterClass.ServiceStatusEnum.UNRECOGNIZED; + } + } + + public ServiceStatusEnum deserialize( + ContextOuterClass.ServiceStatusEnum serializedServiceStatusEnum) { + switch (serializedServiceStatusEnum) { + case SERVICESTATUS_ACTIVE: + return ServiceStatusEnum.ACTIVE; + case SERVICESTATUS_PLANNED: + return ServiceStatusEnum.PLANNED; + case SERVICESTATUS_PENDING_REMOVAL: + return ServiceStatusEnum.PENDING_REMOVAL; + case SERVICESTATUS_UNDEFINED: + case UNRECOGNIZED: + default: + return ServiceStatusEnum.UNDEFINED; + } + } + + public ContextOuterClass.ServiceTypeEnum serialize(ServiceTypeEnum serviceTypeEnum) { + switch (serviceTypeEnum) { + case L2NM: + return ContextOuterClass.ServiceTypeEnum.SERVICETYPE_L2NM; + case L3NM: + return ContextOuterClass.ServiceTypeEnum.SERVICETYPE_L3NM; + case TAPI_CONNECTIVITY_SERVICE: + return ContextOuterClass.ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE; + case UNKNOWN: + return ContextOuterClass.ServiceTypeEnum.SERVICETYPE_UNKNOWN; + default: + return ContextOuterClass.ServiceTypeEnum.UNRECOGNIZED; + } + } + + public ServiceTypeEnum deserialize(ContextOuterClass.ServiceTypeEnum serializedServiceTypeEnum) { + switch (serializedServiceTypeEnum) { + case SERVICETYPE_L2NM: + return ServiceTypeEnum.L2NM; + case SERVICETYPE_L3NM: + return ServiceTypeEnum.L3NM; + case SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: + return ServiceTypeEnum.TAPI_CONNECTIVITY_SERVICE; + case SERVICETYPE_UNKNOWN: + case UNRECOGNIZED: + default: + return ServiceTypeEnum.UNKNOWN; + } + } + + public ContextOuterClass.ServiceStatus serialize(ServiceStatus serviceStatus) { + final var builder = ContextOuterClass.ServiceStatus.newBuilder(); + + final var serviceStatusEnum = serviceStatus.getServiceStatus(); + final var serializedServiceStatusEnum = serialize(serviceStatusEnum); + + builder.setServiceStatus(serializedServiceStatusEnum); + + return builder.build(); + } + + public ServiceStatus deserialize(ContextOuterClass.ServiceStatus serializedServiceStatus) { + final var serializedServiceStatusEnum = serializedServiceStatus.getServiceStatus(); + final var serviceStatusEnum = deserialize(serializedServiceStatusEnum); + + return new ServiceStatus(serviceStatusEnum); + } + + public ContextOuterClass.ServiceConfig serialize(ServiceConfig serviceConfig) { + final var builder = ContextOuterClass.ServiceConfig.newBuilder(); + + final var serializedConfigRules = + serviceConfig.getConfigRules().stream().map(this::serialize).collect(Collectors.toList()); + + builder.addAllConfigRules(serializedConfigRules); + + return builder.build(); + } + + public ServiceConfig deserialize(ContextOuterClass.ServiceConfig serviceConfig) { + final var configRules = + serviceConfig.getConfigRulesList().stream() + .map(this::deserialize) + .collect(Collectors.toList()); + + return new ServiceConfig(configRules); + } + + public ContextOuterClass.Service serialize(Service service) { + final var builder = ContextOuterClass.Service.newBuilder(); + + final var serviceId = service.getServiceId(); + final var serviceType = service.getServiceType(); + final var serviceEndPointIds = service.getServiceEndPointIds(); + final var serviceConstraints = service.getServiceConstraints(); + final var serviceStatus = service.getServiceStatus(); + final var serviceConfig = service.getServiceConfig(); + final var serviceTimestamp = service.getTimestamp(); + + final var serializedServiceId = serialize(serviceId); + final var serializedServiceType = serialize(serviceType); + final var serializedServiceEndPointIds = + serviceEndPointIds.stream().map(this::serialize).collect(Collectors.toList()); + final var serializedServiceConstraints = + serviceConstraints.stream().map(this::serialize).collect(Collectors.toList()); + final var serializedServiceStatus = serialize(serviceStatus); + final var serializedServiceConfig = serialize(serviceConfig); + final var serializedTimestamp = serialize(serviceTimestamp); + + builder.setServiceId(serializedServiceId); + builder.setServiceType(serializedServiceType); + builder.addAllServiceEndpointIds(serializedServiceEndPointIds); + builder.addAllServiceConstraints(serializedServiceConstraints); + builder.setServiceStatus(serializedServiceStatus); + builder.setServiceConfig(serializedServiceConfig); + builder.setTimestamp(serializedTimestamp); + + return builder.build(); + } + + public Service deserialize(ContextOuterClass.Service serializedService) { + + final var serializedServiceId = serializedService.getServiceId(); + final var serializedServiceType = serializedService.getServiceType(); + final var serializedServiceEndPointIds = serializedService.getServiceEndpointIdsList(); + final var serializedServiceConstraints = serializedService.getServiceConstraintsList(); + final var serializedServiceStatus = serializedService.getServiceStatus(); + final var serializedServiceConfig = serializedService.getServiceConfig(); + final var serializedTimestamp = serializedService.getTimestamp(); + + final var serviceId = deserialize(serializedServiceId); + final var serviceType = deserialize(serializedServiceType); + final var serviceEndPointIds = + serializedServiceEndPointIds.stream().map(this::deserialize).collect(Collectors.toList()); + final var serviceConstraints = + serializedServiceConstraints.stream().map(this::deserialize).collect(Collectors.toList()); + final var serviceStatus = deserialize(serializedServiceStatus); + final var serviceConfig = deserialize(serializedServiceConfig); + final var timestamp = deserialize(serializedTimestamp); + + return new Service( + serviceId, + serviceType, + serviceEndPointIds, + serviceConstraints, + serviceStatus, + serviceConfig, + timestamp); + } + + public KpiSampleTypes.KpiSampleType serialize(KpiSampleType kpiSampleType) { + switch (kpiSampleType) { + case PACKETS_TRANSMITTED: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED; + case PACKETS_RECEIVED: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED; + case BYTES_TRANSMITTED: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED; + case BYTES_RECEIVED: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED; + case UNKNOWN: + return KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN; + default: + return KpiSampleTypes.KpiSampleType.UNRECOGNIZED; + } + } + + public KpiSampleType deserialize(KpiSampleTypes.KpiSampleType serializedKpiSampleType) { + switch (serializedKpiSampleType) { + case KPISAMPLETYPE_PACKETS_TRANSMITTED: + return KpiSampleType.PACKETS_TRANSMITTED; + case KPISAMPLETYPE_PACKETS_RECEIVED: + return KpiSampleType.PACKETS_RECEIVED; + case KPISAMPLETYPE_BYTES_TRANSMITTED: + return KpiSampleType.BYTES_TRANSMITTED; + case KPISAMPLETYPE_BYTES_RECEIVED: + return KpiSampleType.BYTES_RECEIVED; + case KPISAMPLETYPE_UNKNOWN: + default: + return KpiSampleType.UNKNOWN; + } + } + + public Policy.RuleState serialize(RuleState rulestate) { + switch (rulestate) { + case POLICY_FAILED: + return Policy.RuleState.POLICY_FAILED; + case POLICY_INSERTED: + return Policy.RuleState.POLICY_INSERTED; + case POLICY_VALIDATED: + return Policy.RuleState.POLICY_VALIDATED; + case POLICY_PROVISIONED: + return Policy.RuleState.POLICY_PROVISIONED; + case POLICY_ACTIVE: + return Policy.RuleState.POLICY_ACTIVE; + case POLICY_ENFORCED: + return Policy.RuleState.POLICY_ENFORCED; + case POLICY_INEFFECTIVE: + return Policy.RuleState.POLICY_INEFFECTIVE; + case POLICY_EFFECTIVE: + return Policy.RuleState.POLICY_EFFECTIVE; + case POLICY_UPDATED: + return Policy.RuleState.POLICY_UPDATED; + case POLICY_REMOVED: + return Policy.RuleState.POLICY_REMOVED; + case POLICY_UNDEFINED: + return Policy.RuleState.POLICY_UNDEFINED; + default: + return Policy.RuleState.UNRECOGNIZED; + } + } + + public RuleState deserialize(Policy.RuleState serializedRuleState) { + switch (serializedRuleState) { + case POLICY_INSERTED: + return RuleState.POLICY_INSERTED; + case POLICY_VALIDATED: + return RuleState.POLICY_VALIDATED; + case POLICY_PROVISIONED: + return RuleState.POLICY_PROVISIONED; + case POLICY_ACTIVE: + return RuleState.POLICY_ACTIVE; + case POLICY_ENFORCED: + return RuleState.POLICY_ENFORCED; + case POLICY_INEFFECTIVE: + return RuleState.POLICY_INEFFECTIVE; + case POLICY_EFFECTIVE: + return RuleState.POLICY_EFFECTIVE; + case POLICY_UPDATED: + return RuleState.POLICY_UPDATED; + case POLICY_REMOVED: + return RuleState.POLICY_REMOVED; + case POLICY_FAILED: + return RuleState.POLICY_FAILED; + case POLICY_UNDEFINED: + case UNRECOGNIZED: + default: + return RuleState.POLICY_UNDEFINED; + } + } + + public Policy.PolicyRuleState serialize(PolicyRuleState policyRuleState) { + final var builder = Policy.PolicyRuleState.newBuilder(); + + final var ruleState = policyRuleState.getRuleState(); + + final var serializedRuleState = serialize(ruleState); + + builder.setPolicyRuleState(serializedRuleState); + + return builder.build(); + } + + public PolicyRuleState deserialize(Policy.PolicyRuleState serializedPolicyRuleState) { + final var serializedRuleState = serializedPolicyRuleState.getPolicyRuleState(); + + final var ruleState = deserialize(serializedRuleState); + + return new PolicyRuleState(ruleState); + } + + public PolicyCondition.NumericalOperator serialize(NumericalOperator numericalOperator) { + switch (numericalOperator) { + case POLICY_RULE_CONDITION_NUMERICAL_EQUAL: + return PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_EQUAL; + case POLICY_RULE_CONDITION_NUMERICAL_NOT_EQUAL: + return PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_NOT_EQUAL; + case POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN: + return PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_LESS_THAN; + case POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL: + return PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL; + case POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN: + return PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN; + case POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL: + return PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL; + case POLICY_RULE_CONDITION_NUMERICAL_UNDEFINED: + return PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_UNDEFINED; + default: + return PolicyCondition.NumericalOperator.UNRECOGNIZED; + } + } + + public NumericalOperator deserialize( + PolicyCondition.NumericalOperator serializedNumericalOperator) { + switch (serializedNumericalOperator) { + case POLICYRULE_CONDITION_NUMERICAL_EQUAL: + return NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_EQUAL; + case POLICYRULE_CONDITION_NUMERICAL_NOT_EQUAL: + return NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_NOT_EQUAL; + case POLICYRULE_CONDITION_NUMERICAL_LESS_THAN: + return NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN; + case POLICYRULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL: + return NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL; + case POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN: + return NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN; + case POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL: + return NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL; + case POLICYRULE_CONDITION_NUMERICAL_UNDEFINED: + case UNRECOGNIZED: + default: + return NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_UNDEFINED; + } + } + + public Monitoring.KpiValue serializeStringKpiValue(KpiValue kpiValue) { + final var builder = Monitoring.KpiValue.newBuilder(); + + return builder.setStringVal(kpiValue.getValue()).build(); + } + + public String deserializeStringKpiValue(Monitoring.KpiValue serializedKpiValue) { + + return serializedKpiValue.getStringVal(); + } + + public Monitoring.KpiValue serializeBooleanKpiValue(KpiValue kpiValue) { + final var builder = Monitoring.KpiValue.newBuilder(); + + return builder.setBoolVal(kpiValue.getValue()).build(); + } + + public boolean deserializeBooleanKpiValue(Monitoring.KpiValue serializedKpiValue) { + + return serializedKpiValue.getBoolVal(); + } + + public Monitoring.KpiValue serializeFloatKpiValue(KpiValue kpiValue) { + final var builder = Monitoring.KpiValue.newBuilder(); + + return builder.setFloatVal(kpiValue.getValue()).build(); + } + + public float deserializeFloatKpiValue(Monitoring.KpiValue serializedKpiValue) { + + return serializedKpiValue.getFloatVal(); + } + + public Monitoring.KpiValue serializeIntegerKpiValue(KpiValue kpiValue) { + final var builder = Monitoring.KpiValue.newBuilder(); + + return builder.setIntVal(kpiValue.getValue()).build(); + } + + public int deserializeIntegerKpiValue(Monitoring.KpiValue serializedKpiValue) { + + return serializedKpiValue.getIntVal(); + } + + public Monitoring.KpiValue serialize(KpiValue kpiValue) { + final var builder = Monitoring.KpiValue.newBuilder(); + + if (kpiValue.getValue() instanceof Integer) { + final var serializedIntegerKpiValue = serializeIntegerKpiValue((KpiValue) kpiValue); + builder.setIntVal(serializedIntegerKpiValue.getIntVal()); + } + if (kpiValue.getValue() instanceof Float) { + final var serializedFloatKpiValue = serializeFloatKpiValue((KpiValue) kpiValue); + builder.setFloatVal(serializedFloatKpiValue.getFloatVal()); + } + if (kpiValue.getValue() instanceof String) { + final var serializedStringKpiValue = serializeStringKpiValue((KpiValue) kpiValue); + builder.setStringVal(serializedStringKpiValue.getStringVal()); + } + if (kpiValue.getValue() instanceof Boolean) { + final var serializedBooleanKpiValue = serializeBooleanKpiValue((KpiValue) kpiValue); + builder.setBoolVal(serializedBooleanKpiValue.getBoolVal()); + } + + return builder.build(); + } + + public KpiValue deserialize(Monitoring.KpiValue serializedKpiValue) { + + final var typeOfKpiValue = serializedKpiValue.getValueCase(); + + switch (typeOfKpiValue) { + case INTVAL: + final var intValue = deserializeIntegerKpiValue(serializedKpiValue); + return new IntegerKpiValue(intValue); + case BOOLVAL: + final var booleanValue = deserializeBooleanKpiValue(serializedKpiValue); + return new BooleanKpiValue(booleanValue); + case FLOATVAL: + final var floatValue = deserializeFloatKpiValue(serializedKpiValue); + return new FloatKpiValue(floatValue); + case STRINGVAL: + final var stringValue = deserializeStringKpiValue(serializedKpiValue); + return new StringKpiValue(stringValue); + default: + case VALUE_NOT_SET: + throw new IllegalStateException("Kpi value not set"); + } + } + + public Monitoring.KpiValueRange serialize(KpiValueRange kpiValueRange) { + final var builder = Monitoring.KpiValueRange.newBuilder(); + + final var kpiValueMin = kpiValueRange.getKpiMinValue(); + final var kpiValueMax = kpiValueRange.getKpiMaxValue(); + + final var serializedKpiValueMin = serialize(kpiValueMin); + final var serializedKpiValueMax = serialize(kpiValueMax); + + builder.setKpiMinValue(serializedKpiValueMin); + builder.setKpiMaxValue(serializedKpiValueMax); + + return builder.build(); + } + + public KpiValueRange deserialize(Monitoring.KpiValueRange serializedKpiValueRange) { + final var serializedMinKpiValue = serializedKpiValueRange.getKpiMinValue(); + final var serializedMaxKpiValue = serializedKpiValueRange.getKpiMaxValue(); + + final var minKpiValue = deserialize(serializedMinKpiValue); + final var maxKpiValue = deserialize(serializedMaxKpiValue); + + return new KpiValueRange(minKpiValue, maxKpiValue); + } + + public Monitoring.AlarmDescriptor serialize(AlarmDescriptor alarmDescriptor) { + final var builder = Monitoring.AlarmDescriptor.newBuilder(); + + final var alarmDescription = alarmDescriptor.getAlarmDescription(); + final var name = alarmDescriptor.getName(); + final var kpiId = alarmDescriptor.getKpiId(); + final var kpiValueRange = alarmDescriptor.getKpiValueRange(); + final var timestamp = alarmDescriptor.getTimestamp(); + + final var serializedKpiIdUuid = serializeUuid(kpiId); + final var serializedKpiId = KpiId.newBuilder().setKpiId(serializedKpiIdUuid).build(); + final var serializedKpiValueRange = serialize(kpiValueRange); + + builder.setAlarmDescription(alarmDescription); + builder.setName(name); + builder.setKpiId(serializedKpiId); + builder.setKpiValueRange(serializedKpiValueRange); + builder.setTimestamp(timestamp); + + return builder.build(); + } + + public AlarmDescriptor deserialize(Monitoring.AlarmDescriptor serializedAlarmDescriptor) { + + final var alarmDescription = serializedAlarmDescriptor.getAlarmDescription(); + final var name = serializedAlarmDescriptor.getName(); + final var serializedKpiId = serializedAlarmDescriptor.getKpiId(); + final var serializedKpiValueRange = serializedAlarmDescriptor.getKpiValueRange(); + final var timestamp = serializedAlarmDescriptor.getTimestamp(); + + final var kpiId = deserialize(serializedKpiId); + final var kpiValueRange = deserialize(serializedKpiValueRange); + + return new AlarmDescriptor(alarmDescription, name, kpiId, kpiValueRange, timestamp); + } + + public Monitoring.AlarmResponse serialize(AlarmResponse alarmResponse) { + final var builder = Monitoring.AlarmResponse.newBuilder(); + + final var alarmId = alarmResponse.getAlarmId(); + final var text = alarmResponse.getText(); + final var kpiValue = alarmResponse.getKpiValue(); + + final var serializedAlarmIdUuid = serializeUuid(alarmId); + final var serializedAlarmId = + Monitoring.AlarmID.newBuilder().setAlarmId(serializedAlarmIdUuid).build(); + final var serializedKpiValue = serialize(kpiValue); + + builder.setAlarmId(serializedAlarmId); + builder.setText(text); + builder.setKpiValue(serializedKpiValue); + + return builder.build(); + } + + public AlarmResponse deserialize(Monitoring.AlarmResponse serializedAlarmResponse) { + final var serializedAlarmId = serializedAlarmResponse.getAlarmId().getAlarmId(); + final var text = serializedAlarmResponse.getText(); + final var serializedKpiValue = serializedAlarmResponse.getKpiValue(); + + final var alarmId = deserialize(serializedAlarmId); + final var kpiValue = deserialize(serializedKpiValue); + + return new AlarmResponse(alarmId, text, kpiValue); + } + + public Monitoring.SubsDescriptor serialize(SubsDescriptor subDescriptor) { + final var builder = Monitoring.SubsDescriptor.newBuilder(); + + final var kpiId = subDescriptor.getKpiId(); + final var samplingDurationS = subDescriptor.getSamplingDurationS(); + final var samplingIntervalS = subDescriptor.getSamplingIntervalS(); + final var startDate = subDescriptor.getStartDate(); + final var endDate = subDescriptor.getEndDate(); + + final var serializedKpiIdUuid = serializeUuid(kpiId); + final var serializedKpiId = Monitoring.KpiId.newBuilder().setKpiId(serializedKpiIdUuid).build(); + + builder.setKpiId(serializedKpiId); + builder.setSamplingDurationS(samplingDurationS); + builder.setSamplingIntervalS(samplingIntervalS); + builder.setStartDate(startDate); + builder.setEndDate(endDate); + + return builder.build(); + } + + public SubsDescriptor deserialize(Monitoring.SubsDescriptor serializedSubDescriptor) { + final var serializedKpiId = serializedSubDescriptor.getKpiId(); + final var samplingDurationS = serializedSubDescriptor.getSamplingDurationS(); + final var samplingIntervalS = serializedSubDescriptor.getSamplingIntervalS(); + final var startDate = serializedSubDescriptor.getStartDate(); + final var endDate = serializedSubDescriptor.getEndDate(); + + final var kpiId = deserialize(serializedKpiId); + + return new SubsDescriptor(kpiId, samplingDurationS, samplingIntervalS, startDate, endDate); + } + + public PolicyCondition.PolicyRuleCondition serialize(PolicyRuleCondition policyRuleCondition) { + final var builder = PolicyCondition.PolicyRuleCondition.newBuilder(); + + final var policyRuleConditionKpiId = policyRuleCondition.getKpiId(); + final var numericalOperator = policyRuleCondition.getNumericalOperator(); + final var policyRuleConditionKpiValue = policyRuleCondition.getKpiValue(); + + final var serializedKpiIdUuid = serializeUuid(policyRuleConditionKpiId); + final var serializedKpiId = KpiId.newBuilder().setKpiId(serializedKpiIdUuid).build(); + final var serializedNumericalOperator = serialize(numericalOperator); + final var serializedPolicyRuleConditionKpiValue = serialize(policyRuleConditionKpiValue); + + builder.setKpiId(serializedKpiId); + builder.setNumericalOperator(serializedNumericalOperator); + builder.setKpiValue(serializedPolicyRuleConditionKpiValue); + + return builder.build(); + } + + public PolicyRuleCondition deserialize( + PolicyCondition.PolicyRuleCondition serializedPolicyRuleCondition) { + + final var serializedPolicyRuleConditionKpiId = + serializedPolicyRuleCondition.getKpiId().getKpiId(); + final var serializedNumericalOperator = serializedPolicyRuleCondition.getNumericalOperator(); + final var serializedPolicyRuleConditionKpiValue = serializedPolicyRuleCondition.getKpiValue(); + + final var policyRuleConditionKpiId = deserialize(serializedPolicyRuleConditionKpiId); + final var numericalOperator = deserialize(serializedNumericalOperator); + final var policyRuleConditionKpiValue = deserialize(serializedPolicyRuleConditionKpiValue); + + return new PolicyRuleCondition( + policyRuleConditionKpiId, numericalOperator, policyRuleConditionKpiValue); + } + + public PolicyAction.PolicyRuleActionEnum serialize(PolicyRuleActionEnum policyRuleActionEnum) { + switch (policyRuleActionEnum) { + case POLICY_RULE_ACTION_SET_DEVICE_STATUS: + return PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_SET_DEVICE_STATUS; + case POLICY_RULE_ACTION_ADD_SERVICE_CONFIGRULE: + return PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE; + case POLICY_RULE_ACTION_ADD_SERVICE_CONSTRAINT: + return PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT; + case POLICY_RULE_ACTION_NO_ACTION: + return PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_NO_ACTION; + default: + return PolicyAction.PolicyRuleActionEnum.UNRECOGNIZED; + } + } + + public PolicyRuleActionEnum deserialize( + PolicyAction.PolicyRuleActionEnum serializePolicyRuleActionEnum) { + switch (serializePolicyRuleActionEnum) { + case POLICYRULE_ACTION_SET_DEVICE_STATUS: + return PolicyRuleActionEnum.POLICY_RULE_ACTION_SET_DEVICE_STATUS; + case POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE: + return PolicyRuleActionEnum.POLICY_RULE_ACTION_ADD_SERVICE_CONFIGRULE; + case POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT: + return PolicyRuleActionEnum.POLICY_RULE_ACTION_ADD_SERVICE_CONSTRAINT; + case POLICYRULE_ACTION_NO_ACTION: + case UNRECOGNIZED: + default: + return PolicyRuleActionEnum.POLICY_RULE_ACTION_NO_ACTION; + } + } + + public PolicyAction.PolicyRuleAction serialize(PolicyRuleAction policyRuleAction) { + final var builder = PolicyAction.PolicyRuleAction.newBuilder(); + + final var policyRuleActionEnum = policyRuleAction.getPolicyRuleActionEnum(); + final var policyRuleActionParameters = policyRuleAction.getPolicyRuleActionParameters(); + + final var serializedPolicyRuleActionEnum = serialize(policyRuleActionEnum); + + builder.setAction(serializedPolicyRuleActionEnum); + builder.addAllParameters(policyRuleActionParameters); + + return builder.build(); + } + + public PolicyRuleAction deserialize(PolicyAction.PolicyRuleAction serializedPolicyRuleAction) { + final var serializedPolicyRuleActionEnum = serializedPolicyRuleAction.getAction(); + final var policyRuleActionParameters = serializedPolicyRuleAction.getParametersList(); + + final var policyRuleActionEnum = deserialize(serializedPolicyRuleActionEnum); + + return new PolicyRuleAction(policyRuleActionEnum, policyRuleActionParameters); + } + + public PolicyCondition.BooleanOperator serialize(BooleanOperator booleanOperator) { + switch (booleanOperator) { + case POLICYRULE_CONDITION_BOOLEAN_AND: + return PolicyCondition.BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_AND; + case POLICYRULE_CONDITION_BOOLEAN_OR: + return PolicyCondition.BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR; + case POLICYRULE_CONDITION_BOOLEAN_UNDEFINED: + return PolicyCondition.BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED; + default: + return PolicyCondition.BooleanOperator.UNRECOGNIZED; + } + } + + public BooleanOperator deserialize(PolicyCondition.BooleanOperator serializedBooleanOperator) { + switch (serializedBooleanOperator) { + case POLICYRULE_CONDITION_BOOLEAN_OR: + return BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR; + case POLICYRULE_CONDITION_BOOLEAN_AND: + return BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_AND; + case POLICYRULE_CONDITION_BOOLEAN_UNDEFINED: + case UNRECOGNIZED: + default: + return BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED; + } + } + + public Policy.PolicyRuleBasic serialize(PolicyRuleBasic policyRuleBasic) { + final var builder = Policy.PolicyRuleBasic.newBuilder(); + + 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 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.addAllActionList(serializedPolicyRuleActions); + + return builder.build(); + } + + public PolicyRuleBasic deserialize(Policy.PolicyRuleBasic serializedPolicyRuleBasic) { + 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 policyRuleId = deserialize(serializedPolicyRuleId); + 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); + } + + public Policy.PolicyRuleService serialize(PolicyRuleService policyRuleService) { + final var builder = Policy.PolicyRuleService.newBuilder(); + + final var policyRuleBasic = policyRuleService.getPolicyRuleBasic(); + final var policyRuleServiceId = policyRuleService.getServiceId(); + final var policyRuleDeviceIds = policyRuleService.getDeviceIds(); + + final var serializedPolicyRuleBasic = serialize(policyRuleBasic); + final var serializedPolicyRuleServiceId = serialize(policyRuleServiceId); + final var serializedPolicyRuleDeviceIds = + policyRuleDeviceIds.stream().map(this::serializeDeviceId).collect(Collectors.toList()); + + builder.setPolicyRuleBasic(serializedPolicyRuleBasic); + builder.setServiceId(serializedPolicyRuleServiceId); + builder.addAllDeviceList(serializedPolicyRuleDeviceIds); + + return builder.build(); + } + + public PolicyRuleService deserialize(Policy.PolicyRuleService serializedPolicyRuleService) { + final var serializedPolicyRuleBasic = serializedPolicyRuleService.getPolicyRuleBasic(); + final var serializedPolicyRuleServiceId = serializedPolicyRuleService.getServiceId(); + final var serializedPolicyRuleDeviceIds = serializedPolicyRuleService.getDeviceListList(); + + final var policyRuleBasic = deserialize(serializedPolicyRuleBasic); + final var policyRuleServiceId = deserialize(serializedPolicyRuleServiceId); + final var policyRuleDeviceIds = + serializedPolicyRuleDeviceIds.stream().map(this::deserialize).collect(Collectors.toList()); + + return new PolicyRuleService(policyRuleBasic, policyRuleServiceId, policyRuleDeviceIds); + } + + public Policy.PolicyRuleDevice serialize(PolicyRuleDevice policyRuleDevice) { + final var builder = Policy.PolicyRuleDevice.newBuilder(); + + final var policyRuleBasic = policyRuleDevice.getPolicyRuleBasic(); + final var policyRuleDeviceIds = policyRuleDevice.getDeviceIds(); + + final var serializedPolicyRuleBasic = serialize(policyRuleBasic); + final var serializedPolicyRuleDeviceIds = + policyRuleDeviceIds.stream().map(this::serializeDeviceId).collect(Collectors.toList()); + + builder.setPolicyRuleBasic(serializedPolicyRuleBasic); + builder.addAllDeviceList(serializedPolicyRuleDeviceIds); + + return builder.build(); + } + + public PolicyRuleDevice deserialize(Policy.PolicyRuleDevice serializedPolicyRuleDevice) { + final var serializedPolicyRuleBasic = serializedPolicyRuleDevice.getPolicyRuleBasic(); + final var serializedPolicyRuleDeviceIds = serializedPolicyRuleDevice.getDeviceListList(); + + final var policyRuleBasic = deserialize(serializedPolicyRuleBasic); + final var policyRuleDeviceIds = + serializedPolicyRuleDeviceIds.stream().map(this::deserialize).collect(Collectors.toList()); + + return new PolicyRuleDevice(policyRuleBasic, policyRuleDeviceIds); + } + + public KpiId serializeKpiId(String kpiId) { + final var builder = Monitoring.KpiId.newBuilder(); + + final var serializedKpiIdUuid = serializeUuid(kpiId); + builder.setKpiId(serializedKpiIdUuid); + + return builder.build(); + } + + public String deserialize(KpiId serializedKpiId) { + final var serializedKpiIdUuid = serializedKpiId.getKpiId(); + + return deserialize(serializedKpiIdUuid); + } + + public Monitoring.Kpi serialize(Kpi kpi) { + final var builder = Monitoring.Kpi.newBuilder(); + + final var kpiId = kpi.getKpiId(); + final var timestamp = kpi.getTimestamp(); + final var kpiValue = kpi.getKpiValue(); + + final var serializedKpiId = serializeKpiId(kpiId); + final var serializedKpiValue = serialize(kpiValue); + + builder.setKpiId(serializedKpiId); + builder.setTimestamp(timestamp); + builder.setKpiValue(serializedKpiValue); + + return builder.build(); + } + + public Kpi deserialize(Monitoring.Kpi serializedKpi) { + + final var serializedKpiId = serializedKpi.getKpiId(); + final var timestamp = serializedKpi.getTimestamp(); + final var serializedKpiValue = serializedKpi.getKpiValue(); + + final var kpiId = deserialize(serializedKpiId); + final var kpiValue = deserialize(serializedKpiValue); + + return new Kpi(kpiId, timestamp, kpiValue); + } + + public Monitoring.KpiDescriptor serialize(KpiDescriptor kpiDescriptor) { + final var builder = Monitoring.KpiDescriptor.newBuilder(); + + final var kpiDescriptorDescription = kpiDescriptor.getKpiDescription(); + final var kpiDescriptorKpiSampleType = kpiDescriptor.getKpiSampleType(); + final var kpiDescriptorDeviceId = kpiDescriptor.getDeviceId(); + final var kpiDescriptorEndPointId = kpiDescriptor.getEndPointId(); + final var kpiDescriptorServiceId = kpiDescriptor.getServiceId(); + final var kpiDescriptorSliceId = kpiDescriptor.getSliceId(); + + final var serializedKpiDescriptorKpiSampleType = serialize(kpiDescriptorKpiSampleType); + final var serializedKpiDescriptorDeviceId = serializeDeviceId(kpiDescriptorDeviceId); + final var serializedKpiDescriptorEndPointId = serialize(kpiDescriptorEndPointId); + final var serializedKpiDescriptorServiceId = serialize(kpiDescriptorServiceId); + final var serializedKpiDescriptorSliceId = serialize(kpiDescriptorSliceId); + + builder.setKpiDescription(kpiDescriptorDescription); + builder.setKpiSampleType(serializedKpiDescriptorKpiSampleType); + builder.setDeviceId(serializedKpiDescriptorDeviceId); + builder.setEndpointId(serializedKpiDescriptorEndPointId); + builder.setServiceId(serializedKpiDescriptorServiceId); + builder.setSliceId(serializedKpiDescriptorSliceId); + + return builder.build(); + } + + public KpiDescriptor deserialize(Monitoring.KpiDescriptor serializedKpiDescriptor) { + + final var serializedKpiDescriptorDescription = serializedKpiDescriptor.getKpiDescription(); + final var serializedKpiDescriptorKpiSampleType = serializedKpiDescriptor.getKpiSampleType(); + final var serializedKpiDescriptorDeviceId = serializedKpiDescriptor.getDeviceId(); + final var serializedKpiDescriptorEndPointId = serializedKpiDescriptor.getEndpointId(); + final var serializedKpiDescriptorServiceId = serializedKpiDescriptor.getServiceId(); + final var serializedKpiDescriptorSLiceId = serializedKpiDescriptor.getSliceId(); + + final var kpiSampleType = deserialize(serializedKpiDescriptorKpiSampleType); + final var deviceId = deserialize(serializedKpiDescriptorDeviceId); + final var endPointId = deserialize(serializedKpiDescriptorEndPointId); + final var serviceId = deserialize(serializedKpiDescriptorServiceId); + final var sliceId = deserialize(serializedKpiDescriptorSLiceId); + + return new KpiDescriptor( + serializedKpiDescriptorDescription, + kpiSampleType, + deviceId, + endPointId, + serviceId, + sliceId); + } + + public ContextOuterClass.DeviceConfig serialize(DeviceConfig deviceConfig) { + final var builder = ContextOuterClass.DeviceConfig.newBuilder(); + + final var serializedConfigRules = + deviceConfig.getConfigRules().stream().map(this::serialize).collect(Collectors.toList()); + builder.addAllConfigRules(serializedConfigRules); + + return builder.build(); + } + + public DeviceConfig deserialize(ContextOuterClass.DeviceConfig deviceConfig) { + final var configRules = + deviceConfig.getConfigRulesList().stream() + .map(this::deserialize) + .collect(Collectors.toList()); + + return new DeviceConfig(configRules); + } + + public ContextOuterClass.DeviceOperationalStatusEnum serialize(DeviceOperationalStatus opStatus) { + switch (opStatus) { + case ENABLED: + return DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED; + case DISABLED: + return DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_DISABLED; + case UNDEFINED: + default: + return DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_UNDEFINED; + } + } + + public DeviceOperationalStatus deserialize( + ContextOuterClass.DeviceOperationalStatusEnum opStatus) { + switch (opStatus) { + case DEVICEOPERATIONALSTATUS_ENABLED: + return DeviceOperationalStatus.ENABLED; + case DEVICEOPERATIONALSTATUS_DISABLED: + return DeviceOperationalStatus.DISABLED; + case DEVICEOPERATIONALSTATUS_UNDEFINED: + case UNRECOGNIZED: + default: + return DeviceOperationalStatus.UNDEFINED; + } + } + + public ContextOuterClass.DeviceDriverEnum serialize(DeviceDriverEnum deviceDriverEnum) { + switch (deviceDriverEnum) { + case OPENCONFIG: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG; + case TRANSPORT_API: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_TRANSPORT_API; + case P4: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_P4; + case IETF_NETWORK_TOPOLOGY: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_IETF_NETWORK_TOPOLOGY; + case ONF_TR_352: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_ONF_TR_352; + case UNDEFINED: + default: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_UNDEFINED; + } + } + + public DeviceDriverEnum deserialize( + ContextOuterClass.DeviceDriverEnum serializedDeviceDriverEnum) { + switch (serializedDeviceDriverEnum) { + case DEVICEDRIVER_OPENCONFIG: + return DeviceDriverEnum.OPENCONFIG; + case DEVICEDRIVER_TRANSPORT_API: + return DeviceDriverEnum.TRANSPORT_API; + case DEVICEDRIVER_P4: + return DeviceDriverEnum.P4; + case DEVICEDRIVER_IETF_NETWORK_TOPOLOGY: + return DeviceDriverEnum.IETF_NETWORK_TOPOLOGY; + case DEVICEDRIVER_ONF_TR_352: + return DeviceDriverEnum.ONF_TR_352; + case DEVICEDRIVER_UNDEFINED: + case UNRECOGNIZED: + default: + return DeviceDriverEnum.UNDEFINED; + } + } + + public ContextOuterClass.EndPoint serialize(EndPoint endPoint) { + final var builder = ContextOuterClass.EndPoint.newBuilder(); + + final var endPointId = endPoint.getEndPointId(); + final var endPointType = endPoint.getEndPointType(); + final var kpiSampleTypes = endPoint.getKpiSampleTypes(); + final var endPointLocation = endPoint.getEndPointLocation(); + + final var serializedEndPointId = serialize(endPointId); + final var serializedKpiSampleTypes = + kpiSampleTypes.stream().map(this::serialize).collect(Collectors.toList()); + final var serializedEndPointLocation = serialize(endPointLocation); + + builder.setEndpointId(serializedEndPointId); + builder.setEndpointType(endPointType); + builder.addAllKpiSampleTypes(serializedKpiSampleTypes); + builder.setEndpointLocation(serializedEndPointLocation); + + return builder.build(); + } + + public EndPoint deserialize(ContextOuterClass.EndPoint serializedEndPoint) { + final var serializedEndPointId = serializedEndPoint.getEndpointId(); + final var endPointType = serializedEndPoint.getEndpointType(); + final var serializedKpiSampleTypes = serializedEndPoint.getKpiSampleTypesList(); + final var serializedEndPointLocation = serializedEndPoint.getEndpointLocation(); + + final var endPointId = deserialize(serializedEndPointId); + final var kpiSampleTypes = + serializedKpiSampleTypes.stream().map(this::deserialize).collect(Collectors.toList()); + final var endPointLocation = deserialize(serializedEndPointLocation); + + return new EndPoint(endPointId, endPointType, kpiSampleTypes, endPointLocation); + } + + public ContextOuterClass.Device serialize(Device device) { + final var builder = ContextOuterClass.Device.newBuilder(); + + final var deviceIdUuid = serializeUuid(device.getDeviceId()); + final var deviceId = DeviceId.newBuilder().setDeviceUuid(deviceIdUuid); + final var deviceType = device.getDeviceType(); + final var deviceConfig = device.getDeviceConfig(); + final var deviceOperationalStatus = device.getDeviceOperationalStatus(); + final var deviceDrivers = device.getDeviceDrivers(); + final var deviceEndPoints = device.getEndPoints(); + + final var serializedDeviceConfig = serialize(deviceConfig); + final var serializedDeviceOperationalStatus = serialize(deviceOperationalStatus); + final var serializedDeviceDrivers = + deviceDrivers.stream().map(this::serialize).collect(Collectors.toList()); + final var serializedDeviceEndPoints = + deviceEndPoints.stream().map(this::serialize).collect(Collectors.toList()); + + builder.setDeviceId(deviceId); + builder.setDeviceType(deviceType); + builder.setDeviceConfig(serializedDeviceConfig); + builder.setDeviceOperationalStatus(serializedDeviceOperationalStatus); + builder.addAllDeviceDrivers(serializedDeviceDrivers); + builder.addAllDeviceEndpoints(serializedDeviceEndPoints); + + return builder.build(); + } + + public Device deserialize(ContextOuterClass.Device device) { + + final var serializedDeviceId = device.getDeviceId(); + final var deviceType = device.getDeviceType(); + final var serializedDeviceConfig = device.getDeviceConfig(); + final var serializedDeviceOperationalStatus = device.getDeviceOperationalStatus(); + final var serializedDeviceDrivers = device.getDeviceDriversList(); + final var serializedDeviceEndPoints = device.getDeviceEndpointsList(); + + final var deviceId = deserialize(serializedDeviceId); + final var deviceConfig = deserialize(serializedDeviceConfig); + final var deviceOperationalStatus = deserialize(serializedDeviceOperationalStatus); + final var deviceDrivers = + serializedDeviceDrivers.stream().map(this::deserialize).collect(Collectors.toList()); + final var deviceEndPoints = + serializedDeviceEndPoints.stream().map(this::deserialize).collect(Collectors.toList()); + + return new Device( + deviceId, + deviceType, + deviceConfig, + deviceOperationalStatus, + deviceDrivers, + deviceEndPoints); + } + + public Uuid serializeUuid(String uuid) { + return Uuid.newBuilder().setUuid(uuid).build(); + } + + public String deserialize(Uuid uuid) { + return uuid.getUuid(); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/acl/AclAction.java b/src/policy/src/main/java/eu/teraflow/policy/acl/AclAction.java new file mode 100644 index 0000000000000000000000000000000000000000..66771968ceb5525558bebfd95c3e13af24b4d2dd --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/acl/AclAction.java @@ -0,0 +1,43 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.acl; + +public class AclAction { + + private final AclForwardActionEnum aclForwardActionEnum; + private final AclLogActionEnum aclLogActionEnum; + + public AclAction(AclForwardActionEnum aclForwardActionEnum, AclLogActionEnum aclLogActionEnum) { + this.aclForwardActionEnum = aclForwardActionEnum; + this.aclLogActionEnum = aclLogActionEnum; + } + + public AclForwardActionEnum getAclForwardActionEnum() { + return aclForwardActionEnum; + } + + public AclLogActionEnum getAclLogActionEnum() { + return aclLogActionEnum; + } + + @Override + public String toString() { + return String.format( + "%s:{aclForwardActionEnum:\"%s\", aclLogActionEnum:\"%s\"}", + getClass().getSimpleName(), aclForwardActionEnum.toString(), aclLogActionEnum.toString()); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/acl/AclEntry.java b/src/policy/src/main/java/eu/teraflow/policy/acl/AclEntry.java new file mode 100644 index 0000000000000000000000000000000000000000..a85aff9e6c28b1a63e28d62de22e01e354b47ce3 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/acl/AclEntry.java @@ -0,0 +1,55 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.acl; + +public class AclEntry { + + private final int sequenceId; + private final String description; + private final AclMatch match; + private final AclAction action; + + public AclEntry(int sequenceId, String description, AclMatch match, AclAction action) { + this.sequenceId = sequenceId; + this.description = description; + this.match = match; + this.action = action; + } + + public int getSequenceId() { + return sequenceId; + } + + public String getDescription() { + return description; + } + + public AclMatch getMatch() { + return match; + } + + public AclAction getAction() { + return action; + } + + @Override + public String toString() { + return String.format( + "%s:{sequenceId:\"%d\", description:\"%s\", %s, %s}", + getClass().getSimpleName(), sequenceId, description, match, action); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/acl/AclForwardActionEnum.java b/src/policy/src/main/java/eu/teraflow/policy/acl/AclForwardActionEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..be2a896b48a77543232bdd41685d9d0ed8290711 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/acl/AclForwardActionEnum.java @@ -0,0 +1,24 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.acl; + +public enum AclForwardActionEnum { + UNDEFINED, + DROP, + ACCEPT, + REJECT, +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/acl/AclLogActionEnum.java b/src/policy/src/main/java/eu/teraflow/policy/acl/AclLogActionEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..e0ff362e7154307f934ed0afbfcfa77adcd49acb --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/acl/AclLogActionEnum.java @@ -0,0 +1,23 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.acl; + +public enum AclLogActionEnum { + UNDEFINED, + NO_LOG, + SYSLOG +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/acl/AclMatch.java b/src/policy/src/main/java/eu/teraflow/policy/acl/AclMatch.java new file mode 100644 index 0000000000000000000000000000000000000000..89528a58dde8d39c6bc777fe9220dce85c855a65 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/acl/AclMatch.java @@ -0,0 +1,95 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.acl; + +public class AclMatch { + + private final int dscp; + private final int protocol; + private final String srcAddress; + private final String dstAddress; + private final int srcPort; + private final int dstPort; + private final int startMplsLabel; + private final int endMplsLabel; + + public AclMatch( + int dscp, + int protocol, + String srcAddress, + String dstAddress, + int srcPort, + int dstPort, + int startMplsLabel, + int endMplsLabel) { + this.dscp = dscp; + this.protocol = protocol; + this.srcAddress = srcAddress; + this.dstAddress = dstAddress; + this.srcPort = srcPort; + this.dstPort = dstPort; + this.startMplsLabel = startMplsLabel; + this.endMplsLabel = endMplsLabel; + } + + public int getDscp() { + return dscp; + } + + public int getProtocol() { + return protocol; + } + + public String getSrcAddress() { + return srcAddress; + } + + public String getDstAddress() { + return dstAddress; + } + + public int getSrcPort() { + return srcPort; + } + + public int getDstPort() { + return dstPort; + } + + public int getStartMplsLabel() { + return startMplsLabel; + } + + public int getEndMplsLabel() { + return endMplsLabel; + } + + @Override + public String toString() { + return String.format( + "%s:{dscp:\"%d\", protocol:\"%d\", srcAddress:\"%s\", dstAddress:\"%s\", srcPort:\"%d\", dstPort:\"%d\", startMplsLabel:\"%d\", endMplsLabel:\"%d\"}", + getClass().getSimpleName(), + dscp, + protocol, + srcAddress, + dstAddress, + srcPort, + dstPort, + startMplsLabel, + endMplsLabel); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/acl/AclRuleSet.java b/src/policy/src/main/java/eu/teraflow/policy/acl/AclRuleSet.java new file mode 100644 index 0000000000000000000000000000000000000000..4eec8e7a31fb8bad151f6ad9f7704a8246d78d1e --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/acl/AclRuleSet.java @@ -0,0 +1,74 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.acl; + +import eu.teraflow.policy.common.Util; +import java.util.List; + +public class AclRuleSet { + + private final String name; + private final AclRuleTypeEnum type; + private final String description; + private final String userId; + private final List entries; + + public AclRuleSet( + String name, + AclRuleTypeEnum type, + String description, + String userId, + List entries) { + this.name = name; + this.type = type; + this.description = description; + this.userId = userId; + this.entries = entries; + } + + public String getName() { + return name; + } + + public AclRuleTypeEnum getType() { + return type; + } + + public String getDescription() { + return description; + } + + public String getUserId() { + return userId; + } + + public List getEntries() { + return entries; + } + + @Override + public String toString() { + return String.format( + "%s:{name:\"%s\", type:\"%s\", description:\"%s\", userId:\"%s\", [%s]}", + getClass().getSimpleName(), + name, + type.toString(), + description, + userId, + Util.toString(entries)); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/acl/AclRuleTypeEnum.java b/src/policy/src/main/java/eu/teraflow/policy/acl/AclRuleTypeEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..0dc11277140d5d092cbc3d4dd0b23f21ce855e65 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/acl/AclRuleTypeEnum.java @@ -0,0 +1,26 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.acl; + +public enum AclRuleTypeEnum { + UNDEFINED, + IPV4, + IPV6, + L2, + MPLS, + MIXED +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/ContextGateway.java b/src/policy/src/main/java/eu/teraflow/policy/context/ContextGateway.java new file mode 100644 index 0000000000000000000000000000000000000000..1f1c2446aeeec7e2dc62d8732187255df8c477a1 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/ContextGateway.java @@ -0,0 +1,38 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context; + +import eu.teraflow.policy.context.model.Device; +import eu.teraflow.policy.context.model.Service; +import eu.teraflow.policy.context.model.ServiceId; +import eu.teraflow.policy.model.PolicyRuleBasic; +import io.smallrye.mutiny.Uni; + +public interface ContextGateway { + + // Context related methods + Uni getService(ServiceId serviceId); + + Uni setService(Service service); + + Uni getDevice(String deviceId); + + // Context-policy related methods + Uni getPolicyRule(String policyRuleId); + + Uni setPolicyRule(PolicyRuleBasic policyRuleBasic); +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/ContextGatewayImpl.java b/src/policy/src/main/java/eu/teraflow/policy/context/ContextGatewayImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..3af300d4914ef589d380c32a3389383c5dd37c0d --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/ContextGatewayImpl.java @@ -0,0 +1,99 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context; + +import context.MutinyContextServiceGrpc.MutinyContextServiceStub; +import context_policy.MutinyContextPolicyServiceGrpc.MutinyContextPolicyServiceStub; +import eu.teraflow.policy.Serializer; +import eu.teraflow.policy.context.model.Device; +import eu.teraflow.policy.context.model.Service; +import eu.teraflow.policy.context.model.ServiceId; +import eu.teraflow.policy.model.PolicyRuleBasic; +import io.quarkus.grpc.GrpcClient; +import io.smallrye.mutiny.Uni; +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; + +@ApplicationScoped +public class ContextGatewayImpl implements ContextGateway { + + @GrpcClient("context") + MutinyContextServiceStub streamingDelegateContext; + + // TODO remove client when RPCs declared in context-policy.proto are moved in context.proto + // and use streamingDelegateContext for all methods + @GrpcClient("context_policy") + MutinyContextPolicyServiceStub streamingDelegateContextPolicy; + + private final Serializer serializer; + + @Inject + public ContextGatewayImpl(Serializer serializer) { + this.serializer = serializer; + } + + @Override + public Uni getService(ServiceId serviceId) { + + final var serializedServiceId = serializer.serialize(serviceId); + + return streamingDelegateContext + .getService(serializedServiceId) + .onItem() + .transform(serializer::deserialize); + } + + @Override + public Uni setService(Service service) { + final var serializedService = serializer.serialize(service); + + return streamingDelegateContext + .setService(serializedService) + .onItem() + .transform(serializer::deserialize); + } + + @Override + public Uni getDevice(String deviceId) { + final var serializedDeviceId = serializer.serializeDeviceId(deviceId); + + return streamingDelegateContext + .getDevice(serializedDeviceId) + .onItem() + .transform(serializer::deserialize); + } + + @Override + public Uni getPolicyRule(String policyRuleId) { + final var serializedPolicyRuleId = serializer.serializePolicyRuleId(policyRuleId); + + return streamingDelegateContextPolicy + .getPolicyRule(serializedPolicyRuleId) + .onItem() + .transform(serializer::deserialize); + } + + @Override + public Uni setPolicyRule(PolicyRuleBasic policyRuleBasic) { + final var serializedPolicyRuleBasic = serializer.serialize(policyRuleBasic); + + return streamingDelegateContextPolicy + .setPolicyRule(serializedPolicyRuleBasic) + .onItem() + .transform(serializer::deserialize); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/ContextService.java b/src/policy/src/main/java/eu/teraflow/policy/context/ContextService.java index 4d2b317cb3e76b043f919fa7112147a6bda8697e..133318a05bad7f8a2fd4b7d2ae423e1375d34287 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/context/ContextService.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/ContextService.java @@ -16,4 +16,21 @@ package eu.teraflow.policy.context; -public interface ContextService {} +import eu.teraflow.policy.context.model.Device; +import eu.teraflow.policy.context.model.Service; +import eu.teraflow.policy.context.model.ServiceId; +import eu.teraflow.policy.model.PolicyRuleBasic; +import io.smallrye.mutiny.Uni; + +public interface ContextService { + + Uni getService(ServiceId serviceId); + + Uni setService(Service service); + + Uni getDevice(String deviceId); + + Uni getPolicyRule(String policyRuleId); + + Uni setPolicyRule(PolicyRuleBasic policyRuleBasic); +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/ContextServiceImpl.java b/src/policy/src/main/java/eu/teraflow/policy/context/ContextServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..bb5c8d61bd5f73375b531f43bcfb744dc5bf2c20 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/ContextServiceImpl.java @@ -0,0 +1,61 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context; + +import eu.teraflow.policy.context.model.Device; +import eu.teraflow.policy.context.model.Service; +import eu.teraflow.policy.context.model.ServiceId; +import eu.teraflow.policy.model.PolicyRuleBasic; +import io.smallrye.mutiny.Uni; +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; + +@ApplicationScoped +public class ContextServiceImpl implements ContextService { + + private final ContextGateway contextGateway; + + @Inject + public ContextServiceImpl(ContextGateway contextGateway) { + this.contextGateway = contextGateway; + } + + @Override + public Uni getService(ServiceId serviceId) { + return contextGateway.getService(serviceId); + } + + @Override + public Uni setService(Service service) { + return contextGateway.setService(service); + } + + @Override + public Uni getDevice(String deviceId) { + return contextGateway.getDevice(deviceId); + } + + @Override + public Uni getPolicyRule(String policyRuleId) { + return contextGateway.getPolicyRule(policyRuleId); + } + + @Override + public Uni setPolicyRule(PolicyRuleBasic policyRuleBasic) { + return contextGateway.setPolicyRule(policyRuleBasic); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRule.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRule.java index 906acf1a3ff121584321551de6baf260f0bb7cf3..38b2aa29bba6e43c736f0d9abd9b3243c5470d56 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRule.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRule.java @@ -18,32 +18,26 @@ package eu.teraflow.policy.context.model; public class ConfigRule { - private final ConfigActionEnum action; - private final String resourceKey; - private final String resourceValue; + private final ConfigActionEnum configActionEnum; + private final ConfigRuleType configRuleType; - public ConfigRule(ConfigActionEnum action, String resourceKey, String resourceValue) { - this.action = action; - this.resourceKey = resourceKey; - this.resourceValue = resourceValue; + public ConfigRule(ConfigActionEnum configActionEnum, ConfigRuleType configRuleType) { + this.configActionEnum = configActionEnum; + this.configRuleType = configRuleType; } - public ConfigActionEnum getAction() { - return action; + public ConfigActionEnum getConfigActionEnum() { + return configActionEnum; } - public String getResourceKey() { - return resourceKey; - } - - public String getResourceValue() { - return resourceValue; + public ConfigRuleType getConfigRuleType() { + return configRuleType; } @Override public String toString() { return String.format( - "%s:{action:\"%s\", resourceKey:\"%s\", resourceValue:\"%s\"}", - getClass().getSimpleName(), action.toString(), resourceKey, resourceValue); + "%s:{configActionEnum:\"%s\", %s}", + getClass().getSimpleName(), configActionEnum.toString(), configRuleType); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleAcl.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleAcl.java new file mode 100644 index 0000000000000000000000000000000000000000..ab05331c76f7daa178bd748cfb62dd1b7c3e915a --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleAcl.java @@ -0,0 +1,43 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +import eu.teraflow.policy.acl.AclRuleSet; + +public class ConfigRuleAcl { + + private final EndPointId endPointId; + private final AclRuleSet ruleSet; + + public ConfigRuleAcl(EndPointId endPointId, AclRuleSet ruleSet) { + this.endPointId = endPointId; + this.ruleSet = ruleSet; + } + + public EndPointId getEndPointId() { + return endPointId; + } + + public AclRuleSet getRuleSet() { + return ruleSet; + } + + @Override + public String toString() { + return String.format("%s:{%s, %s}", getClass().getSimpleName(), endPointId, ruleSet); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleCustom.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleCustom.java new file mode 100644 index 0000000000000000000000000000000000000000..0046286179c4c20425bd028ede2465d2604d534f --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleCustom.java @@ -0,0 +1,43 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConfigRuleCustom { + + private final String resourceKey; + private final String resourceValue; + + public ConfigRuleCustom(String resourceKey, String resourceValue) { + this.resourceKey = resourceKey; + this.resourceValue = resourceValue; + } + + public String getResourceKey() { + return resourceKey; + } + + public String getResourceValue() { + return resourceValue; + } + + @Override + public String toString() { + return String.format( + "%s:{resourceKey:\"%s\", resourceValue:\"%s\"}", + getClass().getSimpleName(), resourceKey, resourceValue); + } +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleType.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleType.java similarity index 93% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleType.java rename to src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleType.java index 29febff63270107cc2a5dd8904b161f046762067..6b7daa12893fc75fdb797ec5e20e2300850ec146 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/ConfigRuleType.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleType.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.policy.context.model; public interface ConfigRuleType { diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleTypeAcl.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleTypeAcl.java new file mode 100644 index 0000000000000000000000000000000000000000..3a93cc7f33f1e60f9d36b6fae333556339298207 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleTypeAcl.java @@ -0,0 +1,36 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConfigRuleTypeAcl implements ConfigRuleType { + + private final ConfigRuleAcl configRuleAcl; + + public ConfigRuleTypeAcl(ConfigRuleAcl configRuleAcl) { + this.configRuleAcl = configRuleAcl; + } + + @Override + public ConfigRuleAcl getConfigRuleType() { + return this.configRuleAcl; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), configRuleAcl); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleTypeCustom.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleTypeCustom.java new file mode 100644 index 0000000000000000000000000000000000000000..c98df91c4027f9ea0089261504ffeeda23d56aea --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConfigRuleTypeCustom.java @@ -0,0 +1,36 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConfigRuleTypeCustom implements ConfigRuleType { + + private final ConfigRuleCustom configRuleCustom; + + public ConfigRuleTypeCustom(ConfigRuleCustom configRuleCustom) { + this.configRuleCustom = configRuleCustom; + } + + @Override + public ConfigRuleCustom getConfigRuleType() { + return this.configRuleCustom; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), configRuleCustom); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/Constraint.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/Constraint.java index edc5c0df7b789f97475d934bacb87b47792d2b01..a7097bc0bfe9ac72e1dd74ed272559ad8bc3e231 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/context/model/Constraint.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/Constraint.java @@ -18,26 +18,18 @@ package eu.teraflow.policy.context.model; public class Constraint { - private final String constraintType; - private final String constraintValue; + private final ConstraintType constraintType; - public Constraint(String constraintType, String constraintValue) { + public Constraint(ConstraintType constraintType) { this.constraintType = constraintType; - this.constraintValue = constraintValue; } - public String getConstraintType() { + public ConstraintType getConstraintType() { return constraintType; } - public String getConstraintValue() { - return constraintValue; - } - @Override public String toString() { - return String.format( - "%s:{constraintType:\"%s\", constraintValue:\"%s\"}", - getClass().getSimpleName(), constraintType, constraintValue); + return String.format("%s:{%s}", getClass().getSimpleName(), constraintType); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintCustom.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintCustom.java new file mode 100644 index 0000000000000000000000000000000000000000..3fe3443cca7315613784781040d4be7a988daa54 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintCustom.java @@ -0,0 +1,43 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintCustom { + + private final String constraintType; + private final String constraintValue; + + public ConstraintCustom(String constraintType, String constraintValue) { + this.constraintType = constraintType; + this.constraintValue = constraintValue; + } + + public String getConstraintType() { + return constraintType; + } + + public String getConstraintValue() { + return constraintValue; + } + + @Override + public String toString() { + return String.format( + "%s:{constraintType:\"%s\", constraintValue:\"%s\"}", + getClass().getSimpleName(), constraintType, constraintValue); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintEndPointLocation.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintEndPointLocation.java new file mode 100644 index 0000000000000000000000000000000000000000..12e6ec41c3095529f9807b5449309d966814e3c1 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintEndPointLocation.java @@ -0,0 +1,41 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintEndPointLocation { + + private final EndPointId endPointId; + private final Location location; + + public ConstraintEndPointLocation(EndPointId endPointId, Location location) { + this.endPointId = endPointId; + this.location = location; + } + + public EndPointId getEndPointId() { + return endPointId; + } + + public Location getLocation() { + return location; + } + + @Override + public String toString() { + return String.format("%s:{%s, %s}", getClass().getSimpleName(), endPointId, location); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSchedule.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSchedule.java new file mode 100644 index 0000000000000000000000000000000000000000..b374c022cf85c27f191e3d2607ed13b8078241ba --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSchedule.java @@ -0,0 +1,43 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintSchedule { + + private final float startTimestamp; + private final float durationDays; + + public ConstraintSchedule(float startTimestamp, float durationDays) { + this.startTimestamp = startTimestamp; + this.durationDays = durationDays; + } + + public float getStartTimestamp() { + return startTimestamp; + } + + public float getDurationDays() { + return durationDays; + } + + @Override + public String toString() { + return String.format( + "%s:{startTimestamp:\"%f\", durationDays:\"%f\"}", + getClass().getSimpleName(), startTimestamp, durationDays); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaAvailability.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaAvailability.java new file mode 100644 index 0000000000000000000000000000000000000000..c8a69f3120eb183f5d0b34c73d9653afe1bd7ce3 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaAvailability.java @@ -0,0 +1,43 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintSlaAvailability { + + private final int numDisjointPaths; + private final boolean allActive; + + public ConstraintSlaAvailability(int numDisjointPaths, boolean allActive) { + this.numDisjointPaths = numDisjointPaths; + this.allActive = allActive; + } + + public int getNumDisjointPaths() { + return numDisjointPaths; + } + + public boolean isAllActive() { + return allActive; + } + + @Override + public String toString() { + return String.format( + "%s:{numDisjointPaths:%d, allActive:%b}", + getClass().getSimpleName(), numDisjointPaths, allActive); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaCapacity.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaCapacity.java new file mode 100644 index 0000000000000000000000000000000000000000..3d3f9a25b6dd7eae7dd27a846549b325b72b6cd2 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaCapacity.java @@ -0,0 +1,35 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintSlaCapacity { + + private final float capacityGbps; + + public ConstraintSlaCapacity(float capacityGbps) { + this.capacityGbps = capacityGbps; + } + + public float getCapacityGbps() { + return capacityGbps; + } + + @Override + public String toString() { + return String.format("%s:{capacityGbps:\"%f\"}", getClass().getSimpleName(), capacityGbps); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaIsolationLevel.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaIsolationLevel.java new file mode 100644 index 0000000000000000000000000000000000000000..adb55bff458c49c9189cd10b19d905dd865758d7 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaIsolationLevel.java @@ -0,0 +1,37 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintSlaIsolationLevel { + + private final IsolationLevelEnum isolationLevelEnum; + + public ConstraintSlaIsolationLevel(IsolationLevelEnum isolationLevelEnum) { + this.isolationLevelEnum = isolationLevelEnum; + } + + public IsolationLevelEnum getIsolationLevelEnum() { + return isolationLevelEnum; + } + + @Override + public String toString() { + return String.format( + "%s:{isolationLevelEnum:\"%s\"}", + getClass().getSimpleName(), isolationLevelEnum.toString()); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaLatency.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaLatency.java new file mode 100644 index 0000000000000000000000000000000000000000..0f0c8fe20816394b450bdcd092206b3d7c257b89 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintSlaLatency.java @@ -0,0 +1,35 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintSlaLatency { + + private final float e2eLatencyMs; + + public ConstraintSlaLatency(float e2eLatencyMs) { + this.e2eLatencyMs = e2eLatencyMs; + } + + public float getE2eLatencyMs() { + return e2eLatencyMs; + } + + @Override + public String toString() { + return String.format("%s:{e2eLatencyMs:\"%f\"}", getClass().getSimpleName(), e2eLatencyMs); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintType.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintType.java new file mode 100644 index 0000000000000000000000000000000000000000..e582859e6858a531e3a2c918deaed4d12d8618e4 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintType.java @@ -0,0 +1,22 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public interface ConstraintType { + + public T getConstraintType(); +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeCustom.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeCustom.java new file mode 100644 index 0000000000000000000000000000000000000000..94d0052a9ee4faef3c65856f59c5d1b7e8448b99 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeCustom.java @@ -0,0 +1,36 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintTypeCustom implements ConstraintType { + + private final ConstraintCustom constraintCustom; + + public ConstraintTypeCustom(ConstraintCustom constraintCustom) { + this.constraintCustom = constraintCustom; + } + + @Override + public ConstraintCustom getConstraintType() { + return this.constraintCustom; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), constraintCustom); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeEndPointLocation.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeEndPointLocation.java new file mode 100644 index 0000000000000000000000000000000000000000..197bea58a6c9471a0ff1d50815cbb5ca75db9392 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeEndPointLocation.java @@ -0,0 +1,35 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintTypeEndPointLocation implements ConstraintType { + private final ConstraintEndPointLocation constraintEndPointLocation; + + public ConstraintTypeEndPointLocation(ConstraintEndPointLocation constraintEndPointLocation) { + this.constraintEndPointLocation = constraintEndPointLocation; + } + + @Override + public ConstraintEndPointLocation getConstraintType() { + return this.constraintEndPointLocation; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), constraintEndPointLocation); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSchedule.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSchedule.java new file mode 100644 index 0000000000000000000000000000000000000000..20169427ac81d5d631cf92faf33b13f06947468c --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSchedule.java @@ -0,0 +1,35 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintTypeSchedule implements ConstraintType { + private final ConstraintSchedule constraintSchedule; + + public ConstraintTypeSchedule(ConstraintSchedule constraintSchedule) { + this.constraintSchedule = constraintSchedule; + } + + @Override + public ConstraintSchedule getConstraintType() { + return this.constraintSchedule; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), constraintSchedule); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaAvailability.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaAvailability.java new file mode 100644 index 0000000000000000000000000000000000000000..10a60e8dce42a3031cac0a666ee1f4decc9814c8 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaAvailability.java @@ -0,0 +1,36 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintTypeSlaAvailability implements ConstraintType { + + private final ConstraintSlaAvailability constraintSlaAvailability; + + public ConstraintTypeSlaAvailability(ConstraintSlaAvailability constraintSlaAvailability) { + this.constraintSlaAvailability = constraintSlaAvailability; + } + + @Override + public ConstraintSlaAvailability getConstraintType() { + return this.constraintSlaAvailability; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), constraintSlaAvailability); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaCapacity.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaCapacity.java new file mode 100644 index 0000000000000000000000000000000000000000..c43cc5948c31317226cd3233b5c63ab7716222ed --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaCapacity.java @@ -0,0 +1,36 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintTypeSlaCapacity implements ConstraintType { + + private final ConstraintSlaCapacity constraintSlaCapacity; + + public ConstraintTypeSlaCapacity(ConstraintSlaCapacity constraintSlaCapacity) { + this.constraintSlaCapacity = constraintSlaCapacity; + } + + @Override + public ConstraintSlaCapacity getConstraintType() { + return this.constraintSlaCapacity; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), constraintSlaCapacity); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaIsolationLevel.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaIsolationLevel.java new file mode 100644 index 0000000000000000000000000000000000000000..572df6e45a11ccb4f9a6ef55bad26ec512e0e8f3 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaIsolationLevel.java @@ -0,0 +1,37 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintTypeSlaIsolationLevel + implements ConstraintType { + + private final ConstraintSlaIsolationLevel constraintSlaIsolationLevel; + + public ConstraintTypeSlaIsolationLevel(ConstraintSlaIsolationLevel constraintSlaIsolationLevel) { + this.constraintSlaIsolationLevel = constraintSlaIsolationLevel; + } + + @Override + public ConstraintSlaIsolationLevel getConstraintType() { + return this.constraintSlaIsolationLevel; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), constraintSlaIsolationLevel); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaLatency.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaLatency.java new file mode 100644 index 0000000000000000000000000000000000000000..2ff80daa53283e0ed3f80095d61c55626093fb64 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/ConstraintTypeSlaLatency.java @@ -0,0 +1,36 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class ConstraintTypeSlaLatency implements ConstraintType { + + private final ConstraintSlaLatency constraintSlaLatency; + + public ConstraintTypeSlaLatency(ConstraintSlaLatency constraintSlaLatency) { + this.constraintSlaLatency = constraintSlaLatency; + } + + @Override + public ConstraintSlaLatency getConstraintType() { + return this.constraintSlaLatency; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), constraintSlaLatency); + } +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/Device.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/Device.java similarity index 61% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/Device.java rename to src/policy/src/main/java/eu/teraflow/policy/context/model/Device.java index b5dbae62627ca6c9f9dedbeffb6f72fdce0fb74e..b00fd235cbcd2c65606d357646fa41bd10716569 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/Device.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/Device.java @@ -14,7 +14,10 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.policy.context.model; + +import eu.teraflow.policy.common.Util; +import java.util.List; public class Device { @@ -22,32 +25,23 @@ public class Device { private final String deviceType; private DeviceConfig deviceConfig; private DeviceOperationalStatus deviceOperationalStatus; + private List deviceDrivers; + private List endPoints; public Device( String deviceId, String deviceType, DeviceConfig deviceConfig, - DeviceOperationalStatus deviceOperationalStatus) { + DeviceOperationalStatus deviceOperationalStatus, + List deviceDrivers, + List endPoints) { this.deviceId = deviceId; this.deviceType = deviceType; this.deviceConfig = deviceConfig; this.deviceOperationalStatus = deviceOperationalStatus; - } - - public Device( - String deviceId, String deviceType, DeviceOperationalStatus deviceOperationalStatus) { - this.deviceId = deviceId; - this.deviceType = deviceType; - this.deviceOperationalStatus = deviceOperationalStatus; - } - - public boolean isEnabled() { - return deviceOperationalStatus == DeviceOperationalStatus.ENABLED; - } - - public void enableDevice() { - this.deviceOperationalStatus = DeviceOperationalStatus.ENABLED; + this.deviceDrivers = deviceDrivers; + this.endPoints = endPoints; } public String getDeviceId() { @@ -66,14 +60,24 @@ public class Device { return deviceOperationalStatus; } - public void setDeviceConfiguration(DeviceConfig deviceConfig) { - this.deviceConfig = deviceConfig; + public List getDeviceDrivers() { + return deviceDrivers; + } + + public List getEndPoints() { + return endPoints; } @Override public String toString() { return String.format( - "%s{id=\"%s\", type=\"%s\", operationalStatus=\"%s\", config=%s", - getClass().getSimpleName(), deviceId, deviceType, deviceOperationalStatus, deviceConfig); + "%s:{deviceId:\"%s\", deviceType:\"%s\", %s, deviceOperationalStatus=\"%s\", [%s], [%s]}", + getClass().getSimpleName(), + deviceId, + deviceType, + deviceConfig, + deviceOperationalStatus.toString(), + Util.toString(deviceDrivers), + Util.toString(endPoints)); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceConfig.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..e6fa702dd66c9ee315856f08cb85910b4da78ce1 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceConfig.java @@ -0,0 +1,39 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +import eu.teraflow.policy.common.Util; +import java.util.List; + +public class DeviceConfig { + + private final List configRules; + + public DeviceConfig(List configRules) { + + this.configRules = configRules; + } + + public List getConfigRules() { + return configRules; + } + + @Override + public String toString() { + return String.format("%s:{[%s]}", getClass().getSimpleName(), Util.toString(configRules)); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceDriverEnum.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceDriverEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..c98fc1fce545974a8067db2667ec1e519a058ae2 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceDriverEnum.java @@ -0,0 +1,26 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public enum DeviceDriverEnum { + UNDEFINED, + OPENCONFIG, + TRANSPORT_API, + P4, + IETF_NETWORK_TOPOLOGY, + ONF_TR_352 +} diff --git a/src/automation/src/main/java/eu/teraflow/automation/device/model/DeviceOperationalStatus.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceOperationalStatus.java similarity index 94% rename from src/automation/src/main/java/eu/teraflow/automation/device/model/DeviceOperationalStatus.java rename to src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceOperationalStatus.java index 163b34704e6629a0df70e4801ad1f4e665bafc19..2efe9052ec96decc74bd1f5a254fd32bca88a9e8 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/device/model/DeviceOperationalStatus.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceOperationalStatus.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package eu.teraflow.automation.device.model; +package eu.teraflow.policy.context.model; public enum DeviceOperationalStatus { UNDEFINED, diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/EndPoint.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/EndPoint.java new file mode 100644 index 0000000000000000000000000000000000000000..a657b59218598c375cfe272f6d3dc1b2ed5bdd04 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/EndPoint.java @@ -0,0 +1,66 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +import eu.teraflow.policy.common.Util; +import eu.teraflow.policy.kpi_sample_types.model.KpiSampleType; +import java.util.List; + +public class EndPoint { + private final EndPointId endPointId; + private final String endPointType; + private final List kpiSampleTypes; + private final Location endPointLocation; + + public EndPoint( + EndPointId endPointId, + String endPointType, + List kpiSampleTypes, + Location endPointLocation) { + this.endPointId = endPointId; + this.endPointType = endPointType; + this.kpiSampleTypes = kpiSampleTypes; + this.endPointLocation = endPointLocation; + } + + public EndPointId getEndPointId() { + return endPointId; + } + + public String getEndPointType() { + return endPointType; + } + + public List getKpiSampleTypes() { + return kpiSampleTypes; + } + + public Location getEndPointLocation() { + return endPointLocation; + } + + @Override + public String toString() { + return String.format( + "%s:{%s, endPointType:\"%s\", [%s], %s}", + getClass().getSimpleName(), + endPointId, + endPointType, + Util.toString(kpiSampleTypes), + endPointLocation); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/GpsPosition.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/GpsPosition.java new file mode 100644 index 0000000000000000000000000000000000000000..f5d7b488490c08a2c049ef301b3ecb3290da4ccc --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/GpsPosition.java @@ -0,0 +1,42 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class GpsPosition { + + private final float latitude; + private final float longitude; + + public GpsPosition(float latitude, float longitude) { + this.latitude = latitude; + this.longitude = longitude; + } + + public float getLatitude() { + return latitude; + } + + public float getLongitude() { + return longitude; + } + + @Override + public String toString() { + return String.format( + "%s:{latitude:\"%f\", longitude:\"%f\"}", getClass().getSimpleName(), latitude, longitude); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/IsolationLevelEnum.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/IsolationLevelEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..f7c3a12673ea1e12d2a82e3ddf3c6f8f916ee0db --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/IsolationLevelEnum.java @@ -0,0 +1,29 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public enum IsolationLevelEnum { + NO_ISOLATION, + PHYSICAL_ISOLATION, + LOGICAL_ISOLATION, + PROCESS_ISOLATION, + PHYSICAL_MEMORY_ISOLATION, + PHYSICAL_NETWORK_ISOLATION, + VIRTUAL_RESOURCE_ISOLATION, + NETWORK_FUNCTIONS_ISOLATION, + SERVICE_ISOLATION +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/Location.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/Location.java new file mode 100644 index 0000000000000000000000000000000000000000..692e1f01b71d6205d2b6eb9d78dad2b0d3e1bcf4 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/Location.java @@ -0,0 +1,35 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class Location { + + private final LocationType locationType; + + public Location(LocationType locationType) { + this.locationType = locationType; + } + + public LocationType getLocationType() { + return locationType; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), locationType); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/LocationType.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/LocationType.java new file mode 100644 index 0000000000000000000000000000000000000000..49bf9e9af37eff86a1a6717d0bbd8924f01e2d31 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/LocationType.java @@ -0,0 +1,22 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public interface LocationType { + + public T getLocationType(); +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/LocationTypeGpsPosition.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/LocationTypeGpsPosition.java new file mode 100644 index 0000000000000000000000000000000000000000..4bc44cc4e8c098e1347f43f38f6eafae325da1ee --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/LocationTypeGpsPosition.java @@ -0,0 +1,19 @@ +package eu.teraflow.policy.context.model; + +public class LocationTypeGpsPosition implements LocationType { + private final GpsPosition gpsPosition; + + public LocationTypeGpsPosition(GpsPosition gpsPosition) { + this.gpsPosition = gpsPosition; + } + + @Override + public GpsPosition getLocationType() { + return this.gpsPosition; + } + + @Override + public String toString() { + return String.format("%s:{%s}", getClass().getSimpleName(), gpsPosition); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/LocationTypeRegion.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/LocationTypeRegion.java new file mode 100644 index 0000000000000000000000000000000000000000..f857aa507439465dc3c3d7b3e514b8ed1185b532 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/LocationTypeRegion.java @@ -0,0 +1,35 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class LocationTypeRegion implements LocationType { + private final String region; + + public LocationTypeRegion(String region) { + this.region = region; + } + + @Override + public String getLocationType() { + return this.region; + } + + @Override + public String toString() { + return String.format("%s:{region:\"%s\"}", getClass().getSimpleName(), region); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/Service.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/Service.java index bbe684e1c79b67559ad0aa1e97059ef2852bbecf..e61179bcfa1dcc1736d81362f434fda01003696a 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/context/model/Service.java +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/Service.java @@ -27,6 +27,7 @@ public class Service { private final List serviceConstraints; private final ServiceStatus serviceStatus; private final ServiceConfig serviceConfig; + private final double timestamp; public Service( ServiceId serviceId, @@ -34,13 +35,15 @@ public class Service { List serviceEndPointIds, List serviceConstraints, ServiceStatus serviceStatus, - ServiceConfig serviceConfig) { + ServiceConfig serviceConfig, + double timestamp) { this.serviceId = serviceId; this.serviceType = serviceType; this.serviceEndPointIds = serviceEndPointIds; this.serviceConstraints = serviceConstraints; this.serviceStatus = serviceStatus; this.serviceConfig = serviceConfig; + this.timestamp = timestamp; } public ServiceId getServiceId() { @@ -67,16 +70,21 @@ public class Service { return serviceConfig; } + public double getTimestamp() { + return timestamp; + } + @Override public String toString() { return String.format( - "%s:{%s, serviceType:\"%s\", [%s], [%s], %s, %s}", + "%s:{%s, serviceType:\"%s\", [%s], [%s], %s, %s, timestamp:\"%f\"}", getClass().getSimpleName(), serviceId, serviceType.toString(), Util.toString(serviceEndPointIds), Util.toString(serviceConstraints), serviceStatus, - serviceConfig); + serviceConfig, + timestamp); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/SliceId.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/SliceId.java new file mode 100644 index 0000000000000000000000000000000000000000..57dbe5ff9fac4e88560f8d1ccecf4b2113705afc --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/SliceId.java @@ -0,0 +1,41 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.context.model; + +public class SliceId { + private final String contextId; + private final String id; + + public SliceId(String contextId, String id) { + this.contextId = contextId; + this.id = id; + } + + public String getContextId() { + return contextId; + } + + public String getId() { + return id; + } + + @Override + public String toString() { + return String.format( + "%s:{contextId:\"%s\", id:\"%s\"}", getClass().getSimpleName(), contextId, id); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleCondition.java b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleCondition.java index 714cc5582cce4ce3e606851acb2f2f2b62614e29..df92c5c1af8a5bf47df980dcea4db1d2309351b4 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleCondition.java +++ b/src/policy/src/main/java/eu/teraflow/policy/model/PolicyRuleCondition.java @@ -24,7 +24,8 @@ public class PolicyRuleCondition { private final NumericalOperator numericalOperator; private final KpiValue kpiValue; - public PolicyRuleCondition(String kpiId, NumericalOperator numericalOperator, KpiValue kpiValue) { + public PolicyRuleCondition( + String kpiId, NumericalOperator numericalOperator, KpiValue kpiValue) { this.kpiId = kpiId; this.numericalOperator = numericalOperator; this.kpiValue = kpiValue; diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/AlarmDescriptor.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/AlarmDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..ac216ee7cec55efbd7f169679b4e0eebad0f3950 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/AlarmDescriptor.java @@ -0,0 +1,65 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.monitoring.model; + +public class AlarmDescriptor { + private final String alarmDescription; + private final String name; + private final String kpiId; + private final KpiValueRange kpiValueRange; + private final String timestamp; + + public AlarmDescriptor( + String alarmDescription, + String name, + String kpiId, + KpiValueRange kpiValueRange, + String timestamp) { + this.alarmDescription = alarmDescription; + this.name = name; + this.kpiId = kpiId; + this.kpiValueRange = kpiValueRange; + this.timestamp = timestamp; + } + + public String getAlarmDescription() { + return alarmDescription; + } + + public String getName() { + return name; + } + + public String getKpiId() { + return kpiId; + } + + public KpiValueRange getKpiValueRange() { + return kpiValueRange; + } + + public String getTimestamp() { + return timestamp; + } + + @Override + public String toString() { + return String.format( + "%s:{alarmDescription:\"%s\", name:\"%s\", kpiId:\"%s\", %s, timestamp:\"%s\"}", + getClass().getSimpleName(), alarmDescription, name, kpiId, kpiValueRange, timestamp); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/AlarmResponse.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/AlarmResponse.java new file mode 100644 index 0000000000000000000000000000000000000000..4730c18d068e2372dffee9507d0d74f9208abae9 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/AlarmResponse.java @@ -0,0 +1,49 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.monitoring.model; + +public class AlarmResponse { + + private final String alarmId; + private final String text; + private final KpiValue kpiValue; + + public AlarmResponse(String alarmId, String text, KpiValue kpiValue) { + this.alarmId = alarmId; + this.text = text; + this.kpiValue = kpiValue; + } + + public String getAlarmId() { + return alarmId; + } + + public String getText() { + return text; + } + + public KpiValue getKpiValue() { + return kpiValue; + } + + @Override + public String toString() { + return String.format( + "%s:{alarmId:\"%s\", text:\"%s\", %s}", + getClass().getSimpleName(), alarmId, text, kpiValue); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/Kpi.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/Kpi.java index 4d84c29d4f32cd2605cf2d20a67b0fa41f801ab1..c042240298fdea49ca1509ac2563e849b16575c5 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/Kpi.java +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/Kpi.java @@ -20,9 +20,9 @@ public class Kpi { private final String kpiId; private final String timestamp; - private final String kpiValue; + private final KpiValue kpiValue; - public Kpi(String kpiId, String timestamp, String kpiValue) { + public Kpi(String kpiId, String timestamp, KpiValue kpiValue) { this.kpiId = kpiId; this.timestamp = timestamp; this.kpiValue = kpiValue; @@ -36,14 +36,14 @@ public class Kpi { return timestamp; } - public String getKpiValue() { + public KpiValue getKpiValue() { return kpiValue; } @Override public String toString() { return String.format( - "%s:{kpiId:\"%s\", timeStamp:\"%s\", kpiValue:\"%s\"}", + "%s:{kpiId:\"%s\", timeStamp:\"%s\", %s}", getClass().getSimpleName(), kpiId, timestamp, kpiValue); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiDescriptor.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiDescriptor.java index 85e09ce2e6f7ac297657e59c7868fbbd750675b8..107c1033549facafc843e182090c0d8cd95e51e5 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiDescriptor.java +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiDescriptor.java @@ -18,6 +18,7 @@ package eu.teraflow.policy.monitoring.model; import eu.teraflow.policy.context.model.EndPointId; import eu.teraflow.policy.context.model.ServiceId; +import eu.teraflow.policy.context.model.SliceId; import eu.teraflow.policy.kpi_sample_types.model.KpiSampleType; public class KpiDescriptor { @@ -27,18 +28,21 @@ public class KpiDescriptor { private final String deviceId; private final EndPointId endPointId; private final ServiceId serviceId; + private final SliceId sliceId; public KpiDescriptor( String kpiDescription, KpiSampleType kpiSampleType, String deviceId, EndPointId endPointId, - ServiceId serviceId) { + ServiceId serviceId, + SliceId sliceId) { this.kpiDescription = kpiDescription; this.kpiSampleType = kpiSampleType; this.deviceId = deviceId; this.endPointId = endPointId; this.serviceId = serviceId; + this.sliceId = sliceId; } public String getKpiDescription() { @@ -61,15 +65,20 @@ public class KpiDescriptor { return serviceId; } + public SliceId getSliceId() { + return sliceId; + } + @Override public String toString() { return String.format( - "%s:{kpiDescription:\"%s\", kpiSampleType:\"%s\", deviceId:\"%s\", %s, %s}", + "%s:{kpiDescription:\"%s\", kpiSampleType:\"%s\", deviceId:\"%s\", %s, %s, %s}", getClass().getSimpleName(), kpiDescription, kpiSampleType.toString(), deviceId, endPointId, - serviceId); + serviceId, + sliceId); } } diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiValueRange.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiValueRange.java new file mode 100644 index 0000000000000000000000000000000000000000..baa7c32c4e59afc47f3c91c8c65691457b4c6df4 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/KpiValueRange.java @@ -0,0 +1,41 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.monitoring.model; + +public class KpiValueRange { + + private final KpiValue kpiMinValue; + private final KpiValue kpiMaxValue; + + public KpiValueRange(KpiValue kpiMinValue, KpiValue kpiMaxValue) { + this.kpiMinValue = kpiMinValue; + this.kpiMaxValue = kpiMaxValue; + } + + public KpiValue getKpiMinValue() { + return kpiMinValue; + } + + public KpiValue getKpiMaxValue() { + return kpiMaxValue; + } + + @Override + public String toString() { + return String.format("%s:{%s, %s}", getClass().getSimpleName(), kpiMinValue, kpiMaxValue); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/SubsDescriptor.java b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/SubsDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..ced38b3f9f76239ee83687f14587da168dc7c320 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/monitoring/model/SubsDescriptor.java @@ -0,0 +1,70 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy.monitoring.model; + +public class SubsDescriptor { + private final String kpiId; + private final float samplingDurationS; + private final float samplingIntervalS; + private final String startDate; + private final String endDate; + + public SubsDescriptor( + String kpiId, + float samplingDurationS, + float samplingIntervalS, + String startDate, + String endDate) { + this.kpiId = kpiId; + this.samplingDurationS = samplingDurationS; + this.samplingIntervalS = samplingIntervalS; + this.startDate = startDate; + this.endDate = endDate; + } + + public String getKpiId() { + return kpiId; + } + + public float getSamplingDurationS() { + return samplingDurationS; + } + + public float getSamplingIntervalS() { + return samplingIntervalS; + } + + public String getStartDate() { + return startDate; + } + + public String getEndDate() { + return endDate; + } + + @Override + public String toString() { + return String.format( + "%s:{kpiId:\"%s\", samplingDurationS:\"%f\", samplingIntervalS:\"%f\", startDate:\"%s\", endDate:\"%s\"}", + getClass().getSimpleName(), + kpiId, + samplingDurationS, + samplingIntervalS, + startDate, + endDate); + } +} diff --git a/src/policy/src/main/proto/context-policy.proto b/src/policy/src/main/proto/context-policy.proto new file mode 120000 index 0000000000000000000000000000000000000000..5c0888e9edf15c8fa540e85afabb98342c0e0c51 --- /dev/null +++ b/src/policy/src/main/proto/context-policy.proto @@ -0,0 +1 @@ +../../../../../proto/context-policy.proto \ No newline at end of file diff --git a/src/policy/src/test/java/eu/teraflow/policy/ConfigRuleTypeTest.java b/src/policy/src/test/java/eu/teraflow/policy/ConfigRuleTypeTest.java new file mode 100644 index 0000000000000000000000000000000000000000..faaa49c3488cfa7e81f696637a8a7a4393d8f824 --- /dev/null +++ b/src/policy/src/test/java/eu/teraflow/policy/ConfigRuleTypeTest.java @@ -0,0 +1,90 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy; + +import static org.assertj.core.api.Assertions.assertThat; + +import eu.teraflow.policy.acl.AclAction; +import eu.teraflow.policy.acl.AclEntry; +import eu.teraflow.policy.acl.AclForwardActionEnum; +import eu.teraflow.policy.acl.AclLogActionEnum; +import eu.teraflow.policy.acl.AclMatch; +import eu.teraflow.policy.acl.AclRuleSet; +import eu.teraflow.policy.acl.AclRuleTypeEnum; +import eu.teraflow.policy.context.model.ConfigRuleAcl; +import eu.teraflow.policy.context.model.ConfigRuleCustom; +import eu.teraflow.policy.context.model.ConfigRuleTypeAcl; +import eu.teraflow.policy.context.model.ConfigRuleTypeCustom; +import eu.teraflow.policy.context.model.EndPointId; +import eu.teraflow.policy.context.model.TopologyId; +import io.quarkus.test.junit.QuarkusTest; +import java.util.List; +import org.junit.jupiter.api.Test; + +@QuarkusTest +class ConfigRuleTypeTest { + + private AclMatch createAclMatch() { + + return new AclMatch(1, 2, "192.168.3.52", "192.168.4.192", 3224, 3845, 5, 10); + } + + private AclAction createAclAction() { + + return new AclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + } + + private AclEntry createAclEntry(AclMatch aclMatch, AclAction aclAction) { + + return new AclEntry(1, "aclEntryDescription", aclMatch, aclAction); + } + + @Test + void shouldExtractConfigRuleCustomFromConfigRuleTypeCustom() { + final var resourceKey = "resourceKey"; + final var resourceValue = "resourceValue"; + + final var expectedConfigRuleCustom = new ConfigRuleCustom(resourceKey, resourceValue); + final var configRuleTypeCustom = new ConfigRuleTypeCustom(expectedConfigRuleCustom); + + assertThat(configRuleTypeCustom.getConfigRuleType()).isEqualTo(expectedConfigRuleCustom); + } + + @Test + void shouldExtractConfigRuleAclFromConfigRuleTypeAcl() { + final var contextIdUuid = "contextId"; + final var topologyIdUuid = "topologyUuid"; + final var deviceIdUuid = "deviceIdUuid"; + final var endpointIdUuid = "endpointIdUuid"; + + final var topologyId = new TopologyId(contextIdUuid, topologyIdUuid); + final var endPointId = new EndPointId(topologyId, deviceIdUuid, endpointIdUuid); + + final var aclMatch = createAclMatch(); + final var aclAction = createAclAction(); + final var aclEntry = createAclEntry(aclMatch, aclAction); + + final var aclRuleSet = + new AclRuleSet( + "aclRuleName", AclRuleTypeEnum.IPV4, "AclRuleDescription", "userId", List.of(aclEntry)); + + final var expectedConfigRuleAcl = new ConfigRuleAcl(endPointId, aclRuleSet); + final var configRuleTypeAcl = new ConfigRuleTypeAcl(expectedConfigRuleAcl); + + assertThat(configRuleTypeAcl.getConfigRuleType()).isEqualTo(expectedConfigRuleAcl); + } +} diff --git a/src/policy/src/test/java/eu/teraflow/policy/ConstraintTypeTest.java b/src/policy/src/test/java/eu/teraflow/policy/ConstraintTypeTest.java new file mode 100644 index 0000000000000000000000000000000000000000..71d44bd3182200f456a9f9d0cb5f02ad0b222d3f --- /dev/null +++ b/src/policy/src/test/java/eu/teraflow/policy/ConstraintTypeTest.java @@ -0,0 +1,134 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy; + +import static org.assertj.core.api.Assertions.assertThat; + +import eu.teraflow.policy.context.model.ConstraintCustom; +import eu.teraflow.policy.context.model.ConstraintEndPointLocation; +import eu.teraflow.policy.context.model.ConstraintSchedule; +import eu.teraflow.policy.context.model.ConstraintSlaAvailability; +import eu.teraflow.policy.context.model.ConstraintSlaCapacity; +import eu.teraflow.policy.context.model.ConstraintSlaIsolationLevel; +import eu.teraflow.policy.context.model.ConstraintSlaLatency; +import eu.teraflow.policy.context.model.ConstraintTypeCustom; +import eu.teraflow.policy.context.model.ConstraintTypeEndPointLocation; +import eu.teraflow.policy.context.model.ConstraintTypeSchedule; +import eu.teraflow.policy.context.model.ConstraintTypeSlaAvailability; +import eu.teraflow.policy.context.model.ConstraintTypeSlaCapacity; +import eu.teraflow.policy.context.model.ConstraintTypeSlaIsolationLevel; +import eu.teraflow.policy.context.model.ConstraintTypeSlaLatency; +import eu.teraflow.policy.context.model.EndPointId; +import eu.teraflow.policy.context.model.IsolationLevelEnum; +import eu.teraflow.policy.context.model.Location; +import eu.teraflow.policy.context.model.LocationTypeRegion; +import eu.teraflow.policy.context.model.TopologyId; +import io.quarkus.test.junit.QuarkusTest; +import org.junit.jupiter.api.Test; + +@QuarkusTest +class ConstraintTypeTest { + + @Test + void shouldExtractConstraintCustomFromConstraintTypeCustom() { + final var constraintType = "constraintType"; + final var constraintValue = "constraintValue"; + + final var expectedConstraintCustom = new ConstraintCustom(constraintType, constraintValue); + final var constraintTypeCustom = new ConstraintTypeCustom(expectedConstraintCustom); + + assertThat(constraintTypeCustom.getConstraintType()).isEqualTo(expectedConstraintCustom); + } + + @Test + void shouldExtractConstraintEndPointLocationFromConstraintTypeEndPointLocation() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + final var endPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + + final var locationType = new LocationTypeRegion("ATH"); + final var location = new Location(locationType); + + final var expectedConstraintEndPointLocation = + new ConstraintEndPointLocation(endPointId, location); + final var constraintTypeEndPointLocation = + new ConstraintTypeEndPointLocation(expectedConstraintEndPointLocation); + + assertThat(constraintTypeEndPointLocation.getConstraintType()) + .isEqualTo(expectedConstraintEndPointLocation); + } + + @Test + void shouldExtractConstraintScheduleFromConstraintTypeSchedule() { + final var startTimestamp = 4.7f; + final var durationDays = 97.4f; + + final var expectedConstraintSchedule = new ConstraintSchedule(startTimestamp, durationDays); + final var constraintTypeSchedule = new ConstraintTypeSchedule(expectedConstraintSchedule); + + assertThat(constraintTypeSchedule.getConstraintType()).isEqualTo(expectedConstraintSchedule); + } + + @Test + void shouldExtractConstraintSlaAvailabilityFromConstraintTypeSlaAvailability() { + final var numDisjointPaths = 88; + final var allActive = false; + + final var expectedConstraintSlaAvailability = + new ConstraintSlaAvailability(numDisjointPaths, allActive); + final var constraintTypeSlaAvailability = + new ConstraintTypeSlaAvailability(expectedConstraintSlaAvailability); + + assertThat(constraintTypeSlaAvailability.getConstraintType()) + .isEqualTo(expectedConstraintSlaAvailability); + } + + @Test + void shouldExtractConstraintSlaCapacityFromConstraintTypeSlaCapacity() { + final var capacityGbps = 0.2f; + + final var expectedConstraintSlaCapacity = new ConstraintSlaCapacity(capacityGbps); + final var constraintTypeSlaCapacity = + new ConstraintTypeSlaCapacity(expectedConstraintSlaCapacity); + + assertThat(constraintTypeSlaCapacity.getConstraintType()) + .isEqualTo(expectedConstraintSlaCapacity); + } + + @Test + void shouldExtractConstraintSlaIsolationLevelFromConstraintTypeSlaIsolationLevel() { + final var expectedConstraintSlaIsolationLevel = + new ConstraintSlaIsolationLevel(IsolationLevelEnum.PHYSICAL_ISOLATION); + final var constraintTypeSlaIsolationLevel = + new ConstraintTypeSlaIsolationLevel(expectedConstraintSlaIsolationLevel); + + assertThat(constraintTypeSlaIsolationLevel.getConstraintType()) + .isEqualTo(expectedConstraintSlaIsolationLevel); + } + + @Test + void shouldExtractConstraintSlaLatencyFromConstraintTypeSlaLatency() { + final var capacityGbps = 0.2f; + + final var expectedConstraintSlaLatency = new ConstraintSlaLatency(capacityGbps); + final var constraintTypeSlaLatency = new ConstraintTypeSlaLatency(expectedConstraintSlaLatency); + + assertThat(constraintTypeSlaLatency.getConstraintType()) + .isEqualTo(expectedConstraintSlaLatency); + } +} diff --git a/src/policy/src/test/java/eu/teraflow/policy/LocationTypeTest.java b/src/policy/src/test/java/eu/teraflow/policy/LocationTypeTest.java new file mode 100644 index 0000000000000000000000000000000000000000..d89d62c63486cf571f2606786b805abdc066204c --- /dev/null +++ b/src/policy/src/test/java/eu/teraflow/policy/LocationTypeTest.java @@ -0,0 +1,49 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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. +*/ + +package eu.teraflow.policy; + +import static org.assertj.core.api.Assertions.assertThat; + +import eu.teraflow.policy.context.model.GpsPosition; +import eu.teraflow.policy.context.model.LocationTypeGpsPosition; +import eu.teraflow.policy.context.model.LocationTypeRegion; +import io.quarkus.test.junit.QuarkusTest; +import org.junit.jupiter.api.Test; + +@QuarkusTest +class LocationTypeTest { + + @Test + void shouldExtractRegionFromLocationTypeRegion() { + final var expectedRegion = "ATH"; + + final var locationTypeRegion = new LocationTypeRegion(expectedRegion); + + assertThat(locationTypeRegion.getLocationType()).isEqualTo(expectedRegion); + } + + @Test + void shouldExtractLocationGpsPositionFromLocationTypeGpsPosition() { + final var latitude = 3.99f; + final var longitude = 77.32f; + + final var expectedLocationGpsPosition = new GpsPosition(latitude, longitude); + final var locationTypeGpsPosition = new LocationTypeGpsPosition(expectedLocationGpsPosition); + + assertThat(locationTypeGpsPosition.getLocationType()).isEqualTo(expectedLocationGpsPosition); + } +} diff --git a/src/policy/src/test/java/eu/teraflow/policy/SerializerTest.java b/src/policy/src/test/java/eu/teraflow/policy/SerializerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e8c582013366c993992ff3fd504bb9b2c7578c17 --- /dev/null +++ b/src/policy/src/test/java/eu/teraflow/policy/SerializerTest.java @@ -0,0 +1,3601 @@ +/* +* Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/) +* +* 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 +*provideKpiValueRanges +* 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. +*/ + +package eu.teraflow.policy; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; + +import acl.Acl; +import context.ContextOuterClass; +import context.ContextOuterClass.ContextId; +import context.ContextOuterClass.DeviceId; +import context.ContextOuterClass.DeviceOperationalStatusEnum; +import context.ContextOuterClass.Uuid; +import eu.teraflow.policy.acl.AclAction; +import eu.teraflow.policy.acl.AclEntry; +import eu.teraflow.policy.acl.AclForwardActionEnum; +import eu.teraflow.policy.acl.AclLogActionEnum; +import eu.teraflow.policy.acl.AclMatch; +import eu.teraflow.policy.acl.AclRuleSet; +import eu.teraflow.policy.acl.AclRuleTypeEnum; +import eu.teraflow.policy.context.model.ConfigActionEnum; +import eu.teraflow.policy.context.model.ConfigRule; +import eu.teraflow.policy.context.model.ConfigRuleAcl; +import eu.teraflow.policy.context.model.ConfigRuleCustom; +import eu.teraflow.policy.context.model.ConfigRuleTypeAcl; +import eu.teraflow.policy.context.model.ConfigRuleTypeCustom; +import eu.teraflow.policy.context.model.Constraint; +import eu.teraflow.policy.context.model.ConstraintCustom; +import eu.teraflow.policy.context.model.ConstraintEndPointLocation; +import eu.teraflow.policy.context.model.ConstraintSchedule; +import eu.teraflow.policy.context.model.ConstraintSlaAvailability; +import eu.teraflow.policy.context.model.ConstraintSlaCapacity; +import eu.teraflow.policy.context.model.ConstraintSlaIsolationLevel; +import eu.teraflow.policy.context.model.ConstraintSlaLatency; +import eu.teraflow.policy.context.model.ConstraintTypeCustom; +import eu.teraflow.policy.context.model.ConstraintTypeEndPointLocation; +import eu.teraflow.policy.context.model.ConstraintTypeSchedule; +import eu.teraflow.policy.context.model.ConstraintTypeSlaAvailability; +import eu.teraflow.policy.context.model.ConstraintTypeSlaCapacity; +import eu.teraflow.policy.context.model.ConstraintTypeSlaIsolationLevel; +import eu.teraflow.policy.context.model.ConstraintTypeSlaLatency; +import eu.teraflow.policy.context.model.Device; +import eu.teraflow.policy.context.model.DeviceConfig; +import eu.teraflow.policy.context.model.DeviceDriverEnum; +import eu.teraflow.policy.context.model.DeviceOperationalStatus; +import eu.teraflow.policy.context.model.EndPoint; +import eu.teraflow.policy.context.model.EndPointId; +import eu.teraflow.policy.context.model.Event; +import eu.teraflow.policy.context.model.EventTypeEnum; +import eu.teraflow.policy.context.model.GpsPosition; +import eu.teraflow.policy.context.model.IsolationLevelEnum; +import eu.teraflow.policy.context.model.Location; +import eu.teraflow.policy.context.model.LocationTypeGpsPosition; +import eu.teraflow.policy.context.model.LocationTypeRegion; +import eu.teraflow.policy.context.model.Service; +import eu.teraflow.policy.context.model.ServiceConfig; +import eu.teraflow.policy.context.model.ServiceId; +import eu.teraflow.policy.context.model.ServiceStatus; +import eu.teraflow.policy.context.model.ServiceStatusEnum; +import eu.teraflow.policy.context.model.ServiceTypeEnum; +import eu.teraflow.policy.context.model.SliceId; +import eu.teraflow.policy.context.model.TopologyId; +import eu.teraflow.policy.kpi_sample_types.model.KpiSampleType; +import eu.teraflow.policy.model.BooleanOperator; +import eu.teraflow.policy.model.NumericalOperator; +import eu.teraflow.policy.model.PolicyRuleAction; +import eu.teraflow.policy.model.PolicyRuleActionEnum; +import eu.teraflow.policy.model.PolicyRuleBasic; +import eu.teraflow.policy.model.PolicyRuleCondition; +import eu.teraflow.policy.model.PolicyRuleDevice; +import eu.teraflow.policy.model.PolicyRuleService; +import eu.teraflow.policy.model.PolicyRuleState; +import eu.teraflow.policy.model.RuleState; +import eu.teraflow.policy.monitoring.model.AlarmDescriptor; +import eu.teraflow.policy.monitoring.model.AlarmResponse; +import eu.teraflow.policy.monitoring.model.BooleanKpiValue; +import eu.teraflow.policy.monitoring.model.FloatKpiValue; +import eu.teraflow.policy.monitoring.model.IntegerKpiValue; +import eu.teraflow.policy.monitoring.model.Kpi; +import eu.teraflow.policy.monitoring.model.KpiDescriptor; +import eu.teraflow.policy.monitoring.model.KpiValue; +import eu.teraflow.policy.monitoring.model.KpiValueRange; +import eu.teraflow.policy.monitoring.model.StringKpiValue; +import eu.teraflow.policy.monitoring.model.SubsDescriptor; +import io.quarkus.test.junit.QuarkusTest; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import javax.inject.Inject; +import kpi_sample_types.KpiSampleTypes; +import monitoring.Monitoring; +import monitoring.Monitoring.AlarmID; +import monitoring.Monitoring.KpiId; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; +import policy.Policy; +import policy.Policy.PolicyRuleId; +import policy.PolicyAction; +import policy.PolicyCondition; + +@QuarkusTest +class SerializerTest { + @Inject Serializer serializer; + + private AclMatch createAclMatch( + int dscp, + int protocol, + String srcAddress, + String dstAddress, + int srcPort, + int dstPort, + int startMplsLabel, + int endMplsLabel) { + return new AclMatch( + dscp, protocol, srcAddress, dstAddress, srcPort, dstPort, startMplsLabel, endMplsLabel); + } + + private AclAction createAclAction( + AclForwardActionEnum forwardActionEnum, AclLogActionEnum logActionEnum) { + + return new AclAction(forwardActionEnum, logActionEnum); + } + + private AclEntry createAclEntry( + int sequenceId, String description, AclMatch aclMatch, AclAction aclAction) { + + return new AclEntry(sequenceId, description, aclMatch, aclAction); + } + + private PolicyRuleBasic createPolicyRuleBasic() { + final var expectedPolicyRuleId = "expectedPolicyRuleId"; + final var expectedPolicyRuleState = new PolicyRuleState(RuleState.POLICY_EFFECTIVE); + final var expectedPriority = 3; + + final var firstKpiValue = new IntegerKpiValue(22); + final var secondKpiValue = new FloatKpiValue(69.1f); + + final var firstExpectedPolicyRuleCondition = + new PolicyRuleCondition( + "firstExpectedPolicyRuleConditionVariable", + NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN, + firstKpiValue); + final var secondExpectedPolicyRuleCondition = + new PolicyRuleCondition( + "secondExpectedPolicyRuleConditionVariable", + 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, + List.of("parameter1", "parameter2")); + + final var secondExpectedPolicyRuleAction = + new PolicyRuleAction( + PolicyRuleActionEnum.POLICY_RULE_ACTION_ADD_SERVICE_CONFIGRULE, + List.of("parameter3", "parameter4")); + + final var expectedPolicyRuleActions = + List.of(firstExpectedPolicyRuleAction, secondExpectedPolicyRuleAction); + + return new PolicyRuleBasic( + expectedPolicyRuleId, + expectedPolicyRuleState, + expectedPriority, + expectedPolicyRuleConditions, + expectedBooleanOperator, + expectedPolicyRuleActions); + } + + private ConfigRule createConfigRule() { + final var contextIdUuid = "contextId"; + final var topologyIdUuid = "topologyUuid"; + final var deviceIdUuid = "deviceIdUuid"; + final var endpointIdUuid = "endpointIdUuid"; + + final var topologyId = new TopologyId(contextIdUuid, topologyIdUuid); + final var endPointId = new EndPointId(topologyId, deviceIdUuid, endpointIdUuid); + + final var aclMatch = createAclMatch(1, 1, "127.0.0.1", "127.0.0.2", 5601, 5602, 1, 2); + final var aclAction = createAclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + final var aclEntry = createAclEntry(1, "aclEntryDescription", aclMatch, aclAction); + + final var aclRuleSet = + new AclRuleSet( + "aclRuleName", AclRuleTypeEnum.IPV4, "AclRuleDescription", "userId", List.of(aclEntry)); + + final var configRuleAcl = new ConfigRuleAcl(endPointId, aclRuleSet); + final var configRuleTypeAcl = new ConfigRuleTypeAcl(configRuleAcl); + + return new ConfigRule(ConfigActionEnum.SET, configRuleTypeAcl); + } + + @Test + void shouldSerializeDeviceId() { + final var deviceId = "deviceId"; + + final var deviceIdUuid = serializer.serializeUuid(deviceId); + final var expectedDeviceId = + ContextOuterClass.DeviceId.newBuilder().setDeviceUuid(deviceIdUuid).build(); + + final var serializedDeviceId = serializer.serializeDeviceId(deviceId); + + assertThat(serializedDeviceId).usingRecursiveComparison().isEqualTo(expectedDeviceId); + } + + @Test + void shouldDeserializeDeviceId() { + final var expectedDeviceId = "expectedDeviceId"; + + final var serializedDeviceIdUuid = serializer.serializeUuid(expectedDeviceId); + final var serializedDeviceId = + DeviceId.newBuilder().setDeviceUuid(serializedDeviceIdUuid).build(); + + final var deviceId = serializer.deserialize(serializedDeviceId); + + assertThat(deviceId).isEqualTo(expectedDeviceId); + } + + @Test + void shouldSerializeContextId() { + final var contextId = "contextId"; + + final var contextIdUuid = serializer.serializeUuid(contextId); + + final var expectedContextId = + ContextOuterClass.ContextId.newBuilder().setContextUuid(contextIdUuid).build(); + + final var serializedContextId = serializer.serializeContextId(contextId); + + assertThat(serializedContextId).usingRecursiveComparison().isEqualTo(expectedContextId); + } + + @Test + void shouldDeserializeContextId() { + final var expectedContextId = "expectedContextId"; + + final var serializedContextIdUuid = serializer.serializeUuid(expectedContextId); + final var serializedContextId = + ContextId.newBuilder().setContextUuid(serializedContextIdUuid).build(); + + final var contextId = serializer.deserialize(serializedContextId); + + assertThat(contextId).isEqualTo(expectedContextId); + } + + @Test + void shouldSerializePolicyRuleId() { + final var policyRuleId = "policyRuleId"; + + final var policyRuleIdUuid = serializer.serializeUuid(policyRuleId); + final var expectedPolicyRuleId = + Policy.PolicyRuleId.newBuilder().setUuid(policyRuleIdUuid).build(); + + final var serializedPolicyRuleId = serializer.serializePolicyRuleId(policyRuleId); + + assertThat(serializedPolicyRuleId).usingRecursiveComparison().isEqualTo(expectedPolicyRuleId); + } + + @Test + void shouldDeserializePolicyRuleId() { + final var expectedPolicyRuleId = "expectedPolicyRuleId"; + + final var serializedPolicyRuleIdUuid = serializer.serializeUuid(expectedPolicyRuleId); + final var serializedPolicyRuleId = + PolicyRuleId.newBuilder().setUuid(serializedPolicyRuleIdUuid).build(); + + final var policyRuleId = serializer.deserialize(serializedPolicyRuleId); + + assertThat(policyRuleId).isEqualTo(expectedPolicyRuleId); + } + + @Test + void shouldSerializeTopologyId() { + final var expectedContextId = "expectedContextId"; + final var expectedId = "expectedId"; + final var topologyId = new TopologyId(expectedContextId, expectedId); + + final var serializedContextId = serializer.serializeContextId(expectedContextId); + final var serializedIdUuid = serializer.serializeUuid(expectedId); + + final var expectedTopologyId = + ContextOuterClass.TopologyId.newBuilder() + .setContextId(serializedContextId) + .setTopologyUuid(serializedIdUuid) + .build(); + + final var serializedTopologyId = serializer.serialize(topologyId); + + assertThat(serializedTopologyId).usingRecursiveComparison().isEqualTo(expectedTopologyId); + } + + @Test + void shouldDeserializeTopologyId() { + final var expectedContextId = "expectedContextId"; + final var expectedId = "expectedId"; + + final var expectedTopologyId = new TopologyId(expectedContextId, expectedId); + + final var serializedTopologyId = serializer.serialize(expectedTopologyId); + final var topologyId = serializer.deserialize(serializedTopologyId); + + assertThat(topologyId).usingRecursiveComparison().isEqualTo(expectedTopologyId); + } + + private static Stream provideConfigActionEnum() { + return Stream.of( + Arguments.of(ConfigActionEnum.SET, ContextOuterClass.ConfigActionEnum.CONFIGACTION_SET), + Arguments.of( + ConfigActionEnum.DELETE, ContextOuterClass.ConfigActionEnum.CONFIGACTION_DELETE), + Arguments.of( + ConfigActionEnum.UNDEFINED, ContextOuterClass.ConfigActionEnum.CONFIGACTION_UNDEFINED)); + } + + @ParameterizedTest + @MethodSource("provideConfigActionEnum") + void shouldSerializeConfigActionEnum( + ConfigActionEnum configActionEnum, + ContextOuterClass.ConfigActionEnum expectedConfigActionEnum) { + final var serializedType = serializer.serialize(configActionEnum); + assertThat(serializedType.getNumber()).isEqualTo(expectedConfigActionEnum.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideConfigActionEnum") + void shouldDeserializeConfigActionEnum( + ConfigActionEnum expectedConfigActionEnum, + ContextOuterClass.ConfigActionEnum serializedConfigActionEnum) { + + final var configActionEnum = serializer.deserialize(serializedConfigActionEnum); + + assertThat(configActionEnum).isEqualTo(expectedConfigActionEnum); + } + + private static Stream provideAclRuleTypeEnum() { + return Stream.of( + Arguments.of(AclRuleTypeEnum.IPV4, Acl.AclRuleTypeEnum.ACLRULETYPE_IPV4), + Arguments.of(AclRuleTypeEnum.IPV6, Acl.AclRuleTypeEnum.ACLRULETYPE_IPV6), + Arguments.of(AclRuleTypeEnum.L2, Acl.AclRuleTypeEnum.ACLRULETYPE_L2), + Arguments.of(AclRuleTypeEnum.MPLS, Acl.AclRuleTypeEnum.ACLRULETYPE_MPLS), + Arguments.of(AclRuleTypeEnum.MIXED, Acl.AclRuleTypeEnum.ACLRULETYPE_MIXED), + Arguments.of(AclRuleTypeEnum.UNDEFINED, Acl.AclRuleTypeEnum.ACLRULETYPE_UNDEFINED)); + } + + @ParameterizedTest + @MethodSource("provideAclRuleTypeEnum") + void shouldSerializeAclRuleTypeEnum( + AclRuleTypeEnum aclRuleTypeEnum, Acl.AclRuleTypeEnum expectedAclRuleTypeEnum) { + final var serializedAclRuleTypeEnum = serializer.serialize(aclRuleTypeEnum); + assertThat(serializedAclRuleTypeEnum.getNumber()) + .isEqualTo(expectedAclRuleTypeEnum.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideAclRuleTypeEnum") + void shouldDeserializeAclRuleTypeEnum( + AclRuleTypeEnum expectedAclRuleTypeEnum, Acl.AclRuleTypeEnum serializedAclRuleTypeEnum) { + final var aclRuleTypeEnum = serializer.deserialize(serializedAclRuleTypeEnum); + assertThat(aclRuleTypeEnum).isEqualTo(expectedAclRuleTypeEnum); + } + + private static Stream provideAclForwardActionEnum() { + return Stream.of( + Arguments.of(AclForwardActionEnum.DROP, Acl.AclForwardActionEnum.ACLFORWARDINGACTION_DROP), + Arguments.of( + AclForwardActionEnum.ACCEPT, Acl.AclForwardActionEnum.ACLFORWARDINGACTION_ACCEPT), + Arguments.of( + AclForwardActionEnum.REJECT, Acl.AclForwardActionEnum.ACLFORWARDINGACTION_REJECT), + Arguments.of( + AclForwardActionEnum.UNDEFINED, + Acl.AclForwardActionEnum.ACLFORWARDINGACTION_UNDEFINED)); + } + + @ParameterizedTest + @MethodSource("provideAclForwardActionEnum") + void shouldSerializeAclForwardActionEnum( + AclForwardActionEnum aclForwardActionEnum, + Acl.AclForwardActionEnum expectedAclForwardActionEnum) { + final var serializedAclForwardActionEnum = serializer.serialize(aclForwardActionEnum); + assertThat(serializedAclForwardActionEnum.getNumber()) + .isEqualTo(expectedAclForwardActionEnum.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideAclForwardActionEnum") + void shouldDeserializeAclForwardActionEnum( + AclForwardActionEnum expectedAclForwardActionEnum, + Acl.AclForwardActionEnum serializedAclForwardActionEnum) { + final var aclForwardActionEnum = serializer.deserialize(serializedAclForwardActionEnum); + assertThat(aclForwardActionEnum).isEqualTo(expectedAclForwardActionEnum); + } + + private static Stream provideAclLogActionEnum() { + return Stream.of( + Arguments.of(AclLogActionEnum.NO_LOG, Acl.AclLogActionEnum.ACLLOGACTION_NOLOG), + Arguments.of(AclLogActionEnum.SYSLOG, Acl.AclLogActionEnum.ACLLOGACTION_SYSLOG), + Arguments.of(AclLogActionEnum.UNDEFINED, Acl.AclLogActionEnum.ACLLOGACTION_UNDEFINED)); + } + + @ParameterizedTest + @MethodSource("provideAclLogActionEnum") + void shouldSerializeAclLogActionEnum( + AclLogActionEnum aclLogActionEnum, Acl.AclLogActionEnum expectedAclLogActionEnum) { + final var serializedAclLogActionEnum = serializer.serialize(aclLogActionEnum); + assertThat(serializedAclLogActionEnum.getNumber()) + .isEqualTo(expectedAclLogActionEnum.getNumber()); + } + + @Test + void shouldSerializeAclAction() { + final var aclAction = createAclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + + final var expectedAclAction = + Acl.AclAction.newBuilder() + .setForwardAction(Acl.AclForwardActionEnum.ACLFORWARDINGACTION_ACCEPT) + .setLogAction(Acl.AclLogActionEnum.ACLLOGACTION_SYSLOG) + .build(); + + final var serializedAclAction = serializer.serialize(aclAction); + + assertThat(serializedAclAction).usingRecursiveComparison().isEqualTo(expectedAclAction); + } + + @Test + void shouldDeserializeAclAction() { + final var expectedAclAction = + createAclAction(AclForwardActionEnum.DROP, AclLogActionEnum.NO_LOG); + + final var serializedAclAction = serializer.serialize(expectedAclAction); + final var aclAction = serializer.deserialize(serializedAclAction); + + assertThat(aclAction).usingRecursiveComparison().isEqualTo(expectedAclAction); + } + + @Test + void shouldSerializeAclMatch() { + final var aclMatch = createAclMatch(1, 1, "127.0.0.1", "127.0.0.2", 5601, 5602, 1, 2); + + final var expectedAclMatch = + Acl.AclMatch.newBuilder() + .setDscp(1) + .setProtocol(1) + .setSrcAddress("127.0.0.1") + .setDstAddress("127.0.0.2") + .setSrcPort(5601) + .setDstPort(5602) + .setStartMplsLabel(1) + .setEndMplsLabel(2) + .build(); + + final var serializedAclMatch = serializer.serialize(aclMatch); + + assertThat(serializedAclMatch).usingRecursiveComparison().isEqualTo(expectedAclMatch); + } + + @Test + void shouldDeserializeAclMatch() { + final var expectedAclMatch = createAclMatch(7, 2, "127.0.0.5", "127.0.0.6", 32456, 3123, 5, 10); + + final var serializedAclMatch = serializer.serialize(expectedAclMatch); + final var aclMatch = serializer.deserialize(serializedAclMatch); + + assertThat(aclMatch).usingRecursiveComparison().isEqualTo(expectedAclMatch); + } + + @Test + void shouldSerializeAclEntry() { + final var sequenceId = 1; + final var description = "aclEntryDescription"; + + final var aclMatch = createAclMatch(1, 2, "127.0.0.1", "127.0.0.2", 5601, 5602, 5, 10); + final var aclAction = createAclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + final var aclEntry = createAclEntry(sequenceId, description, aclMatch, aclAction); + + final var serializedAclMatch = serializer.serialize(aclMatch); + final var serializedAclAction = serializer.serialize(aclAction); + + final var expectedAclEntry = + Acl.AclEntry.newBuilder() + .setSequenceId(sequenceId) + .setDescription(description) + .setMatch(serializedAclMatch) + .setAction(serializedAclAction) + .build(); + + final var serializedAclEntry = serializer.serialize(aclEntry); + + assertThat(serializedAclEntry).usingRecursiveComparison().isEqualTo(expectedAclEntry); + } + + @Test + void shouldDeserializeAclEntry() { + final var sequenceId = 7; + final var description = "aclEntryDescriptor"; + + final var aclMatch = createAclMatch(1, 2, "127.0.0.1", "127.0.0.2", 5601, 5602, 5, 10); + final var aclAction = createAclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + final var expectedAclEntry = createAclEntry(sequenceId, description, aclMatch, aclAction); + + final var serializedAclEntry = serializer.serialize(expectedAclEntry); + final var aclEntry = serializer.deserialize(serializedAclEntry); + + assertThat(aclEntry).usingRecursiveComparison().isEqualTo(expectedAclEntry); + } + + @Test + void shouldSerializeAclRuleSet() { + final var sequenceId = 1; + final var aclEntryDescription = "aclEntryDescription"; + + final var aclRuleSetName = "aclRuleSetName"; + final var aclRuleSetDescription = "aclRuleSetDescription"; + final var aclRuleSetUserId = "aclRuleSetUserId"; + + final var aclMatch = createAclMatch(1, 2, "127.0.0.1", "127.0.0.2", 5601, 5602, 5, 10); + final var aclAction = createAclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + final var aclEntry = createAclEntry(sequenceId, aclEntryDescription, aclMatch, aclAction); + final var aclRuleSet = + new AclRuleSet( + aclRuleSetName, + AclRuleTypeEnum.MIXED, + aclRuleSetDescription, + aclRuleSetUserId, + List.of(aclEntry)); + + final var serializedAclEntry = serializer.serialize(aclEntry); + final var serializedAclEntries = List.of(serializedAclEntry); + + final var expectedAclRuleSet = + Acl.AclRuleSet.newBuilder() + .setName(aclRuleSetName) + .setType(Acl.AclRuleTypeEnum.ACLRULETYPE_MIXED) + .setDescription(aclRuleSetDescription) + .setUserId(aclRuleSetUserId) + .addAllEntries(serializedAclEntries) + .build(); + + final var serializedAclRuleset = serializer.serialize(aclRuleSet); + + assertThat(serializedAclRuleset).usingRecursiveComparison().isEqualTo(expectedAclRuleSet); + } + + @Test + void shouldDeserializeAclRuleSet() { + final var sequenceId = 1; + final var aclEntryDescription = "aclEntryDescription"; + + final var aclRuleSetName = "aclRuleSetName"; + final var aclRuleSetDescription = "aclRuleSetDescription"; + final var aclRuleSetUserId = "aclRuleSetUserId"; + + final var aclMatch = createAclMatch(1, 2, "127.0.0.1", "127.0.0.2", 5601, 5602, 5, 10); + final var aclAction = createAclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + final var aclEntry = createAclEntry(sequenceId, aclEntryDescription, aclMatch, aclAction); + final var expectedAclRuleSet = + new AclRuleSet( + aclRuleSetName, + AclRuleTypeEnum.MIXED, + aclRuleSetDescription, + aclRuleSetUserId, + List.of(aclEntry)); + + final var serializedAclRuleSet = serializer.serialize(expectedAclRuleSet); + final var aclRuleSet = serializer.deserialize(serializedAclRuleSet); + + assertThat(aclRuleSet).usingRecursiveComparison().isEqualTo(expectedAclRuleSet); + } + + @ParameterizedTest + @MethodSource("provideAclLogActionEnum") + void shouldDeserializeAclLogActionEnum( + AclLogActionEnum expectedAclLogActionEnum, Acl.AclLogActionEnum serializedAclLogActionEnum) { + final var aclLogActionEnum = serializer.deserialize(serializedAclLogActionEnum); + assertThat(aclLogActionEnum).isEqualTo(expectedAclLogActionEnum); + } + + @Test + void shouldSerializeConfigRuleAcl() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + + final var sequenceId = 1; + final var aclEntryDescription = "aclEntryDescription"; + + final var aclRuleSetName = "aclRuleSetName"; + final var aclRuleSetDescription = "aclRuleSetDescription"; + final var aclRuleSetUserId = "aclRuleSetUserId"; + + final var endPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + + final var aclMatch = createAclMatch(1, 2, "127.0.0.1", "127.0.0.2", 5601, 5602, 5, 10); + final var aclAction = createAclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + final var aclEntry = createAclEntry(sequenceId, aclEntryDescription, aclMatch, aclAction); + final var aclRuleSet = + new AclRuleSet( + aclRuleSetName, + AclRuleTypeEnum.MIXED, + aclRuleSetDescription, + aclRuleSetUserId, + List.of(aclEntry)); + + final var configRuleAcl = new ConfigRuleAcl(endPointId, aclRuleSet); + + final var serializedEndPointId = serializer.serialize(endPointId); + final var serializedAclRuleSet = serializer.serialize(aclRuleSet); + + final var expectedConfigRuleAcl = + ContextOuterClass.ConfigRule_ACL.newBuilder() + .setEndpointId(serializedEndPointId) + .setRuleSet(serializedAclRuleSet) + .build(); + + final var serializedConfigRuleAcl = serializer.serialize(configRuleAcl); + + assertThat(serializedConfigRuleAcl).usingRecursiveComparison().isEqualTo(expectedConfigRuleAcl); + } + + @Test + void shouldDeserializeConfigRuleAcl() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + + final var sequenceId = 1; + final var aclEntryDescription = "aclEntryDescription"; + + final var aclRuleSetName = "aclRuleSetName"; + final var aclRuleSetDescription = "aclRuleSetDescription"; + final var aclRuleSetUserId = "aclRuleSetUserId"; + + final var endPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + + final var aclMatch = createAclMatch(1, 2, "127.0.0.1", "127.0.0.2", 5601, 5602, 5, 10); + final var aclAction = createAclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + final var aclEntry = createAclEntry(sequenceId, aclEntryDescription, aclMatch, aclAction); + final var aclRuleSet = + new AclRuleSet( + aclRuleSetName, + AclRuleTypeEnum.MIXED, + aclRuleSetDescription, + aclRuleSetUserId, + List.of(aclEntry)); + + final var expectedConfigRuleAcl = new ConfigRuleAcl(endPointId, aclRuleSet); + + final var serializedConfigRuleAcl = serializer.serialize(expectedConfigRuleAcl); + final var configRuleAcl = serializer.deserialize(serializedConfigRuleAcl); + + assertThat(configRuleAcl).usingRecursiveComparison().isEqualTo(expectedConfigRuleAcl); + } + + @Test + void shouldSerializeConfigRuleCustom() { + final var resourceKey = "resourceKey"; + final var resourceValue = "resourceValue"; + + final var configRuleCustom = new ConfigRuleCustom(resourceKey, resourceValue); + + final var expectedConfigRuleCustom = + ContextOuterClass.ConfigRule_Custom.newBuilder() + .setResourceKey(resourceKey) + .setResourceValue(resourceValue) + .build(); + + final var serializedConfigRuleCustom = serializer.serialize(configRuleCustom); + + assertThat(serializedConfigRuleCustom) + .usingRecursiveComparison() + .isEqualTo(expectedConfigRuleCustom); + } + + @Test + void shouldDeserializeConfigRuleCustom() { + final var resourceKey = "resourceKey"; + final var resourceValue = "resourceValue"; + + final var expectedConfigRuleCustom = new ConfigRuleCustom(resourceKey, resourceValue); + + final var serializedConfigRuleCustom = serializer.serialize(expectedConfigRuleCustom); + final var configRuleCustom = serializer.deserialize(serializedConfigRuleCustom); + + assertThat(configRuleCustom).usingRecursiveComparison().isEqualTo(expectedConfigRuleCustom); + } + + @Test + void shouldSerializeConfigRuleofTypeConfigRuleAcl() { + final var contextIdUuid = "contextId"; + final var topologyIdUuid = "topologyUuid"; + final var deviceIdUuid = "deviceIdUuid"; + final var endpointIdUuid = "endpointIdUuid"; + + final var expectedSerializedContextId = serializer.serializeContextId(contextIdUuid); + final var expectedSerializedTopologyIdUuid = serializer.serializeUuid(topologyIdUuid); + final var expectedSerializedDeviceId = serializer.serializeDeviceId(deviceIdUuid); + final var expectedSerializedEndPointIdUuid = serializer.serializeUuid(endpointIdUuid); + + final var expectedSerializedTopologyId = + ContextOuterClass.TopologyId.newBuilder() + .setContextId(expectedSerializedContextId) + .setTopologyUuid(expectedSerializedTopologyIdUuid) + .build(); + + final var topologyId = new TopologyId(contextIdUuid, topologyIdUuid); + + final var expectedSerializedEndPointId = + ContextOuterClass.EndPointId.newBuilder() + .setTopologyId(expectedSerializedTopologyId) + .setDeviceId(expectedSerializedDeviceId) + .setEndpointUuid(expectedSerializedEndPointIdUuid) + .build(); + + final var endPointId = new EndPointId(topologyId, deviceIdUuid, endpointIdUuid); + + final var expectedSerializedAclMatch = + Acl.AclMatch.newBuilder() + .setDscp(1) + .setProtocol(1) + .setSrcAddress("127.0.0.1") + .setDstAddress("127.0.0.2") + .setSrcPort(5601) + .setDstPort(5602) + .setStartMplsLabel(1) + .setEndMplsLabel(2) + .build(); + + final var aclMatch = createAclMatch(1, 1, "127.0.0.1", "127.0.0.2", 5601, 5602, 1, 2); + + final var expectedSerializedAclAction = + Acl.AclAction.newBuilder() + .setForwardAction(Acl.AclForwardActionEnum.ACLFORWARDINGACTION_ACCEPT) + .setLogAction(Acl.AclLogActionEnum.ACLLOGACTION_SYSLOG) + .build(); + + final var aclAction = createAclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + + final var expectedSerializedAclEntry = + Acl.AclEntry.newBuilder() + .setSequenceId(1) + .setDescription("aclEntryDescription") + .setMatch(expectedSerializedAclMatch) + .setAction(expectedSerializedAclAction) + .build(); + + final var aclEntry = createAclEntry(1, "aclEntryDescription", aclMatch, aclAction); + + final var expectedSerializedAclRuleSet = + Acl.AclRuleSet.newBuilder() + .setName("aclRuleName") + .setType(Acl.AclRuleTypeEnum.ACLRULETYPE_IPV4) + .setDescription("AclRuleDescription") + .setUserId("userId") + .addEntries(expectedSerializedAclEntry) + .build(); + + final var aclRuleSet = + new AclRuleSet( + "aclRuleName", AclRuleTypeEnum.IPV4, "AclRuleDescription", "userId", List.of(aclEntry)); + + final var expectedSerializedConfigRuleAcl = + ContextOuterClass.ConfigRule_ACL.newBuilder() + .setEndpointId(expectedSerializedEndPointId) + .setRuleSet(expectedSerializedAclRuleSet) + .build(); + + final var configRuleAcl = new ConfigRuleAcl(endPointId, aclRuleSet); + + final var expectedConfigRule = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_SET) + .setAcl(expectedSerializedConfigRuleAcl) + .build(); + + final var configRuleTypeAcl = new ConfigRuleTypeAcl(configRuleAcl); + final var configRule = new ConfigRule(ConfigActionEnum.SET, configRuleTypeAcl); + final var serializedConfigRule = serializer.serialize(configRule); + + assertThat(serializedConfigRule).isEqualTo(expectedConfigRule); + } + + @Test + void shouldDeserializeConfigRuleOfTypeConfigRuleAcl() { + final var contextIdUuid = "contextId"; + final var topologyIdUuid = "topologyUuid"; + final var deviceIdUuid = "deviceIdUuid"; + final var endpointIdUuid = "endpointIdUuid"; + + final var serializedContextId = serializer.serializeContextId(contextIdUuid); + final var serializedTopologyIdUuid = serializer.serializeUuid(topologyIdUuid); + final var serializedDeviceId = serializer.serializeDeviceId(deviceIdUuid); + final var serializedEndPointIdUuid = serializer.serializeUuid(endpointIdUuid); + + final var topologyId = new TopologyId(contextIdUuid, topologyIdUuid); + final var serializedTopologyId = + ContextOuterClass.TopologyId.newBuilder() + .setContextId(serializedContextId) + .setTopologyUuid(serializedTopologyIdUuid) + .build(); + + final var endPointId = new EndPointId(topologyId, deviceIdUuid, endpointIdUuid); + final var serializedEndPointId = + ContextOuterClass.EndPointId.newBuilder() + .setTopologyId(serializedTopologyId) + .setDeviceId(serializedDeviceId) + .setEndpointUuid(serializedEndPointIdUuid) + .build(); + + final var aclMatch = createAclMatch(1, 2, "127.0.0.1", "127.0.0.2", 5601, 5602, 5, 10); + final var serializedAclMatch = + Acl.AclMatch.newBuilder() + .setDscp(1) + .setProtocol(2) + .setSrcAddress("127.0.0.1") + .setDstAddress("127.0.0.2") + .setSrcPort(5601) + .setDstPort(5602) + .setStartMplsLabel(5) + .setEndMplsLabel(10) + .build(); + + final var aclAction = createAclAction(AclForwardActionEnum.ACCEPT, AclLogActionEnum.SYSLOG); + final var serializedAclAction = + Acl.AclAction.newBuilder() + .setForwardAction(Acl.AclForwardActionEnum.ACLFORWARDINGACTION_ACCEPT) + .setLogAction(Acl.AclLogActionEnum.ACLLOGACTION_SYSLOG) + .build(); + + final var aclEntry = createAclEntry(1, "aclEntryDescription", aclMatch, aclAction); + + final var serializedAclEntry = + Acl.AclEntry.newBuilder() + .setSequenceId(1) + .setDescription("aclEntryDescription") + .setMatch(serializedAclMatch) + .setAction(serializedAclAction) + .build(); + + final var aclRuleSet = + new AclRuleSet( + "aclRuleName", + eu.teraflow.policy.acl.AclRuleTypeEnum.IPV4, + "AclRuleDescription", + "userId", + List.of(aclEntry)); + + final var serializedAclRuleSet = + Acl.AclRuleSet.newBuilder() + .setName("aclRuleName") + .setType(Acl.AclRuleTypeEnum.ACLRULETYPE_IPV4) + .setDescription("AclRuleDescription") + .setUserId("userId") + .addEntries(serializedAclEntry) + .build(); + + final var configRuleAcl = new ConfigRuleAcl(endPointId, aclRuleSet); + final var configRuleTypeAcl = new ConfigRuleTypeAcl(configRuleAcl); + + final var expectedConfigRule = new ConfigRule(ConfigActionEnum.DELETE, configRuleTypeAcl); + + final var serializedConfigRuleAcl = + ContextOuterClass.ConfigRule_ACL.newBuilder() + .setEndpointId(serializedEndPointId) + .setRuleSet(serializedAclRuleSet) + .build(); + + final var serializedConfigRule = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_DELETE) + .setAcl(serializedConfigRuleAcl) + .build(); + + final var configRule = serializer.deserialize(serializedConfigRule); + + assertThat(configRule).usingRecursiveComparison().isEqualTo(expectedConfigRule); + } + + @Test + void shouldSerializeConfigRuleOfTypeConfigRuleCustom() { + final var expectedSerializedConfigRuleCustom = + ContextOuterClass.ConfigRule_Custom.newBuilder() + .setResourceKey("resourceKey") + .setResourceValue("resourceValue") + .build(); + + final var configRuleCustom = new ConfigRuleCustom("resourceKey", "resourceValue"); + + final var expectedConfigRule = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_SET) + .setCustom(expectedSerializedConfigRuleCustom) + .build(); + + final var configRuleTypeCustom = new ConfigRuleTypeCustom(configRuleCustom); + final var configRule = new ConfigRule(ConfigActionEnum.SET, configRuleTypeCustom); + final var serializedConfigRule = serializer.serialize(configRule); + + assertThat(serializedConfigRule).isEqualTo(expectedConfigRule); + } + + @Test + void shouldDeserializeConfigRuleOfTypeConfigRuleCustom() { + final var serializedConfigRuleCustom = + ContextOuterClass.ConfigRule_Custom.newBuilder() + .setResourceKey("resourceKey") + .setResourceValue("resourceValue") + .build(); + + final var expectedConfigRuleCustom = new ConfigRuleCustom("resourceKey", "resourceValue"); + final var configRuleTypeCustom = new ConfigRuleTypeCustom(expectedConfigRuleCustom); + final var expectedConfigRule = new ConfigRule(ConfigActionEnum.SET, configRuleTypeCustom); + + final var serializedConfigRule = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_SET) + .setCustom(serializedConfigRuleCustom) + .build(); + + final var configRule = serializer.deserialize(serializedConfigRule); + + assertThat(configRule).usingRecursiveComparison().isEqualTo(expectedConfigRule); + } + + @Test + void shouldThrowIllegalStateExceptionDuringDeserializationOfNonSpecifiedConfigRule() { + final var serializedConfigRule = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_SET) + .build(); + + assertThatExceptionOfType(IllegalStateException.class) + .isThrownBy(() -> serializer.deserialize(serializedConfigRule)); + } + + @Test + void shouldSerializeConstraintCustom() { + final var expectedConstraintType = "constraintType"; + final var expectedConstraintValue = "constraintValue"; + + final var constraintCustom = + new ConstraintCustom(expectedConstraintType, expectedConstraintValue); + + final var expectedConstraintCustom = + ContextOuterClass.Constraint_Custom.newBuilder() + .setConstraintType(expectedConstraintType) + .setConstraintValue(expectedConstraintValue) + .build(); + + final var serializedConstraintCustom = serializer.serialize(constraintCustom); + + assertThat(serializedConstraintCustom) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintCustom); + } + + @Test + void shouldDeserializeConstraintCustom() { + final var expectedConstraintType = "constraintType"; + final var expectedConstraintValue = "constraintValue"; + final var expectedConstraintCustom = + new ConstraintCustom(expectedConstraintType, expectedConstraintValue); + + final var serializedConstraintCustom = + ContextOuterClass.Constraint_Custom.newBuilder() + .setConstraintType(expectedConstraintType) + .setConstraintValue(expectedConstraintValue) + .build(); + + final var constraintCustom = serializer.deserialize(serializedConstraintCustom); + + assertThat(constraintCustom).usingRecursiveComparison().isEqualTo(expectedConstraintCustom); + } + + @Test + void shouldSerializeConstraintSchedule() { + final var expectedStartTimestamp = 10; + final var expectedDurationDays = 2.2f; + + final var constraintSchedule = + new ConstraintSchedule(expectedStartTimestamp, expectedDurationDays); + + final var expectedConstraintSchedule = + ContextOuterClass.Constraint_Schedule.newBuilder() + .setStartTimestamp(expectedStartTimestamp) + .setDurationDays(expectedDurationDays) + .build(); + + final var serializedConstraintSchedule = serializer.serialize(constraintSchedule); + + assertThat(serializedConstraintSchedule) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintSchedule); + } + + @Test + void shouldDeserializeConstraintSchedule() { + final var expectedStartTimestamp = 10; + final var expectedDurationDays = 2.2f; + + final var expectedConstraintSchedule = + new ConstraintSchedule(expectedStartTimestamp, expectedDurationDays); + + final var serializedConstraintSchedule = + ContextOuterClass.Constraint_Schedule.newBuilder() + .setStartTimestamp(expectedStartTimestamp) + .setDurationDays(expectedDurationDays) + .build(); + + final var constraintSchedule = serializer.deserialize(serializedConstraintSchedule); + + assertThat(constraintSchedule).usingRecursiveComparison().isEqualTo(expectedConstraintSchedule); + } + + @Test + void shouldSerializeLocationOfTypeRegion() { + final var region = "Tokyo"; + + final var locationTypeRegion = new LocationTypeRegion(region); + final var location = new Location(locationTypeRegion); + + final var expectedLocation = ContextOuterClass.Location.newBuilder().setRegion(region).build(); + + final var serializedLocation = serializer.serialize(location); + + assertThat(serializedLocation).isEqualTo(expectedLocation); + } + + @Test + void shouldDeserializeLocationOfTypeRegion() { + final var region = "Tokyo"; + + final var locationTypeRegion = new LocationTypeRegion(region); + final var expectedLocation = new Location(locationTypeRegion); + + final var serializedLocation = + ContextOuterClass.Location.newBuilder().setRegion(region).build(); + + final var location = serializer.deserialize(serializedLocation); + + assertThat(location).usingRecursiveComparison().isEqualTo(expectedLocation); + } + + @Test + void shouldSerializeLocationOfTypeGpsPosition() { + final var latitude = 33.3f; + final var longitude = 86.4f; + + final var gpsPosition = new GpsPosition(latitude, longitude); + final var locationTypeGpsPosition = new LocationTypeGpsPosition(gpsPosition); + final var location = new Location(locationTypeGpsPosition); + + final var serializedGpsPosition = + ContextOuterClass.GPS_Position.newBuilder() + .setLatitude(latitude) + .setLongitude(longitude) + .build(); + + final var expectedLocation = + ContextOuterClass.Location.newBuilder().setGpsPosition(serializedGpsPosition).build(); + + final var serializedLocation = serializer.serialize(location); + + assertThat(serializedLocation).isEqualTo(expectedLocation); + } + + @Test + void shouldDeserializeLocationOfTypeGpsPosition() { + final var latitude = 33.3f; + final var longitude = 86.4f; + + final var gpsPosition = new GpsPosition(latitude, longitude); + final var locationTypeGpsPosition = new LocationTypeGpsPosition(gpsPosition); + final var expectedLocation = new Location(locationTypeGpsPosition); + + final var serializedGpsPosition = + ContextOuterClass.GPS_Position.newBuilder() + .setLatitude(latitude) + .setLongitude(longitude) + .build(); + + final var serializedLocation = + ContextOuterClass.Location.newBuilder().setGpsPosition(serializedGpsPosition).build(); + + final var location = serializer.deserialize(serializedLocation); + + assertThat(location).usingRecursiveComparison().isEqualTo(expectedLocation); + } + + @Test + void shouldThrowIllegalStateExceptionDuringDeserializationOfNonSpecifiedLocation() { + final var serializedLocation = ContextOuterClass.Location.newBuilder().build(); + + assertThatExceptionOfType(IllegalStateException.class) + .isThrownBy(() -> serializer.deserialize(serializedLocation)); + } + + private static Stream provideIsolationLevelEnum() { + return Stream.of( + Arguments.of( + IsolationLevelEnum.NO_ISOLATION, ContextOuterClass.IsolationLevelEnum.NO_ISOLATION), + Arguments.of( + IsolationLevelEnum.PHYSICAL_ISOLATION, + ContextOuterClass.IsolationLevelEnum.PHYSICAL_ISOLATION), + Arguments.of( + IsolationLevelEnum.LOGICAL_ISOLATION, + ContextOuterClass.IsolationLevelEnum.LOGICAL_ISOLATION), + Arguments.of( + IsolationLevelEnum.PROCESS_ISOLATION, + ContextOuterClass.IsolationLevelEnum.PROCESS_ISOLATION), + Arguments.of( + IsolationLevelEnum.PHYSICAL_MEMORY_ISOLATION, + ContextOuterClass.IsolationLevelEnum.PHYSICAL_MEMORY_ISOLATION), + Arguments.of( + IsolationLevelEnum.PHYSICAL_NETWORK_ISOLATION, + ContextOuterClass.IsolationLevelEnum.PHYSICAL_NETWORK_ISOLATION), + Arguments.of( + IsolationLevelEnum.VIRTUAL_RESOURCE_ISOLATION, + ContextOuterClass.IsolationLevelEnum.VIRTUAL_RESOURCE_ISOLATION), + Arguments.of( + IsolationLevelEnum.NETWORK_FUNCTIONS_ISOLATION, + ContextOuterClass.IsolationLevelEnum.NETWORK_FUNCTIONS_ISOLATION), + Arguments.of( + IsolationLevelEnum.SERVICE_ISOLATION, + ContextOuterClass.IsolationLevelEnum.SERVICE_ISOLATION)); + } + + @ParameterizedTest + @MethodSource("provideIsolationLevelEnum") + void shouldSerializeIsolationLevelEnum( + IsolationLevelEnum isolationLevelEnum, + ContextOuterClass.IsolationLevelEnum expectedIsolationLevelEnum) { + final var serializedIsolationLevelEnum = serializer.serialize(isolationLevelEnum); + + assertThat(serializedIsolationLevelEnum.getNumber()) + .isEqualTo(expectedIsolationLevelEnum.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideIsolationLevelEnum") + void shouldDeserializeIsolationLevelEnum( + IsolationLevelEnum expectedIsolationLevelEnum, + ContextOuterClass.IsolationLevelEnum serializedIsolationLevelEnum) { + final var isolationLevelEnum = serializer.deserialize(serializedIsolationLevelEnum); + + assertThat(isolationLevelEnum).isEqualTo(expectedIsolationLevelEnum); + } + + @Test + void shouldSerializeConstraintEndPointLocation() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + final var endPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + + final var locationType = new LocationTypeRegion("ATH"); + final var location = new Location(locationType); + + final var constraintEndPointLocation = new ConstraintEndPointLocation(endPointId, location); + + final var serializedEndPointId = serializer.serialize(endPointId); + final var serializedLocation = serializer.serialize(location); + + final var expectedConstraintEndPointLocation = + ContextOuterClass.Constraint_EndPointLocation.newBuilder() + .setEndpointId(serializedEndPointId) + .setLocation(serializedLocation) + .build(); + + final var serializedConstraintEndPointLocation = + serializer.serialize(constraintEndPointLocation); + + assertThat(serializedConstraintEndPointLocation) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintEndPointLocation); + } + + @Test + void shouldDeserializeConstraintEndPointLocation() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + final var endPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + + final var latitude = 54.6f; + final var longitude = 123.7f; + final var gpsPosition = new GpsPosition(latitude, longitude); + + final var locationType = new LocationTypeGpsPosition(gpsPosition); + final var location = new Location(locationType); + + final var expectedConstraintEndPointLocation = + new ConstraintEndPointLocation(endPointId, location); + + final var serializedEndPointId = serializer.serialize(endPointId); + final var serializedLocation = serializer.serialize(location); + + final var serializedConstraintEndPointLocation = + ContextOuterClass.Constraint_EndPointLocation.newBuilder() + .setEndpointId(serializedEndPointId) + .setLocation(serializedLocation) + .build(); + + final var constraintEndPointLocation = + serializer.deserialize(serializedConstraintEndPointLocation); + + assertThat(constraintEndPointLocation) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintEndPointLocation); + } + + @Test + void shouldSerializeConstraintSlaAvailability() { + final var numDisJointPaths = 2; + final var isAllActive = true; + + final var constraintSlaAvailability = + new ConstraintSlaAvailability(numDisJointPaths, isAllActive); + + final var expectedConstraintSlaAvailability = + ContextOuterClass.Constraint_SLA_Availability.newBuilder() + .setNumDisjointPaths(numDisJointPaths) + .setAllActive(isAllActive) + .build(); + + final var serializedConstraintSlaAvailability = serializer.serialize(constraintSlaAvailability); + + assertThat(serializedConstraintSlaAvailability) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintSlaAvailability); + } + + @Test + void shouldDeserializeConstraintSlaAvailability() { + final var numDisJointPaths = 2; + final var isAllActive = true; + + final var expectedConstraintSlaAvailability = + new ConstraintSlaAvailability(numDisJointPaths, isAllActive); + + final var serializedConstraintSlaAvailability = + ContextOuterClass.Constraint_SLA_Availability.newBuilder() + .setNumDisjointPaths(numDisJointPaths) + .setAllActive(isAllActive) + .build(); + + final var constraintSlaAvailability = + serializer.deserialize(serializedConstraintSlaAvailability); + + assertThat(constraintSlaAvailability) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintSlaAvailability); + } + + @Test + void shouldSerializeConstraintSlaCapacity() { + final var capacityGbps = 5; + + final var constraintSlaCapacity = new ConstraintSlaCapacity(capacityGbps); + + final var expectedConstraintSlaCapacity = + ContextOuterClass.Constraint_SLA_Capacity.newBuilder() + .setCapacityGbps(capacityGbps) + .build(); + + final var serializedConstraintSlaCapacity = serializer.serialize(constraintSlaCapacity); + + assertThat(serializedConstraintSlaCapacity) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintSlaCapacity); + } + + @Test + void shouldDeserializeConstraintSlaCapacity() { + final var capacityGbps = 5; + + final var expectedConstraintSlaCapacity = new ConstraintSlaCapacity(capacityGbps); + + final var serializedConstraintSlaCapacity = + ContextOuterClass.Constraint_SLA_Capacity.newBuilder() + .setCapacityGbps(capacityGbps) + .build(); + + final var constraintSlaCapacity = serializer.deserialize(serializedConstraintSlaCapacity); + + assertThat(constraintSlaCapacity) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintSlaCapacity); + } + + @Test + void shouldSerializeConstraintSlaIsolationLevel() { + final var isolationLevelEnum = IsolationLevelEnum.NETWORK_FUNCTIONS_ISOLATION; + + final var constraintSlaIsolationLevel = new ConstraintSlaIsolationLevel(isolationLevelEnum); + + final var serializedIsolationLevelEnum = serializer.serialize(isolationLevelEnum); + final var expectedConstraintSlaIsolationLevel = + ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder() + .setIsolationLevel(serializedIsolationLevelEnum) + .build(); + + final var serializedConstraintSlaIsolationLevel = + serializer.serialize(constraintSlaIsolationLevel); + + assertThat(serializedConstraintSlaIsolationLevel) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintSlaIsolationLevel); + } + + @Test + void shouldDeserializeConstraintSlaIsolationLevel() { + final var isolationLevelEnum = IsolationLevelEnum.NETWORK_FUNCTIONS_ISOLATION; + + final var expectedConstraintSlaIsolationLevel = + new ConstraintSlaIsolationLevel(isolationLevelEnum); + + final var serializedIsolationLevelEnum = serializer.serialize(isolationLevelEnum); + final var serializedConstraintSlaIsolationLevel = + ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder() + .setIsolationLevel(serializedIsolationLevelEnum) + .build(); + + final var constraintSlaIsolationLevel = + serializer.deserialize(serializedConstraintSlaIsolationLevel); + + assertThat(constraintSlaIsolationLevel) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintSlaIsolationLevel); + } + + @Test + void shouldSerializeConstraintSlaLatency() { + final var e2eLatencyMs = 5.7f; + + final var constraintSlaLatency = new ConstraintSlaLatency(e2eLatencyMs); + + final var expectedConstraintSlaLatency = + ContextOuterClass.Constraint_SLA_Latency.newBuilder().setE2ELatencyMs(e2eLatencyMs).build(); + + final var serializedConstraintSlaLatency = serializer.serialize(constraintSlaLatency); + + assertThat(serializedConstraintSlaLatency) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintSlaLatency); + } + + @Test + void shouldDeserializeConstraintSlaLatency() { + final var e2eLatencyMs = 5.7f; + + final var expectedConstraintSlaLatency = new ConstraintSlaLatency(e2eLatencyMs); + + final var serializedConstraintSlaLatency = + ContextOuterClass.Constraint_SLA_Latency.newBuilder().setE2ELatencyMs(e2eLatencyMs).build(); + + final var constraintSlaLatency = serializer.deserialize(serializedConstraintSlaLatency); + + assertThat(constraintSlaLatency) + .usingRecursiveComparison() + .isEqualTo(expectedConstraintSlaLatency); + } + + @Test + void shouldSerializeConstraintOfTypeConstraintCustom() { + final var expectedConstraintType = "constraintType"; + final var expectedConstraintValue = "constraintValue"; + + final var constraintCustom = + new ConstraintCustom(expectedConstraintType, expectedConstraintValue); + final var constraintTypeCustom = new ConstraintTypeCustom(constraintCustom); + final var constraint = new Constraint(constraintTypeCustom); + + final var expectedConstraintCustom = + ContextOuterClass.Constraint_Custom.newBuilder() + .setConstraintType(expectedConstraintType) + .setConstraintValue(expectedConstraintValue) + .build(); + + final var expectedConstraint = + ContextOuterClass.Constraint.newBuilder().setCustom(expectedConstraintCustom).build(); + + final var serializedConstraint = serializer.serialize(constraint); + + assertThat(serializedConstraint).usingRecursiveComparison().isEqualTo(expectedConstraint); + } + + @Test + void shouldDeserializeConstraintOfTypeConstraintCustom() { + final var expectedConstraintType = "constraintType"; + final var expectedConstraintValue = "constraintValue"; + + final var constraintCustom = + new ConstraintCustom(expectedConstraintType, expectedConstraintValue); + final var constraintTypeCustom = new ConstraintTypeCustom(constraintCustom); + final var expectedConstraint = new Constraint(constraintTypeCustom); + + final var serializedConstraintCustom = + ContextOuterClass.Constraint_Custom.newBuilder() + .setConstraintType(expectedConstraintType) + .setConstraintValue(expectedConstraintValue) + .build(); + + final var serializedConstraint = + ContextOuterClass.Constraint.newBuilder().setCustom(serializedConstraintCustom).build(); + + final var constraint = serializer.deserialize(serializedConstraint); + + assertThat(constraint).usingRecursiveComparison().isEqualTo(expectedConstraint); + } + + @Test + void shouldSerializeConstraintOfTypeConstraintSchedule() { + final var startTimeSTamp = 2.2f; + final var durationDays = 5.73f; + + final var constraintSchedule = new ConstraintSchedule(startTimeSTamp, durationDays); + final var constraintTypeSchedule = new ConstraintTypeSchedule(constraintSchedule); + final var constraint = new Constraint(constraintTypeSchedule); + + final var expectedConstraintSchedule = + ContextOuterClass.Constraint_Schedule.newBuilder() + .setStartTimestamp(startTimeSTamp) + .setDurationDays(durationDays) + .build(); + + final var expectedConstraint = + ContextOuterClass.Constraint.newBuilder().setSchedule(expectedConstraintSchedule).build(); + + final var serializedConstraint = serializer.serialize(constraint); + + assertThat(serializedConstraint).isEqualTo(expectedConstraint); + } + + @Test + void shouldDeserializeConstraintOfTypeConstraintSchedule() { + final var startTimeSTamp = 2.2f; + final var durationDays = 5.73f; + + final var expectedConstraintSchedule = new ConstraintSchedule(startTimeSTamp, durationDays); + final var expectedConstraintTypeSchedule = + new ConstraintTypeSchedule(expectedConstraintSchedule); + final var expectedConstraint = new Constraint(expectedConstraintTypeSchedule); + + final var serializedConstraintSchedule = + ContextOuterClass.Constraint_Schedule.newBuilder() + .setStartTimestamp(startTimeSTamp) + .setDurationDays(durationDays) + .build(); + + final var serializedConstraint = + ContextOuterClass.Constraint.newBuilder().setSchedule(serializedConstraintSchedule).build(); + + final var constraint = serializer.deserialize(serializedConstraint); + + assertThat(constraint).usingRecursiveComparison().isEqualTo(expectedConstraint); + } + + @Test + void shouldSerializeConstraintOfTypeConstraintEndPointLocation() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + final var endPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + + final var locationType = new LocationTypeRegion("ATH"); + final var location = new Location(locationType); + + final var constraintEndPointLocation = new ConstraintEndPointLocation(endPointId, location); + final var constraintTypeEndPointLocation = + new ConstraintTypeEndPointLocation(constraintEndPointLocation); + final var constraint = new Constraint(constraintTypeEndPointLocation); + + final var serializedEndPointId = serializer.serialize(endPointId); + final var serializedLocation = serializer.serialize(location); + + final var expectedConstraintEndPointLocation = + ContextOuterClass.Constraint_EndPointLocation.newBuilder() + .setEndpointId(serializedEndPointId) + .setLocation(serializedLocation) + .build(); + + final var expectedConstraint = + ContextOuterClass.Constraint.newBuilder() + .setEndpointLocation(expectedConstraintEndPointLocation) + .build(); + + final var serializedConstraint = serializer.serialize(constraint); + + assertThat(serializedConstraint).isEqualTo(expectedConstraint); + } + + @Test + void shouldDeserializeConstraintOfTypeConstraintEndPointLocation() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + final var endPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + + final var locationType = new LocationTypeRegion("ATH"); + final var location = new Location(locationType); + + final var expectedConstraintEndPointLocation = + new ConstraintEndPointLocation(endPointId, location); + final var expectedConstraintTypeEndPointLocation = + new ConstraintTypeEndPointLocation(expectedConstraintEndPointLocation); + final var expectedConstraint = new Constraint(expectedConstraintTypeEndPointLocation); + + final var serializedEndPointId = serializer.serialize(endPointId); + final var serializedLocation = serializer.serialize(location); + + final var serializedEndPointLocation = + ContextOuterClass.Constraint_EndPointLocation.newBuilder() + .setEndpointId(serializedEndPointId) + .setLocation(serializedLocation) + .build(); + + final var serializedConstraint = + ContextOuterClass.Constraint.newBuilder() + .setEndpointLocation(serializedEndPointLocation) + .build(); + + final var constraint = serializer.deserialize(serializedConstraint); + + assertThat(constraint).usingRecursiveComparison().isEqualTo(expectedConstraint); + } + + @Test + void shouldSerializeConstraintOfTypeConstraintSlaAvailability() { + final var numDisjointPaths = 2; + final var isAllActive = true; + + final var constraintSlaAvailability = + new ConstraintSlaAvailability(numDisjointPaths, isAllActive); + final var constraintTypeSlaAvailability = + new ConstraintTypeSlaAvailability(constraintSlaAvailability); + final var constraint = new Constraint(constraintTypeSlaAvailability); + + final var expectedConstraintSlaAvailability = + ContextOuterClass.Constraint_SLA_Availability.newBuilder() + .setNumDisjointPaths(numDisjointPaths) + .setAllActive(isAllActive) + .build(); + + final var expectedConstraint = + ContextOuterClass.Constraint.newBuilder() + .setSlaAvailability(expectedConstraintSlaAvailability) + .build(); + + final var serializedConstraint = serializer.serialize(constraint); + + assertThat(serializedConstraint).isEqualTo(expectedConstraint); + } + + @Test + void shouldDeserializeConstraintOfTypeConstraintSlaAvailability() { + final var numDisjointPaths = 2; + final var isAllActive = true; + + final var expectedConstraintSlaAvailability = + new ConstraintSlaAvailability(numDisjointPaths, isAllActive); + final var expectedConstraintTypeSlaAvailability = + new ConstraintTypeSlaAvailability(expectedConstraintSlaAvailability); + final var expectedConstraint = new Constraint(expectedConstraintTypeSlaAvailability); + + final var serializedConstraintSlaAvailability = + ContextOuterClass.Constraint_SLA_Availability.newBuilder() + .setNumDisjointPaths(numDisjointPaths) + .setAllActive(isAllActive) + .build(); + + final var serializedConstraint = + ContextOuterClass.Constraint.newBuilder() + .setSlaAvailability(serializedConstraintSlaAvailability) + .build(); + + final var constraint = serializer.deserialize(serializedConstraint); + + assertThat(constraint).usingRecursiveComparison().isEqualTo(expectedConstraint); + } + + @Test + void shouldSerializeConstraintOfTypeConstraintSlaCapacity() { + final var capacityGbps = 77.3f; + + final var constraintSlaCapacity = new ConstraintSlaCapacity(capacityGbps); + final var constraintTypeSlaCapacity = new ConstraintTypeSlaCapacity(constraintSlaCapacity); + final var constraint = new Constraint(constraintTypeSlaCapacity); + + final var expectedConstraintSlaCapacity = + ContextOuterClass.Constraint_SLA_Capacity.newBuilder() + .setCapacityGbps(capacityGbps) + .build(); + + final var expectedConstraint = + ContextOuterClass.Constraint.newBuilder() + .setSlaCapacity(expectedConstraintSlaCapacity) + .build(); + + final var serializedConstraint = serializer.serialize(constraint); + + assertThat(serializedConstraint).isEqualTo(expectedConstraint); + } + + @Test + void shouldDeserializeConstraintOfTypeConstraintSlaCapacity() { + final var capacityGbps = 77.3f; + + final var expectedConstraintSlaCapacity = new ConstraintSlaCapacity(capacityGbps); + final var expectedConstraintTypeSlaCapacity = + new ConstraintTypeSlaCapacity(expectedConstraintSlaCapacity); + final var expectedConstraint = new Constraint(expectedConstraintTypeSlaCapacity); + + final var serializedConstraintSlaCapacity = + ContextOuterClass.Constraint_SLA_Capacity.newBuilder() + .setCapacityGbps(capacityGbps) + .build(); + + final var serializedConstraint = + ContextOuterClass.Constraint.newBuilder() + .setSlaCapacity(serializedConstraintSlaCapacity) + .build(); + + final var constraint = serializer.deserialize(serializedConstraint); + + assertThat(constraint).usingRecursiveComparison().isEqualTo(expectedConstraint); + } + + @Test + void shouldDeserializeConstraintOfTypeConstraintSlaIsolationLevel() { + final var isolationLevelEnum = IsolationLevelEnum.PHYSICAL_ISOLATION; + + final var expectedConstraintSlaIsolationLevel = + new ConstraintSlaIsolationLevel(isolationLevelEnum); + final var expectedConstraintTypeSlaIsolationLevel = + new ConstraintTypeSlaIsolationLevel(expectedConstraintSlaIsolationLevel); + final var expectedConstraint = new Constraint(expectedConstraintTypeSlaIsolationLevel); + + final var serializedIsolationLevelEnum = serializer.serialize(isolationLevelEnum); + + final var serializedConstraintSlaIsolationLevel = + ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder() + .setIsolationLevel(serializedIsolationLevelEnum) + .build(); + + final var serializedConstraint = + ContextOuterClass.Constraint.newBuilder() + .setSlaIsolation(serializedConstraintSlaIsolationLevel) + .build(); + + final var constraint = serializer.deserialize(serializedConstraint); + + assertThat(constraint).usingRecursiveComparison().isEqualTo(expectedConstraint); + } + + @Test + void shouldSerializeConstraintOfTypeConstraintSlaIsolationLevel() { + final var isolationLevelEnum = IsolationLevelEnum.PHYSICAL_ISOLATION; + + final var constraintSlaIsolationLevel = new ConstraintSlaIsolationLevel(isolationLevelEnum); + final var constraintTypeSlaIsolationLevel = + new ConstraintTypeSlaIsolationLevel(constraintSlaIsolationLevel); + final var constraint = new Constraint(constraintTypeSlaIsolationLevel); + + final var serializedIsolationLevelEnum = serializer.serialize(isolationLevelEnum); + + final var expectedConstraintSlaIsolationLevel = + ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder() + .setIsolationLevel(serializedIsolationLevelEnum) + .build(); + + final var expectedConstraint = + ContextOuterClass.Constraint.newBuilder() + .setSlaIsolation(expectedConstraintSlaIsolationLevel) + .build(); + + final var serializedConstraint = serializer.serialize(constraint); + + assertThat(serializedConstraint).isEqualTo(expectedConstraint); + } + + @Test + void shouldSerializeConstraintOfTypeConstraintSlaLatency() { + final var e2eLatencyMs = 45.32f; + + final var constraintSlaLatency = new ConstraintSlaLatency(e2eLatencyMs); + final var constraintTypeSlaLatency = new ConstraintTypeSlaLatency(constraintSlaLatency); + final var constraint = new Constraint(constraintTypeSlaLatency); + + final var expectedConstraintSlaLatency = + ContextOuterClass.Constraint_SLA_Latency.newBuilder().setE2ELatencyMs(e2eLatencyMs).build(); + + final var expectedConstraint = + ContextOuterClass.Constraint.newBuilder() + .setSlaLatency(expectedConstraintSlaLatency) + .build(); + + final var serializedConstraint = serializer.serialize(constraint); + + assertThat(serializedConstraint).isEqualTo(expectedConstraint); + } + + @Test + void shouldDeserializeConstraintOfTypeConstraintSlaLatency() { + final var e2eLatencyMs = 45.32f; + + final var expectedConstraintSlaLatency = new ConstraintSlaLatency(e2eLatencyMs); + final var expectedConstraintTypeSlaLatency = + new ConstraintTypeSlaLatency(expectedConstraintSlaLatency); + final var expectedConstraint = new Constraint(expectedConstraintTypeSlaLatency); + + final var serializedConstraintSlaLatency = + ContextOuterClass.Constraint_SLA_Latency.newBuilder().setE2ELatencyMs(e2eLatencyMs).build(); + + final var serializedConstraint = + ContextOuterClass.Constraint.newBuilder() + .setSlaLatency(serializedConstraintSlaLatency) + .build(); + + final var constraint = serializer.deserialize(serializedConstraint); + + assertThat(constraint).usingRecursiveComparison().isEqualTo(expectedConstraint); + } + + @Test + void shouldThrowIllegalStateExceptionDuringDeserializationOfNonSpecifiedConstraint() { + final var serializedKpiValue = ContextOuterClass.Constraint.newBuilder().build(); + + assertThatExceptionOfType(IllegalStateException.class) + .isThrownBy(() -> serializer.deserialize(serializedKpiValue)); + } + + @Test + void shouldSerializeEndPointId() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + + final var endPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + + final var serializedTopologyId = serializer.serialize(expectedTopologyId); + final var serializedDeviceId = serializer.serializeDeviceId(expectedDeviceId); + final var serializedEndPointUuid = serializer.serializeUuid(expectedId); + + final var expectedEndPointId = + ContextOuterClass.EndPointId.newBuilder() + .setTopologyId(serializedTopologyId) + .setDeviceId(serializedDeviceId) + .setEndpointUuid(serializedEndPointUuid) + .build(); + + final var serializedEndPointId = serializer.serialize(endPointId); + + assertThat(serializedEndPointId).usingRecursiveComparison().isEqualTo(expectedEndPointId); + } + + @Test + void shouldDeserializeEndPointId() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + + final var expectedEndPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + + final var serializedEndPointId = serializer.serialize(expectedEndPointId); + final var endPointId = serializer.deserialize(serializedEndPointId); + + assertThat(endPointId).usingRecursiveComparison().isEqualTo(expectedEndPointId); + } + + private static Stream provideEventTypeEnum() { + return Stream.of( + Arguments.of(EventTypeEnum.CREATE, ContextOuterClass.EventTypeEnum.EVENTTYPE_CREATE), + Arguments.of(EventTypeEnum.REMOVE, ContextOuterClass.EventTypeEnum.EVENTTYPE_REMOVE), + Arguments.of(EventTypeEnum.UNDEFINED, ContextOuterClass.EventTypeEnum.EVENTTYPE_UNDEFINED), + Arguments.of(EventTypeEnum.UPDATE, ContextOuterClass.EventTypeEnum.EVENTTYPE_UPDATE)); + } + + @ParameterizedTest + @MethodSource("provideEventTypeEnum") + void shouldSerializeEventType( + EventTypeEnum eventType, ContextOuterClass.EventTypeEnum expectedSerializedType) { + final var serializedType = serializer.serialize(eventType); + + assertThat(serializedType.getNumber()).isEqualTo(expectedSerializedType.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideEventTypeEnum") + void shouldDeserializeEventType( + EventTypeEnum expectedEventType, ContextOuterClass.EventTypeEnum serializedEventType) { + final var eventType = serializer.deserialize(serializedEventType); + + assertThat(eventType).isEqualTo(expectedEventType); + } + + @Test + void shouldSerializeEvent() { + final var timestamp = ContextOuterClass.Timestamp.newBuilder().setTimestamp(1).build(); + + final var expectedEvent = + ContextOuterClass.Event.newBuilder() + .setTimestamp(timestamp) + .setEventType(ContextOuterClass.EventTypeEnum.EVENTTYPE_CREATE) + .build(); + + final var event = new Event(1, EventTypeEnum.CREATE); + final var serializedEvent = serializer.serialize(event); + + assertThat(serializedEvent).usingRecursiveComparison().isEqualTo(expectedEvent); + } + + @Test + void shouldDeserializeEvent() { + final var expectedEvent = new Event(1, EventTypeEnum.CREATE); + final var timestamp = ContextOuterClass.Timestamp.newBuilder().setTimestamp(1).build(); + + final var serializedEvent = + ContextOuterClass.Event.newBuilder() + .setTimestamp(timestamp) + .setEventType(ContextOuterClass.EventTypeEnum.EVENTTYPE_CREATE) + .build(); + final var event = serializer.deserialize(serializedEvent); + + assertThat(event).usingRecursiveComparison().isEqualTo(expectedEvent); + } + + @Test + void shouldSerializeServiceId() { + final var expectedContextId = "expectedContextId"; + final var expectedId = "expectedId"; + final var serviceId = new ServiceId(expectedContextId, expectedId); + + final var serializedContextId = serializer.serializeContextId(expectedContextId); + final var serializedIdUuid = serializer.serializeUuid(expectedId); + + final var expectedServiceId = + ContextOuterClass.ServiceId.newBuilder() + .setContextId(serializedContextId) + .setServiceUuid(serializedIdUuid) + .build(); + + final var serializedServiceId = serializer.serialize(serviceId); + + assertThat(serializedServiceId).usingRecursiveComparison().isEqualTo(expectedServiceId); + } + + @Test + void shouldDeserializeServiceId() { + final var expectedContextId = "expectedContextId"; + final var expectedId = "expectedId"; + + final var expectedServiceId = new ServiceId(expectedContextId, expectedId); + + final var serializedServiceId = serializer.serialize(expectedServiceId); + + final var serviceId = serializer.deserialize(serializedServiceId); + + assertThat(serviceId).usingRecursiveComparison().isEqualTo(expectedServiceId); + } + + private static Stream provideServiceStatusEnum() { + return Stream.of( + Arguments.of( + ServiceStatusEnum.ACTIVE, ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_ACTIVE), + Arguments.of( + ServiceStatusEnum.PLANNED, ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_PLANNED), + Arguments.of( + ServiceStatusEnum.PENDING_REMOVAL, + ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_PENDING_REMOVAL), + Arguments.of( + ServiceStatusEnum.UNDEFINED, + ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_UNDEFINED)); + } + + @ParameterizedTest + @MethodSource("provideServiceStatusEnum") + void shouldSerializeServiceStatusEnum( + ServiceStatusEnum serviceStatusEnum, + ContextOuterClass.ServiceStatusEnum expectedSerializedType) { + final var serializedServiceStatusEnum = serializer.serialize(serviceStatusEnum); + + assertThat(serializedServiceStatusEnum.getNumber()) + .isEqualTo(expectedSerializedType.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideServiceStatusEnum") + void shouldDeserializeServiceStatusEnum( + ServiceStatusEnum expectedServiceStatusEnum, + ContextOuterClass.ServiceStatusEnum serializedServiceStatusEnum) { + final var serviceStatusEnum = serializer.deserialize(serializedServiceStatusEnum); + + assertThat(serviceStatusEnum).isEqualTo(expectedServiceStatusEnum); + } + + private static Stream provideServiceTypeEnum() { + return Stream.of( + Arguments.of(ServiceTypeEnum.L2NM, ContextOuterClass.ServiceTypeEnum.SERVICETYPE_L2NM), + Arguments.of(ServiceTypeEnum.L3NM, ContextOuterClass.ServiceTypeEnum.SERVICETYPE_L3NM), + Arguments.of( + ServiceTypeEnum.TAPI_CONNECTIVITY_SERVICE, + ContextOuterClass.ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE), + Arguments.of( + ServiceTypeEnum.UNKNOWN, ContextOuterClass.ServiceTypeEnum.SERVICETYPE_UNKNOWN)); + } + + @ParameterizedTest + @MethodSource("provideServiceTypeEnum") + void shouldSerializeServiceTypeEnum( + ServiceTypeEnum serviceTypeEnum, ContextOuterClass.ServiceTypeEnum expectedSerializedType) { + final var serializedServiceTypeEnum = serializer.serialize(serviceTypeEnum); + + assertThat(serializedServiceTypeEnum.getNumber()).isEqualTo(expectedSerializedType.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideServiceTypeEnum") + void shouldDeserializeServiceTypeEnum( + ServiceTypeEnum expectedServiceTypeEnum, + ContextOuterClass.ServiceTypeEnum serializedServiceTypeEnum) { + final var serviceTypeEnum = serializer.deserialize(serializedServiceTypeEnum); + + assertThat(serviceTypeEnum).isEqualTo(expectedServiceTypeEnum); + } + + @Test + void shouldSerializeServiceStatus() { + final var expectedServiceStatusEnum = ServiceStatusEnum.ACTIVE; + final var serviceStatus = new ServiceStatus(expectedServiceStatusEnum); + + final var serializedServiceStatusEnum = serializer.serialize(expectedServiceStatusEnum); + + final var expectedServiceStatus = + ContextOuterClass.ServiceStatus.newBuilder() + .setServiceStatus(serializedServiceStatusEnum) + .build(); + + final var serializedServiceStatus = serializer.serialize(serviceStatus); + + assertThat(serializedServiceStatus).usingRecursiveComparison().isEqualTo(expectedServiceStatus); + } + + @Test + void shouldDeserializeServiceStatus() { + final var expectedServiceStatus = new ServiceStatus(ServiceStatusEnum.PENDING_REMOVAL); + + final var serializedServiceStatus = serializer.serialize(expectedServiceStatus); + final var serviceStatus = serializer.deserialize(serializedServiceStatus); + + assertThat(serviceStatus).usingRecursiveComparison().isEqualTo(expectedServiceStatus); + } + + @Test + void shouldSerializeServiceConfig() { + final var configRuleA = createConfigRule(); + final var configRuleB = createConfigRule(); + final var serviceConfig = new ServiceConfig(List.of(configRuleA, configRuleB)); + + final var expectedConfigRuleA = serializer.serialize(configRuleA); + final var expectedConfigRuleB = serializer.serialize(configRuleB); + + final var expectedServiceConfig = + ContextOuterClass.ServiceConfig.newBuilder() + .addAllConfigRules(List.of(expectedConfigRuleA, expectedConfigRuleB)) + .build(); + + final var serializedServiceConfig = serializer.serialize(serviceConfig); + + assertThat(serializedServiceConfig).usingRecursiveComparison().isEqualTo(expectedServiceConfig); + } + + @Test + void shouldDeserializeServiceConfig() { + final var expectedConfigRuleA = createConfigRule(); + final var expectedConfigRuleB = createConfigRule(); + final var expectedServiceConfig = + new ServiceConfig(List.of(expectedConfigRuleA, expectedConfigRuleB)); + + final var configRuleA = serializer.serialize(expectedConfigRuleA); + final var configRuleB = serializer.serialize(expectedConfigRuleB); + final var serializedServiceConfig = + ContextOuterClass.ServiceConfig.newBuilder() + .addAllConfigRules(List.of(configRuleA, configRuleB)) + .build(); + + final var serviceConfig = serializer.deserialize(serializedServiceConfig); + + assertThat(serviceConfig).usingRecursiveComparison().isEqualTo(expectedServiceConfig); + } + + @Test + void shouldSerializeService() { + final var expectedServiceId = new ServiceId("contextId", "serviceId"); + final var expectedServiceTypeEnum = ServiceTypeEnum.TAPI_CONNECTIVITY_SERVICE; + final var firstExpectedTopologyId = new TopologyId("contextId", "firstTopologyId"); + final var secondExpectedTopologyId = new TopologyId("contextId", "secondTopologyId"); + + final var firstExpectedEndPointId = + new EndPointId(firstExpectedTopologyId, "firstDeviceId", "firstEndPointId"); + final var secondExpectedEndPointId = + new EndPointId(secondExpectedTopologyId, "firstDeviceId", "firstEndPointId"); + final var expectedServiceEndPointIds = + List.of(firstExpectedEndPointId, secondExpectedEndPointId); + + final var expectedConstraintTypeA = "constraintTypeA"; + final var expectedConstraintValueA = "constraintValueA"; + + final var constraintCustomA = + new ConstraintCustom(expectedConstraintTypeA, expectedConstraintValueA); + final var constraintTypeCustomA = new ConstraintTypeCustom(constraintCustomA); + final var firstExpectedConstraint = new Constraint(constraintTypeCustomA); + + final var expectedConstraintTypeB = "constraintTypeB"; + final var expectedConstraintValueB = "constraintValueB"; + + final var constraintCustomB = + new ConstraintCustom(expectedConstraintTypeB, expectedConstraintValueB); + final var constraintTypeCustomB = new ConstraintTypeCustom(constraintCustomB); + final var secondExpectedConstraint = new Constraint(constraintTypeCustomB); + + final var expectedServiceConstraints = + List.of(firstExpectedConstraint, secondExpectedConstraint); + + final var expectedServiceStatus = new ServiceStatus(ServiceStatusEnum.PLANNED); + + final var expectedConfigRuleA = createConfigRule(); + final var expectedConfigRuleB = createConfigRule(); + + final var expectedConfigRules = List.of(expectedConfigRuleA, expectedConfigRuleB); + + final var expectedServiceConfig = new ServiceConfig(expectedConfigRules); + + final var expectedTimestamp = 2.3; + + final var service = + new Service( + expectedServiceId, + expectedServiceTypeEnum, + expectedServiceEndPointIds, + expectedServiceConstraints, + expectedServiceStatus, + expectedServiceConfig, + expectedTimestamp); + + final var serializedServiceId = serializer.serialize(expectedServiceId); + final var serializedServiceType = serializer.serialize(expectedServiceTypeEnum); + final var serializedServiceEndPointIds = + expectedServiceEndPointIds.stream() + .map(endPointId -> serializer.serialize(endPointId)) + .collect(Collectors.toList()); + final var serializedServiceConstraints = + expectedServiceConstraints.stream() + .map(constraint -> serializer.serialize(constraint)) + .collect(Collectors.toList()); + final var serializedServiceStatus = serializer.serialize(expectedServiceStatus); + final var serializedServiceConfig = serializer.serialize(expectedServiceConfig); + final var serializedTimestamp = serializer.serialize(expectedTimestamp); + + final var expectedService = + ContextOuterClass.Service.newBuilder() + .setServiceId(serializedServiceId) + .setServiceType(serializedServiceType) + .addAllServiceEndpointIds(serializedServiceEndPointIds) + .addAllServiceConstraints(serializedServiceConstraints) + .setServiceStatus(serializedServiceStatus) + .setServiceConfig(serializedServiceConfig) + .setTimestamp(serializedTimestamp) + .build(); + + final var serializedService = serializer.serialize(service); + + assertThat(serializedService).isEqualTo(expectedService); + } + + @Test + void shouldDeserializeService() { + final var expectedServiceId = new ServiceId("contextId", "serviceId"); + final var expectedServiceTypeEnum = ServiceTypeEnum.TAPI_CONNECTIVITY_SERVICE; + final var firstExpectedTopologyId = new TopologyId("contextId", "firstTopologyId"); + final var secondExpectedTopologyId = new TopologyId("contextId", "secondTopologyId"); + + final var firstExpectedEndPointId = + new EndPointId(firstExpectedTopologyId, "firstDeviceId", "firstEndPointId"); + final var secondExpectedEndPointId = + new EndPointId(secondExpectedTopologyId, "firstDeviceId", "firstEndPointId"); + final var expectedServiceEndPointIds = + List.of(firstExpectedEndPointId, secondExpectedEndPointId); + + final var expectedConstraintTypeA = "constraintTypeA"; + final var expectedConstraintValueA = "constraintValueA"; + + final var constraintCustomA = + new ConstraintCustom(expectedConstraintTypeA, expectedConstraintValueA); + final var constraintTypeCustomA = new ConstraintTypeCustom(constraintCustomA); + final var firstExpectedConstraint = new Constraint(constraintTypeCustomA); + + final var expectedConstraintTypeB = "constraintTypeB"; + final var expectedConstraintValueB = "constraintValueB"; + + final var constraintCustomB = + new ConstraintCustom(expectedConstraintTypeB, expectedConstraintValueB); + final var constraintTypeCustomB = new ConstraintTypeCustom(constraintCustomB); + final var secondExpectedConstraint = new Constraint(constraintTypeCustomB); + + final var expectedServiceConstraints = + List.of(firstExpectedConstraint, secondExpectedConstraint); + + final var expectedServiceStatus = new ServiceStatus(ServiceStatusEnum.PLANNED); + + final var firstExpectedConfigRuleA = createConfigRule(); + final var secondExpectedConfigRuleB = createConfigRule(); + + final var expectedConfigRules = List.of(firstExpectedConfigRuleA, secondExpectedConfigRuleB); + + final var expectedServiceConfig = new ServiceConfig(expectedConfigRules); + + final var expectedTimestamp = 7.8; + + final var expectedService = + new Service( + expectedServiceId, + expectedServiceTypeEnum, + expectedServiceEndPointIds, + expectedServiceConstraints, + expectedServiceStatus, + expectedServiceConfig, + expectedTimestamp); + + final var serializedServiceId = serializer.serialize(expectedServiceId); + final var serializedServiceType = serializer.serialize(expectedServiceTypeEnum); + final var serializedServiceEndPointIds = + expectedServiceEndPointIds.stream() + .map(endPointId -> serializer.serialize(endPointId)) + .collect(Collectors.toList()); + final var serializedServiceConstraints = + expectedServiceConstraints.stream() + .map(constraint -> serializer.serialize(constraint)) + .collect(Collectors.toList()); + final var serializedServiceStatus = serializer.serialize(expectedServiceStatus); + final var serializedServiceConfig = serializer.serialize(expectedServiceConfig); + final var serializedTimestamp = serializer.serialize(expectedTimestamp); + + final var serializedService = + ContextOuterClass.Service.newBuilder() + .setServiceId(serializedServiceId) + .setServiceType(serializedServiceType) + .addAllServiceEndpointIds(serializedServiceEndPointIds) + .addAllServiceConstraints(serializedServiceConstraints) + .setServiceStatus(serializedServiceStatus) + .setServiceConfig(serializedServiceConfig) + .setTimestamp(serializedTimestamp) + .build(); + + final var service = serializer.deserialize(serializedService); + + assertThat(service).usingRecursiveComparison().isEqualTo(expectedService); + } + + private static Stream provideKpiSampleType() { + return Stream.of( + Arguments.of( + KpiSampleType.PACKETS_TRANSMITTED, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED), + Arguments.of( + KpiSampleType.PACKETS_RECEIVED, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED), + Arguments.of( + KpiSampleType.BYTES_TRANSMITTED, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED), + Arguments.of( + KpiSampleType.BYTES_RECEIVED, + KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED), + Arguments.of(KpiSampleType.UNKNOWN, KpiSampleTypes.KpiSampleType.KPISAMPLETYPE_UNKNOWN)); + } + + @ParameterizedTest + @MethodSource("provideKpiSampleType") + void shouldSerializeKpiSampleType( + KpiSampleType kpiSampleType, KpiSampleTypes.KpiSampleType expectedSerializedType) { + final var serializedKpiSampleType = serializer.serialize(kpiSampleType); + + assertThat(serializedKpiSampleType.getNumber()).isEqualTo(expectedSerializedType.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideKpiSampleType") + void shouldDeserializeKpiSampleType( + KpiSampleType expectedKpiSampleType, KpiSampleTypes.KpiSampleType serializedKpiSampleType) { + final var kpiSampleType = serializer.deserialize(serializedKpiSampleType); + + assertThat(kpiSampleType).isEqualTo(expectedKpiSampleType); + } + + private static Stream provideRuleState() { + return Stream.of( + Arguments.of(RuleState.POLICY_UNDEFINED, Policy.RuleState.POLICY_UNDEFINED), + Arguments.of(RuleState.POLICY_FAILED, Policy.RuleState.POLICY_FAILED), + Arguments.of(RuleState.POLICY_INSERTED, Policy.RuleState.POLICY_INSERTED), + Arguments.of(RuleState.POLICY_VALIDATED, Policy.RuleState.POLICY_VALIDATED), + Arguments.of(RuleState.POLICY_PROVISIONED, Policy.RuleState.POLICY_PROVISIONED), + Arguments.of(RuleState.POLICY_ACTIVE, Policy.RuleState.POLICY_ACTIVE), + Arguments.of(RuleState.POLICY_ENFORCED, Policy.RuleState.POLICY_ENFORCED), + Arguments.of(RuleState.POLICY_INEFFECTIVE, Policy.RuleState.POLICY_INEFFECTIVE), + Arguments.of(RuleState.POLICY_EFFECTIVE, Policy.RuleState.POLICY_EFFECTIVE), + Arguments.of(RuleState.POLICY_UPDATED, Policy.RuleState.POLICY_UPDATED), + Arguments.of(RuleState.POLICY_REMOVED, Policy.RuleState.POLICY_REMOVED)); + } + + @ParameterizedTest + @MethodSource("provideRuleState") + void shouldSerializeRuleState(RuleState ruleState, Policy.RuleState expectedSerializedType) { + final var serializedRuleState = serializer.serialize(ruleState); + + assertThat(serializedRuleState.getNumber()).isEqualTo(expectedSerializedType.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideRuleState") + void shouldDeserializeRuleState( + RuleState expectedRuleState, Policy.RuleState serializedRuleState) { + final var ruleState = serializer.deserialize(serializedRuleState); + + assertThat(ruleState).isEqualTo(expectedRuleState); + } + + @Test + void shouldSerializePolicyRuleState() { + final var expectedRuleState = RuleState.POLICY_ACTIVE; + final var policyRuleState = new PolicyRuleState(expectedRuleState); + + final var serializedRuleState = serializer.serialize(expectedRuleState); + + final var expectedPolicyRuleState = + Policy.PolicyRuleState.newBuilder().setPolicyRuleState(serializedRuleState).build(); + + final var serializedPolicyRuleState = serializer.serialize(policyRuleState); + + assertThat(serializedPolicyRuleState) + .usingRecursiveComparison() + .isEqualTo(expectedPolicyRuleState); + } + + @Test + void shouldDeserializePolicyRuleState() { + final var expectedRuleState = RuleState.POLICY_ENFORCED; + final var expectedPolicyRuleState = new PolicyRuleState(expectedRuleState); + + final var serializedPolicyRuleState = serializer.serialize(expectedPolicyRuleState); + + final var policyRuleState = serializer.deserialize(serializedPolicyRuleState); + + assertThat(policyRuleState).usingRecursiveComparison().isEqualTo(expectedPolicyRuleState); + } + + private static Stream provideNumericalOperator() { + return Stream.of( + Arguments.of( + NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_EQUAL, + PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_EQUAL), + Arguments.of( + NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_NOT_EQUAL, + PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_NOT_EQUAL), + Arguments.of( + NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN, + PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_LESS_THAN), + Arguments.of( + NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL, + PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL), + Arguments.of( + NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN, + PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN), + Arguments.of( + NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL, + PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL), + Arguments.of( + NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_UNDEFINED, + PolicyCondition.NumericalOperator.POLICYRULE_CONDITION_NUMERICAL_UNDEFINED)); + } + + @ParameterizedTest + @MethodSource("provideNumericalOperator") + void shouldSerializeNumericalOperator( + NumericalOperator numericalOperator, + PolicyCondition.NumericalOperator expectedNumericalOperator) { + final var serializedNumericalOperator = serializer.serialize(numericalOperator); + + assertThat(serializedNumericalOperator).isEqualTo(expectedNumericalOperator); + } + + @ParameterizedTest + @MethodSource("provideNumericalOperator") + void shouldDeserializeNumericalOperator( + NumericalOperator expectedNumericalOperator, + PolicyCondition.NumericalOperator serializedNumericalOperator) { + final var numericalOperator = serializer.deserialize(serializedNumericalOperator); + + assertThat(numericalOperator).isEqualTo(expectedNumericalOperator); + } + + @ParameterizedTest + @MethodSource("provideNumericalOperator") + void shouldSerializePolicyRuleConditionGivenMultipleNumericalOperators( + NumericalOperator expectedNumericalOperator) { + final var expectedPolicyRuleConditionKpiId = "expectedPolicyRuleConditionKpiId"; + final var expectedPolicyRuleConditionKpiValue = new IntegerKpiValue(34); + + final var policyRuleCondition = + new PolicyRuleCondition( + expectedPolicyRuleConditionKpiId, + expectedNumericalOperator, + expectedPolicyRuleConditionKpiValue); + + final var serializedPolicyRuleConditionKpiIdUuid = + serializer.serializeUuid(expectedPolicyRuleConditionKpiId); + final var serializedPolicyRuleConditionKpiId = + KpiId.newBuilder().setKpiId(serializedPolicyRuleConditionKpiIdUuid).build(); + final var serializedNumericalOperator = serializer.serialize(expectedNumericalOperator); + final var serializedPolicyRuleConditionKpiValue = + serializer.serializeIntegerKpiValue(expectedPolicyRuleConditionKpiValue); + + final var expectedPolicyRuleCondition = + PolicyCondition.PolicyRuleCondition.newBuilder() + .setKpiId(serializedPolicyRuleConditionKpiId) + .setNumericalOperator(serializedNumericalOperator) + .setKpiValue(serializedPolicyRuleConditionKpiValue) + .build(); + + final var serializedPolicyRuleCondition = serializer.serialize(policyRuleCondition); + + assertThat(serializedPolicyRuleCondition) + .usingRecursiveComparison() + .isEqualTo(expectedPolicyRuleCondition); + } + + private static Stream provideKpiValues() { + return Stream.of( + Arguments.of( + new StringKpiValue("stringKpiValue"), + Monitoring.KpiValue.newBuilder().setStringVal("stringKpiValue").build()), + Arguments.of( + new BooleanKpiValue(true), Monitoring.KpiValue.newBuilder().setBoolVal(true).build()), + Arguments.of( + new IntegerKpiValue(44), Monitoring.KpiValue.newBuilder().setIntVal(44).build()), + Arguments.of( + new FloatKpiValue(12.3f), Monitoring.KpiValue.newBuilder().setFloatVal(12.3f).build())); + } + + @ParameterizedTest + @MethodSource("provideKpiValues") + void shouldSerializeKpiValues(KpiValue kpiValue, Monitoring.KpiValue expectedKpiValue) { + final var serializedKpiValue = serializer.serialize(kpiValue); + + assertThat(serializedKpiValue).isEqualTo(expectedKpiValue); + } + + @ParameterizedTest + @MethodSource("provideKpiValues") + void shouldDeserializeKpiValues( + KpiValue expectedKpiValue, Monitoring.KpiValue serializedKpiValue) { + final var kpiValue = serializer.deserialize(serializedKpiValue); + + assertThat(kpiValue).usingRecursiveComparison().isEqualTo(expectedKpiValue); + } + + @Test + void shouldThrowIllegalStateExceptionDuringDeserializationOfNonSpecifiedKpiValue() { + final var serializedKpiValue = Monitoring.KpiValue.newBuilder().build(); + + assertThatExceptionOfType(IllegalStateException.class) + .isThrownBy(() -> serializer.deserialize(serializedKpiValue)); + } + + @Test + void shouldDeserializeIntegerKpiValue() { + final var expectedKpiValue = new IntegerKpiValue(66); + + final var intValue = serializer.serializeIntegerKpiValue(expectedKpiValue); + final var deserializedKpiValue = serializer.deserializeIntegerKpiValue(intValue); + + assertThat(deserializedKpiValue).isEqualTo(expectedKpiValue.getValue()); + } + + @Test + void shouldDeserializeStringKpiValue() { + final var expectedKpiValue = new StringKpiValue("StringKpiValue"); + + final var stringValue = serializer.serializeStringKpiValue(expectedKpiValue); + final var deserializedKpiValue = serializer.deserializeStringKpiValue(stringValue); + + assertThat(deserializedKpiValue).isEqualTo(expectedKpiValue.getValue()); + } + + @Test + void shouldDeserializeFloatKpiValue() { + final var expectedKpiValue = new FloatKpiValue(2.2f); + + final var floatValue = serializer.serializeFloatKpiValue(expectedKpiValue); + final var deserializedKpiValue = serializer.deserializeFloatKpiValue(floatValue); + + assertThat(deserializedKpiValue).isEqualTo(expectedKpiValue.getValue()); + } + + @Test + void shouldDeserializeBooleanKpiValue() { + final var expectedKpiValue = new BooleanKpiValue(true); + + final var booleanValue = serializer.serializeBooleanKpiValue(expectedKpiValue); + final var deserializedKpiValue = serializer.deserializeBooleanKpiValue(booleanValue); + + assertThat(deserializedKpiValue).isEqualTo(expectedKpiValue.getValue()); + } + + private static Stream provideKpiValueRanges() { + return Stream.of( + Arguments.of( + new KpiValueRange(new IntegerKpiValue(32), new IntegerKpiValue(42)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setIntVal(32).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setIntVal(42).build()) + .build()), + Arguments.of( + new KpiValueRange(new IntegerKpiValue(32), new FloatKpiValue(42.2f)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setIntVal(32).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setFloatVal(42.2f).build()) + .build()), + Arguments.of( + new KpiValueRange(new IntegerKpiValue(32), new BooleanKpiValue(true)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setIntVal(32).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setBoolVal(true).build()) + .build()), + Arguments.of( + new KpiValueRange(new IntegerKpiValue(32), new StringKpiValue("string")), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setIntVal(32).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setStringVal("string").build()) + .build()), + Arguments.of( + new KpiValueRange(new FloatKpiValue(56.2f), new IntegerKpiValue(42)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setFloatVal(56.2f).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setIntVal(42).build()) + .build()), + Arguments.of( + new KpiValueRange(new FloatKpiValue(56.2f), new FloatKpiValue(42.2f)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setFloatVal(56.2f).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setFloatVal(42.2f).build()) + .build()), + Arguments.of( + new KpiValueRange(new FloatKpiValue(56.2f), new BooleanKpiValue(true)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setFloatVal(56.2f).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setBoolVal(true).build()) + .build()), + Arguments.of( + new KpiValueRange(new FloatKpiValue(56.2f), new StringKpiValue("string")), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setFloatVal(56.2f).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setStringVal("string").build()) + .build()), + Arguments.of( + new KpiValueRange(new BooleanKpiValue(true), new IntegerKpiValue(42)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setBoolVal(true).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setIntVal(42).build()) + .build()), + Arguments.of( + new KpiValueRange(new BooleanKpiValue(false), new FloatKpiValue(42.2f)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setBoolVal(false).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setFloatVal(42.2f).build()) + .build()), + Arguments.of( + new KpiValueRange(new BooleanKpiValue(true), new BooleanKpiValue(true)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setBoolVal(true).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setBoolVal(true).build()) + .build()), + Arguments.of( + new KpiValueRange(new BooleanKpiValue(false), new StringKpiValue("string")), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setBoolVal(false).build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setStringVal("string").build()) + .build()), + Arguments.of( + new KpiValueRange(new StringKpiValue("string"), new IntegerKpiValue(42)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setStringVal("string").build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setIntVal(42).build()) + .build()), + Arguments.of( + new KpiValueRange(new StringKpiValue("string"), new FloatKpiValue(42.2f)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setStringVal("string").build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setFloatVal(42.2f).build()) + .build()), + Arguments.of( + new KpiValueRange(new StringKpiValue("string"), new BooleanKpiValue(true)), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setStringVal("string").build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setBoolVal(true).build()) + .build()), + Arguments.of( + new KpiValueRange(new StringKpiValue("string"), new StringKpiValue("string")), + Monitoring.KpiValueRange.newBuilder() + .setKpiMinValue(Monitoring.KpiValue.newBuilder().setStringVal("string").build()) + .setKpiMaxValue(Monitoring.KpiValue.newBuilder().setStringVal("string").build()) + .build())); + } + + @ParameterizedTest + @MethodSource("provideKpiValueRanges") + void shouldSerializeKpiValueRange( + KpiValueRange kpiValueRange, Monitoring.KpiValueRange expectedKpiValueRange) { + final var serializedKpiValueRange = serializer.serialize(kpiValueRange); + + assertThat(serializedKpiValueRange.getKpiMinValue()) + .isEqualTo(expectedKpiValueRange.getKpiMinValue()); + assertThat(serializedKpiValueRange.getKpiMaxValue()) + .isEqualTo(expectedKpiValueRange.getKpiMaxValue()); + } + + @ParameterizedTest + @MethodSource("provideKpiValueRanges") + void shouldDeserializeKpiValueRange( + KpiValueRange expectedKpiValueRange, Monitoring.KpiValueRange serializedKpiValueRange) { + final var kpiValueRange = serializer.deserialize(serializedKpiValueRange); + + assertThat(kpiValueRange.getKpiMinValue()) + .usingRecursiveComparison() + .isEqualTo(expectedKpiValueRange.getKpiMinValue()); + assertThat(kpiValueRange.getKpiMaxValue()) + .usingRecursiveComparison() + .isEqualTo(expectedKpiValueRange.getKpiMaxValue()); + } + + @Test + void shouldSerializeAlarmDescriptor() { + final var alarmDescription = "alarmDescription"; + final var name = "name"; + final var kpiId = "kpiId"; + final var timestamp = "timestamp"; + + final var kpiValueRange = new KpiValueRange(new IntegerKpiValue(23), new IntegerKpiValue(1800)); + final var alarmDescriptor = + new AlarmDescriptor(alarmDescription, name, kpiId, kpiValueRange, timestamp); + + final var serializedKpiIdUuid = serializer.serializeUuid(kpiId); + final var serializedKpiId = KpiId.newBuilder().setKpiId(serializedKpiIdUuid).build(); + final var serializedKpiValueRange = serializer.serialize(kpiValueRange); + + final var expectedAlarmDescriptor = + Monitoring.AlarmDescriptor.newBuilder() + .setAlarmDescription(alarmDescription) + .setName(name) + .setKpiId(serializedKpiId) + .setKpiValueRange(serializedKpiValueRange) + .setTimestamp(timestamp) + .build(); + + final var serializedAlarmDescriptor = serializer.serialize(alarmDescriptor); + + assertThat(serializedAlarmDescriptor).isEqualTo(expectedAlarmDescriptor); + } + + @Test + void shouldDeserializeAlarmDescriptor() { + final var alarmDescription = "alarmDescription"; + final var name = "name"; + final var kpiId = "kpiId"; + final var timestamp = "timestamp"; + + final var kpiValueRange = new KpiValueRange(new IntegerKpiValue(23), new IntegerKpiValue(1800)); + final var expectedAlarmDescriptor = + new AlarmDescriptor(alarmDescription, name, kpiId, kpiValueRange, timestamp); + + final var serializedKpiIdUuid = serializer.serializeUuid(kpiId); + final var serializedKpiId = KpiId.newBuilder().setKpiId(serializedKpiIdUuid).build(); + final var serializedKpiValueRange = serializer.serialize(kpiValueRange); + + final var serializedAlarmDescriptor = + Monitoring.AlarmDescriptor.newBuilder() + .setAlarmDescription(alarmDescription) + .setName(name) + .setKpiId(serializedKpiId) + .setKpiValueRange(serializedKpiValueRange) + .setTimestamp(timestamp) + .build(); + + final var alarmDescriptor = serializer.deserialize(serializedAlarmDescriptor); + + assertThat(alarmDescriptor).usingRecursiveComparison().isEqualTo(expectedAlarmDescriptor); + } + + @Test + void shouldSerializeAlarmResponse() { + final var alarmId = "alarmId"; + final var text = "text"; + final var kpiValue = new IntegerKpiValue(12); + + final var alarmResponse = new AlarmResponse(alarmId, text, kpiValue); + + final var serializedAlarmIdUuid = serializer.serializeUuid(alarmId); + final var serializedAlarmId = AlarmID.newBuilder().setAlarmId(serializedAlarmIdUuid).build(); + final var serializedKpiValue = serializer.serialize(kpiValue); + + final var expectedAlarmResponse = + Monitoring.AlarmResponse.newBuilder() + .setAlarmId(serializedAlarmId) + .setText(text) + .setKpiValue(serializedKpiValue) + .build(); + + final var serializedAlarmResponse = serializer.serialize(alarmResponse); + + assertThat(serializedAlarmResponse).isEqualTo(expectedAlarmResponse); + } + + @Test + void shouldDeserializeAlarmResponse() { + final var alarmId = "alarmId"; + final var text = "text"; + final var kpiValue = new IntegerKpiValue(12); + + final var expectedAlarmResponse = new AlarmResponse(alarmId, text, kpiValue); + + final var serializedAlarmIdUuid = serializer.serializeUuid(alarmId); + final var serializedAlarmId = AlarmID.newBuilder().setAlarmId(serializedAlarmIdUuid).build(); + final var serializedKpiValue = serializer.serialize(kpiValue); + + final var serializedAlarmResponse = + Monitoring.AlarmResponse.newBuilder() + .setAlarmId(serializedAlarmId) + .setText(text) + .setKpiValue(serializedKpiValue) + .build(); + + final var alarmResponse = serializer.deserialize(serializedAlarmResponse); + + assertThat(alarmResponse).usingRecursiveComparison().isEqualTo(expectedAlarmResponse); + } + + @Test + void shouldSerializeSubDescriptor() { + final var kpiId = "kpiId"; + final var samplingDurationS = 10f; + final var samplingIntervalS = 45f; + final var startDate = "01/07/2022"; + final var endDate = "02/07/2022"; + + final var subDescriptor = + new SubsDescriptor(kpiId, samplingDurationS, samplingIntervalS, startDate, endDate); + + final var serializedKpiIdUuid = serializer.serializeUuid(kpiId); + final var serializedKpiId = KpiId.newBuilder().setKpiId(serializedKpiIdUuid).build(); + + final var expectedSubDescriptor = + Monitoring.SubsDescriptor.newBuilder() + .setKpiId(serializedKpiId) + .setSamplingDurationS(samplingDurationS) + .setSamplingIntervalS(samplingIntervalS) + .setStartDate(startDate) + .setEndDate(endDate) + .build(); + + final var serializedSubDescriptor = serializer.serialize(subDescriptor); + + assertThat(serializedSubDescriptor).isEqualTo(expectedSubDescriptor); + } + + @Test + void shouldDeserializeSubDescriptor() { + final var kpiId = "kpiId"; + final var samplingDurationS = 10f; + final var samplingIntervalS = 45f; + final var startDate = "01/07/2022"; + final var endDate = "02/07/2022"; + + final var expectedSubDescriptor = + new SubsDescriptor(kpiId, samplingDurationS, samplingIntervalS, startDate, endDate); + + final var serializedKpiIdUuid = serializer.serializeUuid(kpiId); + final var serializedKpiId = KpiId.newBuilder().setKpiId(serializedKpiIdUuid).build(); + + final var serializedSubDescriptor = + Monitoring.SubsDescriptor.newBuilder() + .setKpiId(serializedKpiId) + .setSamplingDurationS(samplingDurationS) + .setSamplingIntervalS(samplingIntervalS) + .setStartDate(startDate) + .setEndDate(endDate) + .build(); + + final var subDescriptor = serializer.deserialize(serializedSubDescriptor); + + assertThat(subDescriptor).usingRecursiveComparison().isEqualTo(expectedSubDescriptor); + } + + @Test + void shouldDeserializePolicyRuleCondition() { + final var expectedPolicyRuleConditionKpiId = "expectedPolicyRuleConditionKpiId"; + final var expectedPolicyRuleConditionNumericalOperator = + NumericalOperator.POLICY_RULE_CONDITION_NUMERICAL_GREATER_THAN; + final var expectedPolicyRuleConditionKpiValue = new IntegerKpiValue(34); + + final var expectedPolicyRuleCondition = + new PolicyRuleCondition( + expectedPolicyRuleConditionKpiId, + expectedPolicyRuleConditionNumericalOperator, + expectedPolicyRuleConditionKpiValue); + + final var serializedPolicyRuleCondition = serializer.serialize(expectedPolicyRuleCondition); + + final var policyRuleCondition = serializer.deserialize(serializedPolicyRuleCondition); + + assertThat(policyRuleCondition) + .usingRecursiveComparison() + .isEqualTo(expectedPolicyRuleCondition); + } + + private static Stream provideBooleanOperators() { + return Stream.of( + Arguments.of( + BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_AND, + PolicyCondition.BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_AND), + Arguments.of( + BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR, + PolicyCondition.BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_OR), + Arguments.of( + BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED, + PolicyCondition.BooleanOperator.POLICYRULE_CONDITION_BOOLEAN_UNDEFINED)); + } + + @ParameterizedTest + @MethodSource("provideBooleanOperators") + void shouldSerializeBooleanOperator( + BooleanOperator booleanOperator, PolicyCondition.BooleanOperator expectedBooleanOperator) { + final var serializedBooleanOperator = serializer.serialize(booleanOperator); + + assertThat(serializedBooleanOperator).isEqualTo(expectedBooleanOperator); + } + + @ParameterizedTest + @MethodSource("provideBooleanOperators") + void shouldDeserializeBooleanOperator( + BooleanOperator expectedBooleanOperator, + PolicyCondition.BooleanOperator serializedBooleanOperator) { + final var booleanOperator = serializer.deserialize(serializedBooleanOperator); + + assertThat(booleanOperator).isEqualTo(expectedBooleanOperator); + } + + private static Stream providePolicyRuleActionEnum() { + return Stream.of( + Arguments.of( + PolicyRuleActionEnum.POLICY_RULE_ACTION_SET_DEVICE_STATUS, + PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_SET_DEVICE_STATUS), + Arguments.of( + PolicyRuleActionEnum.POLICY_RULE_ACTION_ADD_SERVICE_CONFIGRULE, + PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE), + Arguments.of( + PolicyRuleActionEnum.POLICY_RULE_ACTION_ADD_SERVICE_CONSTRAINT, + PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT), + Arguments.of( + PolicyRuleActionEnum.POLICY_RULE_ACTION_NO_ACTION, + PolicyAction.PolicyRuleActionEnum.POLICYRULE_ACTION_NO_ACTION)); + } + + @ParameterizedTest + @MethodSource("providePolicyRuleActionEnum") + void shouldSerializePolicyRuleActionEnum( + PolicyRuleActionEnum policyRuleActionEnum, + PolicyAction.PolicyRuleActionEnum expectedPolicyRuleActionEnum) { + final var serializedPolicyRuleActionEnum = serializer.serialize(policyRuleActionEnum); + + assertThat(serializedPolicyRuleActionEnum).isEqualTo(expectedPolicyRuleActionEnum); + } + + @ParameterizedTest + @MethodSource("providePolicyRuleActionEnum") + void shouldDeserializePolicyRuleActionEnum( + PolicyRuleActionEnum expectedPolicyRuleActionEnum, + PolicyAction.PolicyRuleActionEnum serializedPolicyRuleActionEnum) { + final var policyRuleActionEnum = serializer.deserialize(serializedPolicyRuleActionEnum); + + assertThat(policyRuleActionEnum).isEqualTo(expectedPolicyRuleActionEnum); + } + + @Test + void shouldSerializePolicyRuleAction() { + final var expectedPolicyRuleActionEnum = + PolicyRuleActionEnum.POLICY_RULE_ACTION_ADD_SERVICE_CONSTRAINT; + final var expectedPolicyRuleActionParameters = List.of("parameter1", "parameter2"); + final var policyRuleAction = + new PolicyRuleAction(expectedPolicyRuleActionEnum, expectedPolicyRuleActionParameters); + + final var serializedPolicyRuleActionEnum = serializer.serialize(expectedPolicyRuleActionEnum); + + final var expectedPolicyRuleAction = + PolicyAction.PolicyRuleAction.newBuilder() + .setAction(serializedPolicyRuleActionEnum) + .addAllParameters(expectedPolicyRuleActionParameters) + .build(); + + final var serializedPolicyRuleAction = serializer.serialize(policyRuleAction); + + assertThat(serializedPolicyRuleAction) + .usingRecursiveComparison() + .isEqualTo(expectedPolicyRuleAction); + } + + @Test + void shouldDeserializePolicyRuleAction() { + final var expectedPolicyRuleActionEnum = PolicyRuleActionEnum.POLICY_RULE_ACTION_NO_ACTION; + final var expectedPolicyRuleActionParameters = List.of("parameter1", "parameter2"); + final var expectedPolicyRuleAction = + new PolicyRuleAction(expectedPolicyRuleActionEnum, expectedPolicyRuleActionParameters); + + final var serializedPolicyRuleAction = serializer.serialize(expectedPolicyRuleAction); + + final var policyRuleAction = serializer.deserialize(serializedPolicyRuleAction); + + assertThat(policyRuleAction).usingRecursiveComparison().isEqualTo(expectedPolicyRuleAction); + } + + @Test + void shouldSerializePolicyRuleBasic() { + final var policyRuleBasic = createPolicyRuleBasic(); + + 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 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)) + .collect(Collectors.toList()); + + final var expectedPolicyRuleBasic = + Policy.PolicyRuleBasic.newBuilder() + .setPolicyRuleId(serializedPolicyRuleId) + .setPolicyRuleState(serializedPolicyRuleState) + .setPriority(expectedPriority) + .addAllConditionList(serializedPolicyRuleConditions) + .setBooleanOperator(serializedBooleanOperator) + .addAllActionList(serializedPolicyRuleActions) + .build(); + + final var serializedPolicyRuleBasic = serializer.serialize(policyRuleBasic); + + assertThat(serializedPolicyRuleBasic) + .usingRecursiveComparison() + .isEqualTo(expectedPolicyRuleBasic); + } + + @Test + void shouldDeserializePolicyRuleBasic() { + final var expectedPolicyRuleBasic = createPolicyRuleBasic(); + + 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 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)) + .collect(Collectors.toList()); + + final var serializedPolicyRuleBasic = + Policy.PolicyRuleBasic.newBuilder() + .setPolicyRuleId(serializedPolicyRuleId) + .setPolicyRuleState(serializedPolicyRuleState) + .setPriority(expectedPriority) + .addAllConditionList(serializedPolicyRuleConditions) + .setBooleanOperator(serializedBooleanOperator) + .addAllActionList(serializedPolicyRuleActions) + .build(); + + final var policyRuleBasic = serializer.deserialize(serializedPolicyRuleBasic); + + assertThat(policyRuleBasic).usingRecursiveComparison().isEqualTo(expectedPolicyRuleBasic); + } + + @Test + void shouldSerializePolicyRuleService() { + final var policyRuleBasic = createPolicyRuleBasic(); + final var serviceId = new ServiceId("contextId", "serviceId"); + final var deviceIds = List.of("deviceId1", "deviceId2"); + + final var policyRuleService = new PolicyRuleService(policyRuleBasic, serviceId, deviceIds); + + final var serializedPolicyRuleBasic = serializer.serialize(policyRuleBasic); + final var serializedPolicyRuleServiceId = serializer.serialize(serviceId); + final var serializedPolicyRuleDeviceIds = + deviceIds.stream() + .map(deviceId -> serializer.serializeDeviceId(deviceId)) + .collect(Collectors.toList()); + + final var expectedPolicyRuleService = + Policy.PolicyRuleService.newBuilder() + .setPolicyRuleBasic(serializedPolicyRuleBasic) + .setServiceId(serializedPolicyRuleServiceId) + .addAllDeviceList(serializedPolicyRuleDeviceIds) + .build(); + + final var serializedPolicyRuleService = serializer.serialize(policyRuleService); + + assertThat(serializedPolicyRuleService) + .usingRecursiveComparison() + .isEqualTo(expectedPolicyRuleService); + } + + @Test + void shouldDeserializePolicyRuleService() { + final var expectedPolicyRuleBasic = createPolicyRuleBasic(); + final var expectedServiceId = new ServiceId("contextId", "serviceId"); + final var expectedDeviceIds = List.of("deviceId1", "deviceId2"); + final var expectedPolicyRuleService = + new PolicyRuleService(expectedPolicyRuleBasic, expectedServiceId, expectedDeviceIds); + + final var serializedPolicyRuleBasic = serializer.serialize(expectedPolicyRuleBasic); + final var serializedPolicyRuleServiceId = serializer.serialize(expectedServiceId); + final var serializedPolicyRuleDeviceIds = + expectedDeviceIds.stream() + .map(deviceId -> serializer.serializeDeviceId(deviceId)) + .collect(Collectors.toList()); + + final var serializedPolicyRuleService = + Policy.PolicyRuleService.newBuilder() + .setPolicyRuleBasic(serializedPolicyRuleBasic) + .setServiceId(serializedPolicyRuleServiceId) + .addAllDeviceList(serializedPolicyRuleDeviceIds) + .build(); + + final var policyRuleService = serializer.deserialize(serializedPolicyRuleService); + + assertThat(policyRuleService).usingRecursiveComparison().isEqualTo(expectedPolicyRuleService); + } + + @Test + void shouldSerializePolicyRuleDevice() { + final var policyRuleBasic = createPolicyRuleBasic(); + final var deviceIds = List.of("deviceId1", "deviceId2"); + + final var policyRuleDevice = new PolicyRuleDevice(policyRuleBasic, deviceIds); + + final var serializedPolicyRuleBasic = serializer.serialize(policyRuleBasic); + final var serializedPolicyRuleDeviceIds = + deviceIds.stream() + .map(deviceId -> serializer.serializeDeviceId(deviceId)) + .collect(Collectors.toList()); + + final var expectedPolicyRuleDevice = + Policy.PolicyRuleDevice.newBuilder() + .setPolicyRuleBasic(serializedPolicyRuleBasic) + .addAllDeviceList(serializedPolicyRuleDeviceIds) + .build(); + + final var serializedPolicyRuleDevice = serializer.serialize(policyRuleDevice); + + assertThat(serializedPolicyRuleDevice) + .usingRecursiveComparison() + .isEqualTo(expectedPolicyRuleDevice); + } + + @Test + void shouldDeserializePolicyRuleDevice() { + final var expectedPolicyRuleBasic = createPolicyRuleBasic(); + final var expectedDeviceIds = List.of("deviceId1", "deviceId2"); + final var expectedPolicyRuleDevice = + new PolicyRuleDevice(expectedPolicyRuleBasic, expectedDeviceIds); + + final var serializedPolicyRuleBasic = serializer.serialize(expectedPolicyRuleBasic); + final var serializedPolicyRuleDeviceIds = + expectedDeviceIds.stream() + .map(deviceId -> serializer.serializeDeviceId(deviceId)) + .collect(Collectors.toList()); + + final var serializedPolicyRuleDevice = + Policy.PolicyRuleDevice.newBuilder() + .setPolicyRuleBasic(serializedPolicyRuleBasic) + .addAllDeviceList(serializedPolicyRuleDeviceIds) + .build(); + + final var policyRuleDevice = serializer.deserialize(serializedPolicyRuleDevice); + + assertThat(policyRuleDevice).usingRecursiveComparison().isEqualTo(expectedPolicyRuleDevice); + } + + @Test + void shouldSerializeKpiId() { + final var kpiId = "kpiId"; + + final var kpiIdUuid = serializer.serializeUuid(kpiId); + + final var expectedKpiId = Monitoring.KpiId.newBuilder().setKpiId(kpiIdUuid).build(); + + final var serializedKpiId = serializer.serializeKpiId(kpiId); + + assertThat(serializedKpiId).usingRecursiveComparison().isEqualTo(expectedKpiId); + } + + @Test + void shouldDeserializeKpiId() { + final var expectedKpiId = "expectedKpiId"; + + final var serializedKpiIdUuid = serializer.serializeUuid(expectedKpiId); + final var serializedKpiId = Monitoring.KpiId.newBuilder().setKpiId(serializedKpiIdUuid).build(); + + final var kpiId = serializer.deserialize(serializedKpiId); + + assertThat(kpiId).isEqualTo(expectedKpiId); + } + + @Test + void shouldSerializeKpi() { + final var expectedKpiId = "expectedKpiId"; + final var expectedTimestamp = "expectedTimestamp"; + final var expectedKpiValue = new FloatKpiValue(643.45f); + + final var kpi = new Kpi(expectedKpiId, expectedTimestamp, expectedKpiValue); + + final var serializedKpiId = serializer.serializeKpiId(expectedKpiId); + final var serializedKpiValue = serializer.serialize(expectedKpiValue); + + final var expectedKpi = + Monitoring.Kpi.newBuilder() + .setKpiId(serializedKpiId) + .setTimestamp(expectedTimestamp) + .setKpiValue(serializedKpiValue) + .build(); + + final var serializedKpi = serializer.serialize(kpi); + + assertThat(serializedKpi).usingRecursiveComparison().isEqualTo(expectedKpi); + } + + @Test + void shouldDeserializeKpi() { + final var expectedKpiId = "expectedKpiId"; + final var expectedTimestamp = "expectedTimestamp"; + final var expectedKpiValue = new BooleanKpiValue(true); + final var expectedKpi = new Kpi(expectedKpiId, expectedTimestamp, expectedKpiValue); + + final var serializedKpi = serializer.serialize(expectedKpi); + + final var kpi = serializer.deserialize(serializedKpi); + + assertThat(kpi).usingRecursiveComparison().isEqualTo(expectedKpi); + } + + @Test + void shouldSerializeKpiDescriptor() { + final var expectedKpiDescription = "expectedKpiDescription"; + final var expectedKpiSampleType = KpiSampleType.BYTES_RECEIVED; + final var expectedDeviceId = "expectedDeviceId"; + + final var expectedTopologyId = new TopologyId("contextId", "topologyId"); + final var expectedEndPointId = + new EndPointId(expectedTopologyId, expectedDeviceId, "endpointId"); + final var expectedServiceId = new ServiceId("contextId", "serviceId"); + final var expectedSliceId = new SliceId("contextId", "sliceId"); + + final var kpiDescriptor = + new KpiDescriptor( + expectedKpiDescription, + expectedKpiSampleType, + expectedDeviceId, + expectedEndPointId, + expectedServiceId, + expectedSliceId); + + final var serializedKpiSampleType = serializer.serialize(expectedKpiSampleType); + final var serializedDeviceId = serializer.serializeDeviceId(expectedDeviceId); + final var serializedEndPointId = serializer.serialize(expectedEndPointId); + final var serializedServiceId = serializer.serialize(expectedServiceId); + final var serializedSliceId = serializer.serialize(expectedSliceId); + + final var expectedKpiDescriptor = + Monitoring.KpiDescriptor.newBuilder() + .setKpiDescription(expectedKpiDescription) + .setKpiSampleType(serializedKpiSampleType) + .setDeviceId(serializedDeviceId) + .setEndpointId(serializedEndPointId) + .setServiceId(serializedServiceId) + .setSliceId(serializedSliceId) + .build(); + + final var serializedKpiDescriptor = serializer.serialize(kpiDescriptor); + + assertThat(serializedKpiDescriptor).usingRecursiveComparison().isEqualTo(expectedKpiDescriptor); + } + + @Test + void shouldDeserializeKpiDescriptor() { + final var expectedKpiDescription = "expectedKpiDescription"; + final var expectedKpiSampleType = KpiSampleType.BYTES_RECEIVED; + final var expectedDeviceId = "expectedDeviceId"; + + final var expectedTopologyId = new TopologyId("contextId", "topologyId"); + final var expectedEndPointId = + new EndPointId(expectedTopologyId, expectedDeviceId, "endpointId"); + final var expectedServiceId = new ServiceId("contextId", "serviceId"); + final var expectedSliceId = new SliceId("contextId", "sliceId"); + + final var expectedKpiDescriptor = + new KpiDescriptor( + expectedKpiDescription, + expectedKpiSampleType, + expectedDeviceId, + expectedEndPointId, + expectedServiceId, + expectedSliceId); + + final var serializedKpiSampleType = serializer.serialize(expectedKpiSampleType); + final var serializedDeviceId = serializer.serializeDeviceId(expectedDeviceId); + final var serializedEndPointId = serializer.serialize(expectedEndPointId); + final var serializedServiceId = serializer.serialize(expectedServiceId); + final var serializedSliceId = serializer.serialize(expectedSliceId); + + final var serializedKpiDescriptor = + Monitoring.KpiDescriptor.newBuilder() + .setKpiDescription(expectedKpiDescription) + .setKpiSampleType(serializedKpiSampleType) + .setDeviceId(serializedDeviceId) + .setEndpointId(serializedEndPointId) + .setServiceId(serializedServiceId) + .setSliceId(serializedSliceId) + .build(); + + final var kpiDescriptor = serializer.deserialize(serializedKpiDescriptor); + + assertThat(kpiDescriptor).usingRecursiveComparison().isEqualTo(expectedKpiDescriptor); + } + + @Test + void shouldSerializeDeviceConfig() { + final var expectedConfigRuleCustomA = + ContextOuterClass.ConfigRule_Custom.newBuilder() + .setResourceKey("resourceKeyA") + .setResourceValue("resourceValueA") + .build(); + + final var configRuleCustomA = new ConfigRuleCustom("resourceKeyA", "resourceValueA"); + + final var expectedConfigRuleCustomB = + ContextOuterClass.ConfigRule_Custom.newBuilder() + .setResourceKey("resourceKeyB") + .setResourceValue("resourceValueB") + .build(); + + final var configRuleCustomB = new ConfigRuleCustom("resourceKeyB", "resourceValueB"); + + final var expectedConfigRuleA = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_SET) + .setCustom(expectedConfigRuleCustomA) + .build(); + final var expectedConfigRuleB = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_DELETE) + .setCustom(expectedConfigRuleCustomB) + .build(); + + final var expectedDeviceConfig = + ContextOuterClass.DeviceConfig.newBuilder() + .addAllConfigRules(List.of(expectedConfigRuleA, expectedConfigRuleB)) + .build(); + + final var configRuleTypeA = new ConfigRuleTypeCustom(configRuleCustomA); + final var configRuleTypeB = new ConfigRuleTypeCustom(configRuleCustomB); + + final var configRuleA = new ConfigRule(ConfigActionEnum.SET, configRuleTypeA); + final var configRuleB = new ConfigRule(ConfigActionEnum.DELETE, configRuleTypeB); + + final var deviceConfig = new DeviceConfig(List.of(configRuleA, configRuleB)); + final var serializedDeviceConfig = serializer.serialize(deviceConfig); + + assertThat(serializedDeviceConfig).isEqualTo(expectedDeviceConfig); + } + + @Test + void shouldDeserializeDeviceConfig() { + final var expectedConfigRuleCustomA = new ConfigRuleCustom("resourceKeyA", "resourceValueA"); + final var expectedConfigRuleCustomB = new ConfigRuleCustom("resourceKeyB", "resourceValueB"); + + final var expectedConfigRuleTypeA = new ConfigRuleTypeCustom(expectedConfigRuleCustomA); + final var expectedConfigRuleTypeB = new ConfigRuleTypeCustom(expectedConfigRuleCustomB); + + final var expectedConfigRuleA = new ConfigRule(ConfigActionEnum.SET, expectedConfigRuleTypeA); + final var expectedConfigRuleB = + new ConfigRule(ConfigActionEnum.DELETE, expectedConfigRuleTypeB); + + final var expectedDeviceConfig = + new DeviceConfig(List.of(expectedConfigRuleA, expectedConfigRuleB)); + + final var configRuleCustomA = + ContextOuterClass.ConfigRule_Custom.newBuilder() + .setResourceKey("resourceKeyA") + .setResourceValue("resourceValueA") + .build(); + + final var configRuleCustomB = + ContextOuterClass.ConfigRule_Custom.newBuilder() + .setResourceKey("resourceKeyB") + .setResourceValue("resourceValueB") + .build(); + + final var configRuleA = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_SET) + .setCustom(configRuleCustomA) + .build(); + final var configRuleB = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_DELETE) + .setCustom(configRuleCustomB) + .build(); + final var serializedDeviceConfig = + ContextOuterClass.DeviceConfig.newBuilder() + .addAllConfigRules(List.of(configRuleA, configRuleB)) + .build(); + final var deviceConfig = serializer.deserialize(serializedDeviceConfig); + + assertThat(deviceConfig).usingRecursiveComparison().isEqualTo(expectedDeviceConfig); + } + + private static Stream provideOperationalStatusEnum() { + return Stream.of( + Arguments.of( + DeviceOperationalStatus.ENABLED, + DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED), + Arguments.of( + DeviceOperationalStatus.DISABLED, + DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_DISABLED), + Arguments.of( + DeviceOperationalStatus.UNDEFINED, + DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_UNDEFINED)); + } + + @ParameterizedTest + @MethodSource("provideOperationalStatusEnum") + void shouldSerializeOperationalStatusEnum( + DeviceOperationalStatus opStatus, + ContextOuterClass.DeviceOperationalStatusEnum expectedOpStatus) { + final var serializedOpStatus = serializer.serialize(opStatus); + assertThat(serializedOpStatus.getNumber()).isEqualTo(expectedOpStatus.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideOperationalStatusEnum") + void shouldDeserializeOperationalStatusEnum( + DeviceOperationalStatus expectedOpStatus, + ContextOuterClass.DeviceOperationalStatusEnum serializedOpStatus) { + final var operationalStatus = serializer.deserialize(serializedOpStatus); + assertThat(operationalStatus).isEqualTo(expectedOpStatus); + } + + private static Stream provideDeviceDriverEnum() { + return Stream.of( + Arguments.of( + DeviceDriverEnum.OPENCONFIG, + ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG), + Arguments.of( + DeviceDriverEnum.TRANSPORT_API, + ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_TRANSPORT_API), + Arguments.of(DeviceDriverEnum.P4, ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_P4), + Arguments.of( + DeviceDriverEnum.IETF_NETWORK_TOPOLOGY, + ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_IETF_NETWORK_TOPOLOGY), + Arguments.of( + DeviceDriverEnum.ONF_TR_352, + ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_ONF_TR_352), + Arguments.of( + DeviceDriverEnum.UNDEFINED, ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_UNDEFINED)); + } + + @ParameterizedTest + @MethodSource("provideDeviceDriverEnum") + void shouldSerializeDeviceDriverEnum( + DeviceDriverEnum deviceDriverEnum, + ContextOuterClass.DeviceDriverEnum expectedDeviceDriverEnum) { + final var serializedDeviceDriverEnum = serializer.serialize(deviceDriverEnum); + + assertThat(serializedDeviceDriverEnum.getNumber()) + .isEqualTo(expectedDeviceDriverEnum.getNumber()); + } + + @ParameterizedTest + @MethodSource("provideDeviceDriverEnum") + void shouldDeserializeDeviceDriverEnum( + DeviceDriverEnum expectedDeviceDriverEnum, + ContextOuterClass.DeviceDriverEnum serializedDeviceDriverEnum) { + final var deviceDriverEnum = serializer.deserialize(serializedDeviceDriverEnum); + + assertThat(deviceDriverEnum).isEqualTo(expectedDeviceDriverEnum); + } + + @Test + void shouldSerializeEndPoint() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + final var endPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + final var endPointType = "endPointType"; + final var kpiSampleTypes = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + + final var locationTypeRegion = new LocationTypeRegion("ATH"); + final var location = new Location(locationTypeRegion); + + final var endPoint = new EndPoint(endPointId, endPointType, kpiSampleTypes, location); + + final var serializedEndPointId = serializer.serialize(endPointId); + final var serializedKpiSampleTypes = + kpiSampleTypes.stream() + .map(kpiSampleType -> serializer.serialize(kpiSampleType)) + .collect(Collectors.toList()); + final var serializedLocation = serializer.serialize(location); + + final var expectedEndPoint = + ContextOuterClass.EndPoint.newBuilder() + .setEndpointId(serializedEndPointId) + .setEndpointType(endPointType) + .addAllKpiSampleTypes(serializedKpiSampleTypes) + .setEndpointLocation(serializedLocation) + .build(); + + final var serializedEndPoint = serializer.serialize(endPoint); + + assertThat(serializedEndPoint).usingRecursiveComparison().isEqualTo(expectedEndPoint); + } + + @Test + void shouldDeserializeEndPoint() { + final var expectedTopologyId = new TopologyId("contextId", "id"); + final var expectedDeviceId = "expectedDeviceId"; + final var expectedId = "expectedId"; + final var expectedEndPointId = new EndPointId(expectedTopologyId, expectedDeviceId, expectedId); + final var expectedEndPointType = "expectedEndPointType"; + final var expectedKpiSampleTypes = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + + final var expectedLocationTypeRegion = new LocationTypeRegion("ATH"); + final var expectedLocation = new Location(expectedLocationTypeRegion); + + final var expectedEndPoint = + new EndPoint( + expectedEndPointId, expectedEndPointType, expectedKpiSampleTypes, expectedLocation); + + final var serializedEndPointId = serializer.serialize(expectedEndPointId); + final var serializedKpiSampleTypes = + expectedKpiSampleTypes.stream() + .map(kpiSampleType -> serializer.serialize(kpiSampleType)) + .collect(Collectors.toList()); + final var serializedLocation = serializer.serialize(expectedLocation); + + final var serializedEndPoint = + ContextOuterClass.EndPoint.newBuilder() + .setEndpointId(serializedEndPointId) + .setEndpointType(expectedEndPointType) + .addAllKpiSampleTypes(serializedKpiSampleTypes) + .setEndpointLocation(serializedLocation) + .build(); + + final var endPoint = serializer.deserialize(serializedEndPoint); + + assertThat(endPoint).usingRecursiveComparison().isEqualTo(expectedEndPoint); + } + + @Test + void shouldSerializeDevice() { + final var expectedConfigRuleCustomA = + ContextOuterClass.ConfigRule_Custom.newBuilder() + .setResourceKey("resourceKeyA") + .setResourceValue("resourceValueA") + .build(); + final var configRuleCustomA = new ConfigRuleCustom("resourceKeyA", "resourceValueA"); + + final var expectedConfigRule = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_SET) + .setCustom(expectedConfigRuleCustomA) + .build(); + + final var configRuleTypeA = new ConfigRuleTypeCustom(configRuleCustomA); + final var deviceConfig = + new DeviceConfig(List.of(new ConfigRule(ConfigActionEnum.SET, configRuleTypeA))); + + final var deviceDrivers = List.of(DeviceDriverEnum.IETF_NETWORK_TOPOLOGY, DeviceDriverEnum.P4); + + final var expectedTopologyIdA = new TopologyId("contextIdA", "idA"); + final var expectedDeviceIdA = "expectedDeviceIdA"; + final var expectedIdA = "expectedIdA"; + final var endPointIdA = new EndPointId(expectedTopologyIdA, expectedDeviceIdA, expectedIdA); + + final var endPointTypeA = "endPointTypeA"; + final var kpiSampleTypesA = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionA = new LocationTypeRegion("ATH"); + final var locationA = new Location(locationTypeRegionA); + final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); + + final var expectedTopologyIdB = new TopologyId("contextIdB", "idB"); + final var expectedDeviceIdB = "expectedDeviceIdB"; + final var expectedIdB = "expectedIdB"; + final var endPointIdB = new EndPointId(expectedTopologyIdB, expectedDeviceIdB, expectedIdB); + + final var endPointTypeB = "endPointTypeB"; + final var kpiSampleTypesB = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionB = new LocationTypeRegion("ATH"); + final var locationB = new Location(locationTypeRegionB); + final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); + + final var endPoints = List.of(endPointA, endPointB); + + final var expectedDeviceConfig = + ContextOuterClass.DeviceConfig.newBuilder().addConfigRules(expectedConfigRule).build(); + + final var serializedDeviceId = serializer.serializeDeviceId("deviceId"); + final var serializedDrivers = + deviceDrivers.stream() + .map(deviceDriverEnum -> serializer.serialize(deviceDriverEnum)) + .collect(Collectors.toList()); + + final var serializedEndPoints = + endPoints.stream() + .map(endPoint -> serializer.serialize(endPoint)) + .collect(Collectors.toList()); + + final var deviceBuilder = ContextOuterClass.Device.newBuilder(); + + deviceBuilder.setDeviceId(serializedDeviceId); + deviceBuilder.setDeviceType("deviceType"); + deviceBuilder.setDeviceConfig(expectedDeviceConfig); + deviceBuilder.setDeviceOperationalStatus(serializer.serialize(DeviceOperationalStatus.ENABLED)); + deviceBuilder.addAllDeviceDrivers(serializedDrivers); + deviceBuilder.addAllDeviceEndpoints(serializedEndPoints); + + final var expectedDevice = deviceBuilder.build(); + + final var device = + new Device( + "deviceId", + "deviceType", + deviceConfig, + DeviceOperationalStatus.ENABLED, + deviceDrivers, + endPoints); + final var serializedDevice = serializer.serialize(device); + + assertThat(serializedDevice).isEqualTo(expectedDevice); + } + + @Test + void shouldDeserializeDevice() { + final var configRuleCustom = new ConfigRuleCustom("resourceKeyA", "resourceValueA"); + final var expectedConfigRuleCustom = + ContextOuterClass.ConfigRule_Custom.newBuilder() + .setResourceKey("resourceKeyA") + .setResourceValue("resourceValueA") + .build(); + final var configRuleType = new ConfigRuleTypeCustom(configRuleCustom); + + final var expectedConfig = + new DeviceConfig(List.of(new ConfigRule(ConfigActionEnum.DELETE, configRuleType))); + + final var deviceDrivers = List.of(DeviceDriverEnum.IETF_NETWORK_TOPOLOGY, DeviceDriverEnum.P4); + + final var expectedTopologyIdA = new TopologyId("contextIdA", "idA"); + final var expectedDeviceIdA = "expectedDeviceIdA"; + final var expectedIdA = "expectedIdA"; + final var endPointIdA = new EndPointId(expectedTopologyIdA, expectedDeviceIdA, expectedIdA); + + final var endPointTypeA = "endPointTypeA"; + final var kpiSampleTypesA = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionA = new LocationTypeRegion("ATH"); + final var locationA = new Location(locationTypeRegionA); + final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); + + final var expectedTopologyIdB = new TopologyId("contextIdB", "idB"); + final var expectedDeviceIdB = "expectedDeviceIdB"; + final var expectedIdB = "expectedIdB"; + final var endPointIdB = new EndPointId(expectedTopologyIdB, expectedDeviceIdB, expectedIdB); + + final var endPointTypeB = "endPointTypeB"; + final var kpiSampleTypesB = + List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); + final var locationTypeRegionB = new LocationTypeRegion("ATH"); + final var locationB = new Location(locationTypeRegionB); + final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); + + final var endPoints = List.of(endPointA, endPointB); + + final var expectedDevice = + new Device( + "deviceId", + "deviceType", + expectedConfig, + DeviceOperationalStatus.ENABLED, + deviceDrivers, + endPoints); + + final var configRule = + ContextOuterClass.ConfigRule.newBuilder() + .setAction(ContextOuterClass.ConfigActionEnum.CONFIGACTION_DELETE) + .setCustom(expectedConfigRuleCustom) + .build(); + final var deviceConfig = + ContextOuterClass.DeviceConfig.newBuilder().addConfigRules(configRule).build(); + + final var serializedDeviceId = serializer.serializeDeviceId("deviceId"); + final var serializedDeviceOperationalStatus = + serializer.serialize(DeviceOperationalStatus.ENABLED); + + final var serializedDrivers = + deviceDrivers.stream() + .map(deviceDriverEnum -> serializer.serialize(deviceDriverEnum)) + .collect(Collectors.toList()); + + final var serializedEndPoints = + endPoints.stream() + .map(endPoint -> serializer.serialize(endPoint)) + .collect(Collectors.toList()); + + final var deviceBuilder = ContextOuterClass.Device.newBuilder(); + deviceBuilder.setDeviceId(serializedDeviceId); + deviceBuilder.setDeviceType("deviceType"); + deviceBuilder.setDeviceConfig(deviceConfig); + deviceBuilder.setDeviceOperationalStatus(serializedDeviceOperationalStatus); + deviceBuilder.addAllDeviceDrivers(serializedDrivers); + deviceBuilder.addAllDeviceEndpoints(serializedEndPoints); + + final var serializedDevice = deviceBuilder.build(); + final var device = serializer.deserialize(serializedDevice); + + assertThat(device).usingRecursiveComparison().isEqualTo(expectedDevice); + } + + @Test + void shouldSerializeUuid() { + final var expectedUuid = "uuid"; + + final var serializeUuid = serializer.serializeUuid(expectedUuid); + + assertThat(serializeUuid.getUuid()).isEqualTo(expectedUuid); + } + + @Test + void shouldDeserializeUuid() { + final var expectedUuid = "uuid"; + + final var uuid = serializer.deserialize(Uuid.newBuilder().setUuid(expectedUuid).build()); + + assertThat(uuid).isEqualTo(expectedUuid); + } +} diff --git a/src/policy/target/generated-sources/grpc/context_policy/ContextPolicy.java b/src/policy/target/generated-sources/grpc/context_policy/ContextPolicy.java new file mode 100644 index 0000000000000000000000000000000000000000..5048be4750db97e35f3007645927f2c7ea24be85 --- /dev/null +++ b/src/policy/target/generated-sources/grpc/context_policy/ContextPolicy.java @@ -0,0 +1,49 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: context-policy.proto + +package context_policy; + +public final class ContextPolicy { + private ContextPolicy() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024context-policy.proto\022\016context_policy\032\r" + + "context.proto\032\014policy.proto2\324\002\n\024ContextP" + + "olicyService\022?\n\021ListPolicyRuleIds\022\016.cont" + + "ext.Empty\032\030.policy.PolicyRuleIdList\"\000\022;\n" + + "\017ListPolicyRules\022\016.context.Empty\032\026.polic" + + "y.PolicyRuleList\"\000\022@\n\rGetPolicyRule\022\024.po" + + "licy.PolicyRuleId\032\027.policy.PolicyRuleBas" + + "ic\"\000\022@\n\rSetPolicyRule\022\027.policy.PolicyRul" + + "eBasic\032\024.policy.PolicyRuleId\"\000\022:\n\020Remove" + + "PolicyRule\022\024.policy.PolicyRuleId\032\016.conte" + + "xt.Empty\"\000b\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + context.ContextOuterClass.getDescriptor(), + policy.Policy.getDescriptor(), + }); + context.ContextOuterClass.getDescriptor(); + policy.Policy.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyService.java b/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyService.java new file mode 100644 index 0000000000000000000000000000000000000000..4870737ab496fff5c36ffa0824e44669532ecec0 --- /dev/null +++ b/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyService.java @@ -0,0 +1,24 @@ +package context_policy; + +import io.quarkus.grpc.runtime.MutinyService; + +@javax.annotation.Generated( +value = "by Mutiny Grpc generator", +comments = "Source: context-policy.proto") +public interface ContextPolicyService extends MutinyService { + + + io.smallrye.mutiny.Uni listPolicyRuleIds(context.ContextOuterClass.Empty request); + + io.smallrye.mutiny.Uni listPolicyRules(context.ContextOuterClass.Empty request); + + io.smallrye.mutiny.Uni getPolicyRule(policy.Policy.PolicyRuleId request); + + io.smallrye.mutiny.Uni setPolicyRule(policy.Policy.PolicyRuleBasic request); + + io.smallrye.mutiny.Uni removePolicyRule(policy.Policy.PolicyRuleId request); + + + + +} \ No newline at end of file diff --git a/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyServiceBean.java b/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyServiceBean.java new file mode 100644 index 0000000000000000000000000000000000000000..b1a93a6014a9fb0d9ae0d0e528fda1a1e2658416 --- /dev/null +++ b/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyServiceBean.java @@ -0,0 +1,59 @@ +package context_policy; + +import io.grpc.BindableService; +import io.quarkus.grpc.GrpcService; +import io.quarkus.grpc.runtime.MutinyBean; + +@javax.annotation.Generated( +value = "by Mutiny Grpc generator", +comments = "Source: context-policy.proto") +public class ContextPolicyServiceBean extends MutinyContextPolicyServiceGrpc.ContextPolicyServiceImplBase implements BindableService, MutinyBean { + + private final ContextPolicyService delegate; + + ContextPolicyServiceBean(@GrpcService ContextPolicyService delegate) { + this.delegate = delegate; + } + + @Override + public io.smallrye.mutiny.Uni listPolicyRuleIds(context.ContextOuterClass.Empty request) { + try { + return delegate.listPolicyRuleIds(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + @Override + public io.smallrye.mutiny.Uni listPolicyRules(context.ContextOuterClass.Empty request) { + try { + return delegate.listPolicyRules(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + @Override + public io.smallrye.mutiny.Uni getPolicyRule(policy.Policy.PolicyRuleId request) { + try { + return delegate.getPolicyRule(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + @Override + public io.smallrye.mutiny.Uni setPolicyRule(policy.Policy.PolicyRuleBasic request) { + try { + return delegate.setPolicyRule(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + @Override + public io.smallrye.mutiny.Uni removePolicyRule(policy.Policy.PolicyRuleId request) { + try { + return delegate.removePolicyRule(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + +} \ No newline at end of file diff --git a/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyServiceClient.java b/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyServiceClient.java new file mode 100644 index 0000000000000000000000000000000000000000..d255415707710db2b225f4d4f7e3f7c4ee6fd6d5 --- /dev/null +++ b/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyServiceClient.java @@ -0,0 +1,44 @@ +package context_policy; + +import java.util.function.BiFunction; + +import io.quarkus.grpc.runtime.MutinyClient; + +@javax.annotation.Generated( +value = "by Mutiny Grpc generator", +comments = "Source: context-policy.proto") +public class ContextPolicyServiceClient implements ContextPolicyService, MutinyClient { + + private final MutinyContextPolicyServiceGrpc.MutinyContextPolicyServiceStub stub; + + public ContextPolicyServiceClient(String name, io.grpc.Channel channel, BiFunction stubConfigurator) { + this.stub = stubConfigurator.apply(name,MutinyContextPolicyServiceGrpc.newMutinyStub(channel)); + } + + @Override + public MutinyContextPolicyServiceGrpc.MutinyContextPolicyServiceStub getStub() { + return stub; + } + + @Override + public io.smallrye.mutiny.Uni listPolicyRuleIds(context.ContextOuterClass.Empty request) { + return stub.listPolicyRuleIds(request); + } + @Override + public io.smallrye.mutiny.Uni listPolicyRules(context.ContextOuterClass.Empty request) { + return stub.listPolicyRules(request); + } + @Override + public io.smallrye.mutiny.Uni getPolicyRule(policy.Policy.PolicyRuleId request) { + return stub.getPolicyRule(request); + } + @Override + public io.smallrye.mutiny.Uni setPolicyRule(policy.Policy.PolicyRuleBasic request) { + return stub.setPolicyRule(request); + } + @Override + public io.smallrye.mutiny.Uni removePolicyRule(policy.Policy.PolicyRuleId request) { + return stub.removePolicyRule(request); + } + +} \ No newline at end of file diff --git a/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyServiceGrpc.java b/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyServiceGrpc.java new file mode 100644 index 0000000000000000000000000000000000000000..69735c34ce57d91725f81c7c23d94ad60da1db9b --- /dev/null +++ b/src/policy/target/generated-sources/grpc/context_policy/ContextPolicyServiceGrpc.java @@ -0,0 +1,586 @@ +package context_policy; + +import static io.grpc.MethodDescriptor.generateFullMethodName; + +/** + *
+ * created as a separate service to prevent import-loops in context and policy
+ * 
+ */ +@javax.annotation.Generated( + value = "by gRPC proto compiler (version 1.38.1)", + comments = "Source: context-policy.proto") +public final class ContextPolicyServiceGrpc { + + private ContextPolicyServiceGrpc() {} + + public static final String SERVICE_NAME = "context_policy.ContextPolicyService"; + + // Static method descriptors that strictly reflect the proto. + private static volatile io.grpc.MethodDescriptor getListPolicyRuleIdsMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "ListPolicyRuleIds", + requestType = context.ContextOuterClass.Empty.class, + responseType = policy.Policy.PolicyRuleIdList.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getListPolicyRuleIdsMethod() { + io.grpc.MethodDescriptor getListPolicyRuleIdsMethod; + if ((getListPolicyRuleIdsMethod = ContextPolicyServiceGrpc.getListPolicyRuleIdsMethod) == null) { + synchronized (ContextPolicyServiceGrpc.class) { + if ((getListPolicyRuleIdsMethod = ContextPolicyServiceGrpc.getListPolicyRuleIdsMethod) == null) { + ContextPolicyServiceGrpc.getListPolicyRuleIdsMethod = getListPolicyRuleIdsMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "ListPolicyRuleIds")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + context.ContextOuterClass.Empty.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + policy.Policy.PolicyRuleIdList.getDefaultInstance())) + .setSchemaDescriptor(new ContextPolicyServiceMethodDescriptorSupplier("ListPolicyRuleIds")) + .build(); + } + } + } + return getListPolicyRuleIdsMethod; + } + + private static volatile io.grpc.MethodDescriptor getListPolicyRulesMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "ListPolicyRules", + requestType = context.ContextOuterClass.Empty.class, + responseType = policy.Policy.PolicyRuleList.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getListPolicyRulesMethod() { + io.grpc.MethodDescriptor getListPolicyRulesMethod; + if ((getListPolicyRulesMethod = ContextPolicyServiceGrpc.getListPolicyRulesMethod) == null) { + synchronized (ContextPolicyServiceGrpc.class) { + if ((getListPolicyRulesMethod = ContextPolicyServiceGrpc.getListPolicyRulesMethod) == null) { + ContextPolicyServiceGrpc.getListPolicyRulesMethod = getListPolicyRulesMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "ListPolicyRules")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + context.ContextOuterClass.Empty.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + policy.Policy.PolicyRuleList.getDefaultInstance())) + .setSchemaDescriptor(new ContextPolicyServiceMethodDescriptorSupplier("ListPolicyRules")) + .build(); + } + } + } + return getListPolicyRulesMethod; + } + + private static volatile io.grpc.MethodDescriptor getGetPolicyRuleMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "GetPolicyRule", + requestType = policy.Policy.PolicyRuleId.class, + responseType = policy.Policy.PolicyRuleBasic.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getGetPolicyRuleMethod() { + io.grpc.MethodDescriptor getGetPolicyRuleMethod; + if ((getGetPolicyRuleMethod = ContextPolicyServiceGrpc.getGetPolicyRuleMethod) == null) { + synchronized (ContextPolicyServiceGrpc.class) { + if ((getGetPolicyRuleMethod = ContextPolicyServiceGrpc.getGetPolicyRuleMethod) == null) { + ContextPolicyServiceGrpc.getGetPolicyRuleMethod = getGetPolicyRuleMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetPolicyRule")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + policy.Policy.PolicyRuleId.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + policy.Policy.PolicyRuleBasic.getDefaultInstance())) + .setSchemaDescriptor(new ContextPolicyServiceMethodDescriptorSupplier("GetPolicyRule")) + .build(); + } + } + } + return getGetPolicyRuleMethod; + } + + private static volatile io.grpc.MethodDescriptor getSetPolicyRuleMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "SetPolicyRule", + requestType = policy.Policy.PolicyRuleBasic.class, + responseType = policy.Policy.PolicyRuleId.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getSetPolicyRuleMethod() { + io.grpc.MethodDescriptor getSetPolicyRuleMethod; + if ((getSetPolicyRuleMethod = ContextPolicyServiceGrpc.getSetPolicyRuleMethod) == null) { + synchronized (ContextPolicyServiceGrpc.class) { + if ((getSetPolicyRuleMethod = ContextPolicyServiceGrpc.getSetPolicyRuleMethod) == null) { + ContextPolicyServiceGrpc.getSetPolicyRuleMethod = getSetPolicyRuleMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "SetPolicyRule")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + policy.Policy.PolicyRuleBasic.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + policy.Policy.PolicyRuleId.getDefaultInstance())) + .setSchemaDescriptor(new ContextPolicyServiceMethodDescriptorSupplier("SetPolicyRule")) + .build(); + } + } + } + return getSetPolicyRuleMethod; + } + + private static volatile io.grpc.MethodDescriptor getRemovePolicyRuleMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "RemovePolicyRule", + requestType = policy.Policy.PolicyRuleId.class, + responseType = context.ContextOuterClass.Empty.class, + methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor getRemovePolicyRuleMethod() { + io.grpc.MethodDescriptor getRemovePolicyRuleMethod; + if ((getRemovePolicyRuleMethod = ContextPolicyServiceGrpc.getRemovePolicyRuleMethod) == null) { + synchronized (ContextPolicyServiceGrpc.class) { + if ((getRemovePolicyRuleMethod = ContextPolicyServiceGrpc.getRemovePolicyRuleMethod) == null) { + ContextPolicyServiceGrpc.getRemovePolicyRuleMethod = getRemovePolicyRuleMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.UNARY) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "RemovePolicyRule")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + policy.Policy.PolicyRuleId.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + context.ContextOuterClass.Empty.getDefaultInstance())) + .setSchemaDescriptor(new ContextPolicyServiceMethodDescriptorSupplier("RemovePolicyRule")) + .build(); + } + } + } + return getRemovePolicyRuleMethod; + } + + /** + * Creates a new async stub that supports all call types for the service + */ + public static ContextPolicyServiceStub newStub(io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public ContextPolicyServiceStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ContextPolicyServiceStub(channel, callOptions); + } + }; + return ContextPolicyServiceStub.newStub(factory, channel); + } + + /** + * Creates a new blocking-style stub that supports unary and streaming output calls on the service + */ + public static ContextPolicyServiceBlockingStub newBlockingStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public ContextPolicyServiceBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ContextPolicyServiceBlockingStub(channel, callOptions); + } + }; + return ContextPolicyServiceBlockingStub.newStub(factory, channel); + } + + /** + * Creates a new ListenableFuture-style stub that supports unary calls on the service + */ + public static ContextPolicyServiceFutureStub newFutureStub( + io.grpc.Channel channel) { + io.grpc.stub.AbstractStub.StubFactory factory = + new io.grpc.stub.AbstractStub.StubFactory() { + @java.lang.Override + public ContextPolicyServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ContextPolicyServiceFutureStub(channel, callOptions); + } + }; + return ContextPolicyServiceFutureStub.newStub(factory, channel); + } + + /** + *
+   * created as a separate service to prevent import-loops in context and policy
+   * 
+ */ + public static abstract class ContextPolicyServiceImplBase implements io.grpc.BindableService { + + /** + */ + public void listPolicyRuleIds(context.ContextOuterClass.Empty request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListPolicyRuleIdsMethod(), responseObserver); + } + + /** + */ + public void listPolicyRules(context.ContextOuterClass.Empty request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListPolicyRulesMethod(), responseObserver); + } + + /** + */ + public void getPolicyRule(policy.Policy.PolicyRuleId request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetPolicyRuleMethod(), responseObserver); + } + + /** + */ + public void setPolicyRule(policy.Policy.PolicyRuleBasic request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetPolicyRuleMethod(), responseObserver); + } + + /** + */ + public void removePolicyRule(policy.Policy.PolicyRuleId request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRemovePolicyRuleMethod(), responseObserver); + } + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + getListPolicyRuleIdsMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + context.ContextOuterClass.Empty, + policy.Policy.PolicyRuleIdList>( + this, METHODID_LIST_POLICY_RULE_IDS))) + .addMethod( + getListPolicyRulesMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + context.ContextOuterClass.Empty, + policy.Policy.PolicyRuleList>( + this, METHODID_LIST_POLICY_RULES))) + .addMethod( + getGetPolicyRuleMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + policy.Policy.PolicyRuleId, + policy.Policy.PolicyRuleBasic>( + this, METHODID_GET_POLICY_RULE))) + .addMethod( + getSetPolicyRuleMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + policy.Policy.PolicyRuleBasic, + policy.Policy.PolicyRuleId>( + this, METHODID_SET_POLICY_RULE))) + .addMethod( + getRemovePolicyRuleMethod(), + io.grpc.stub.ServerCalls.asyncUnaryCall( + new MethodHandlers< + policy.Policy.PolicyRuleId, + context.ContextOuterClass.Empty>( + this, METHODID_REMOVE_POLICY_RULE))) + .build(); + } + } + + /** + *
+   * created as a separate service to prevent import-loops in context and policy
+   * 
+ */ + public static final class ContextPolicyServiceStub extends io.grpc.stub.AbstractAsyncStub { + private ContextPolicyServiceStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected ContextPolicyServiceStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ContextPolicyServiceStub(channel, callOptions); + } + + /** + */ + public void listPolicyRuleIds(context.ContextOuterClass.Empty request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getListPolicyRuleIdsMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void listPolicyRules(context.ContextOuterClass.Empty request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getListPolicyRulesMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void getPolicyRule(policy.Policy.PolicyRuleId request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGetPolicyRuleMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void setPolicyRule(policy.Policy.PolicyRuleBasic request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getSetPolicyRuleMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void removePolicyRule(policy.Policy.PolicyRuleId request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getRemovePolicyRuleMethod(), getCallOptions()), request, responseObserver); + } + } + + /** + *
+   * created as a separate service to prevent import-loops in context and policy
+   * 
+ */ + public static final class ContextPolicyServiceBlockingStub extends io.grpc.stub.AbstractBlockingStub { + private ContextPolicyServiceBlockingStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected ContextPolicyServiceBlockingStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ContextPolicyServiceBlockingStub(channel, callOptions); + } + + /** + */ + public policy.Policy.PolicyRuleIdList listPolicyRuleIds(context.ContextOuterClass.Empty request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getListPolicyRuleIdsMethod(), getCallOptions(), request); + } + + /** + */ + public policy.Policy.PolicyRuleList listPolicyRules(context.ContextOuterClass.Empty request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getListPolicyRulesMethod(), getCallOptions(), request); + } + + /** + */ + public policy.Policy.PolicyRuleBasic getPolicyRule(policy.Policy.PolicyRuleId request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getGetPolicyRuleMethod(), getCallOptions(), request); + } + + /** + */ + public policy.Policy.PolicyRuleId setPolicyRule(policy.Policy.PolicyRuleBasic request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getSetPolicyRuleMethod(), getCallOptions(), request); + } + + /** + */ + public context.ContextOuterClass.Empty removePolicyRule(policy.Policy.PolicyRuleId request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall( + getChannel(), getRemovePolicyRuleMethod(), getCallOptions(), request); + } + } + + /** + *
+   * created as a separate service to prevent import-loops in context and policy
+   * 
+ */ + public static final class ContextPolicyServiceFutureStub extends io.grpc.stub.AbstractFutureStub { + private ContextPolicyServiceFutureStub( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + } + + @java.lang.Override + protected ContextPolicyServiceFutureStub build( + io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ContextPolicyServiceFutureStub(channel, callOptions); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture listPolicyRuleIds( + context.ContextOuterClass.Empty request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getListPolicyRuleIdsMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture listPolicyRules( + context.ContextOuterClass.Empty request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getListPolicyRulesMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture getPolicyRule( + policy.Policy.PolicyRuleId request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGetPolicyRuleMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture setPolicyRule( + policy.Policy.PolicyRuleBasic request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getSetPolicyRuleMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture removePolicyRule( + policy.Policy.PolicyRuleId request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getRemovePolicyRuleMethod(), getCallOptions()), request); + } + } + + private static final int METHODID_LIST_POLICY_RULE_IDS = 0; + private static final int METHODID_LIST_POLICY_RULES = 1; + private static final int METHODID_GET_POLICY_RULE = 2; + private static final int METHODID_SET_POLICY_RULE = 3; + private static final int METHODID_REMOVE_POLICY_RULE = 4; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final ContextPolicyServiceImplBase serviceImpl; + private final int methodId; + + MethodHandlers(ContextPolicyServiceImplBase serviceImpl, int methodId) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_LIST_POLICY_RULE_IDS: + serviceImpl.listPolicyRuleIds((context.ContextOuterClass.Empty) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_LIST_POLICY_RULES: + serviceImpl.listPolicyRules((context.ContextOuterClass.Empty) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_GET_POLICY_RULE: + serviceImpl.getPolicyRule((policy.Policy.PolicyRuleId) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_SET_POLICY_RULE: + serviceImpl.setPolicyRule((policy.Policy.PolicyRuleBasic) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + case METHODID_REMOVE_POLICY_RULE: + serviceImpl.removePolicyRule((policy.Policy.PolicyRuleId) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke( + io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new AssertionError(); + } + } + } + + private static abstract class ContextPolicyServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { + ContextPolicyServiceBaseDescriptorSupplier() {} + + @java.lang.Override + public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { + return context_policy.ContextPolicy.getDescriptor(); + } + + @java.lang.Override + public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() { + return getFileDescriptor().findServiceByName("ContextPolicyService"); + } + } + + private static final class ContextPolicyServiceFileDescriptorSupplier + extends ContextPolicyServiceBaseDescriptorSupplier { + ContextPolicyServiceFileDescriptorSupplier() {} + } + + private static final class ContextPolicyServiceMethodDescriptorSupplier + extends ContextPolicyServiceBaseDescriptorSupplier + implements io.grpc.protobuf.ProtoMethodDescriptorSupplier { + private final String methodName; + + ContextPolicyServiceMethodDescriptorSupplier(String methodName) { + this.methodName = methodName; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() { + return getServiceDescriptor().findMethodByName(methodName); + } + } + + private static volatile io.grpc.ServiceDescriptor serviceDescriptor; + + public static io.grpc.ServiceDescriptor getServiceDescriptor() { + io.grpc.ServiceDescriptor result = serviceDescriptor; + if (result == null) { + synchronized (ContextPolicyServiceGrpc.class) { + result = serviceDescriptor; + if (result == null) { + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) + .setSchemaDescriptor(new ContextPolicyServiceFileDescriptorSupplier()) + .addMethod(getListPolicyRuleIdsMethod()) + .addMethod(getListPolicyRulesMethod()) + .addMethod(getGetPolicyRuleMethod()) + .addMethod(getSetPolicyRuleMethod()) + .addMethod(getRemovePolicyRuleMethod()) + .build(); + } + } + } + return result; + } +} diff --git a/src/policy/target/generated-sources/grpc/context_policy/MutinyContextPolicyServiceGrpc.java b/src/policy/target/generated-sources/grpc/context_policy/MutinyContextPolicyServiceGrpc.java new file mode 100644 index 0000000000000000000000000000000000000000..6e6e29c0468afe5656d537cd0fe79e7b9ede7bad --- /dev/null +++ b/src/policy/target/generated-sources/grpc/context_policy/MutinyContextPolicyServiceGrpc.java @@ -0,0 +1,224 @@ +package context_policy; + +import static context_policy.ContextPolicyServiceGrpc.getServiceDescriptor; +import static io.grpc.stub.ServerCalls.asyncUnaryCall; +import static io.grpc.stub.ServerCalls.asyncServerStreamingCall; +import static io.grpc.stub.ServerCalls.asyncClientStreamingCall; +import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall; + +@javax.annotation.Generated( +value = "by Mutiny Grpc generator", +comments = "Source: context-policy.proto") +public final class MutinyContextPolicyServiceGrpc implements io.quarkus.grpc.runtime.MutinyGrpc { + private MutinyContextPolicyServiceGrpc() {} + + public static MutinyContextPolicyServiceStub newMutinyStub(io.grpc.Channel channel) { + return new MutinyContextPolicyServiceStub(channel); + } + + /** + *
+     *  created as a separate service to prevent import-loops in context and policy
+     * 
+ */ + public static final class MutinyContextPolicyServiceStub extends io.grpc.stub.AbstractStub implements io.quarkus.grpc.runtime.MutinyStub { + private ContextPolicyServiceGrpc.ContextPolicyServiceStub delegateStub; + + private MutinyContextPolicyServiceStub(io.grpc.Channel channel) { + super(channel); + delegateStub = ContextPolicyServiceGrpc.newStub(channel); + } + + private MutinyContextPolicyServiceStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + super(channel, callOptions); + delegateStub = ContextPolicyServiceGrpc.newStub(channel).build(channel, callOptions); + } + + @Override + protected MutinyContextPolicyServiceStub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new MutinyContextPolicyServiceStub(channel, callOptions); + } + + + public io.smallrye.mutiny.Uni listPolicyRuleIds(context.ContextOuterClass.Empty request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::listPolicyRuleIds); + } + + + public io.smallrye.mutiny.Uni listPolicyRules(context.ContextOuterClass.Empty request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::listPolicyRules); + } + + + public io.smallrye.mutiny.Uni getPolicyRule(policy.Policy.PolicyRuleId request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::getPolicyRule); + } + + + public io.smallrye.mutiny.Uni setPolicyRule(policy.Policy.PolicyRuleBasic request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::setPolicyRule); + } + + + public io.smallrye.mutiny.Uni removePolicyRule(policy.Policy.PolicyRuleId request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::removePolicyRule); + } + + } + + /** + *
+     *  created as a separate service to prevent import-loops in context and policy
+     * 
+ */ + public static abstract class ContextPolicyServiceImplBase implements io.grpc.BindableService { + + private String compression; + /** + * Set whether the server will try to use a compressed response. + * + * @param compression the compression, e.g {@code gzip} + */ + public ContextPolicyServiceImplBase withCompression(String compression) { + this.compression = compression; + return this; + } + + + + public io.smallrye.mutiny.Uni listPolicyRuleIds(context.ContextOuterClass.Empty request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + + public io.smallrye.mutiny.Uni listPolicyRules(context.ContextOuterClass.Empty request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + + public io.smallrye.mutiny.Uni getPolicyRule(policy.Policy.PolicyRuleId request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + + public io.smallrye.mutiny.Uni setPolicyRule(policy.Policy.PolicyRuleBasic request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + + public io.smallrye.mutiny.Uni removePolicyRule(policy.Policy.PolicyRuleId request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) + .addMethod( + context_policy.ContextPolicyServiceGrpc.getListPolicyRuleIdsMethod(), + asyncUnaryCall( + new MethodHandlers< + context.ContextOuterClass.Empty, + policy.Policy.PolicyRuleIdList>( + this, METHODID_LIST_POLICY_RULE_IDS, compression))) + .addMethod( + context_policy.ContextPolicyServiceGrpc.getListPolicyRulesMethod(), + asyncUnaryCall( + new MethodHandlers< + context.ContextOuterClass.Empty, + policy.Policy.PolicyRuleList>( + this, METHODID_LIST_POLICY_RULES, compression))) + .addMethod( + context_policy.ContextPolicyServiceGrpc.getGetPolicyRuleMethod(), + asyncUnaryCall( + new MethodHandlers< + policy.Policy.PolicyRuleId, + policy.Policy.PolicyRuleBasic>( + this, METHODID_GET_POLICY_RULE, compression))) + .addMethod( + context_policy.ContextPolicyServiceGrpc.getSetPolicyRuleMethod(), + asyncUnaryCall( + new MethodHandlers< + policy.Policy.PolicyRuleBasic, + policy.Policy.PolicyRuleId>( + this, METHODID_SET_POLICY_RULE, compression))) + .addMethod( + context_policy.ContextPolicyServiceGrpc.getRemovePolicyRuleMethod(), + asyncUnaryCall( + new MethodHandlers< + policy.Policy.PolicyRuleId, + context.ContextOuterClass.Empty>( + this, METHODID_REMOVE_POLICY_RULE, compression))) + .build(); + } + } + + private static final int METHODID_LIST_POLICY_RULE_IDS = 0; + private static final int METHODID_LIST_POLICY_RULES = 1; + private static final int METHODID_GET_POLICY_RULE = 2; + private static final int METHODID_SET_POLICY_RULE = 3; + private static final int METHODID_REMOVE_POLICY_RULE = 4; + + private static final class MethodHandlers implements + io.grpc.stub.ServerCalls.UnaryMethod, + io.grpc.stub.ServerCalls.ServerStreamingMethod, + io.grpc.stub.ServerCalls.ClientStreamingMethod, + io.grpc.stub.ServerCalls.BidiStreamingMethod { + private final ContextPolicyServiceImplBase serviceImpl; + private final int methodId; + private final String compression; + + MethodHandlers(ContextPolicyServiceImplBase serviceImpl, int methodId, String compression) { + this.serviceImpl = serviceImpl; + this.methodId = methodId; + this.compression = compression; + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + case METHODID_LIST_POLICY_RULE_IDS: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((context.ContextOuterClass.Empty) request, + (io.grpc.stub.StreamObserver) responseObserver, + compression, + serviceImpl::listPolicyRuleIds); + break; + case METHODID_LIST_POLICY_RULES: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((context.ContextOuterClass.Empty) request, + (io.grpc.stub.StreamObserver) responseObserver, + compression, + serviceImpl::listPolicyRules); + break; + case METHODID_GET_POLICY_RULE: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((policy.Policy.PolicyRuleId) request, + (io.grpc.stub.StreamObserver) responseObserver, + compression, + serviceImpl::getPolicyRule); + break; + case METHODID_SET_POLICY_RULE: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((policy.Policy.PolicyRuleBasic) request, + (io.grpc.stub.StreamObserver) responseObserver, + compression, + serviceImpl::setPolicyRule); + break; + case METHODID_REMOVE_POLICY_RULE: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((policy.Policy.PolicyRuleId) request, + (io.grpc.stub.StreamObserver) responseObserver, + compression, + serviceImpl::removePolicyRule); + break; + default: + throw new java.lang.AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver invoke(io.grpc.stub.StreamObserver responseObserver) { + switch (methodId) { + default: + throw new java.lang.AssertionError(); + } + } + } + +} \ No newline at end of file diff --git a/src/policy/target/generated-sources/grpc/policy/Policy.java b/src/policy/target/generated-sources/grpc/policy/Policy.java index d332560fa0ceaabe472c8f78db306e7e8d9246eb..541f97f47bd2e69711a795dc454841054e865a3a 100644 --- a/src/policy/target/generated-sources/grpc/policy/Policy.java +++ b/src/policy/target/generated-sources/grpc/policy/Policy.java @@ -1457,17 +1457,29 @@ public final class Policy { policy.Policy.PolicyRuleIdOrBuilder getPolicyRuleIdOrBuilder(); /** - * optional .policy.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.
+     * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; * @return Whether the policyRuleState field is set. */ boolean hasPolicyRuleState(); /** - * optional .policy.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.
+     * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; * @return The policyRuleState. */ policy.Policy.PolicyRuleState getPolicyRuleState(); /** - * optional .policy.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.
+     * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; */ policy.Policy.PolicyRuleStateOrBuilder getPolicyRuleStateOrBuilder(); @@ -1652,7 +1664,7 @@ public final class Policy { } case 18: { policy.Policy.PolicyRuleState.Builder subBuilder = null; - if (((bitField0_ & 0x00000001) != 0)) { + if (policyRuleState_ != null) { subBuilder = policyRuleState_.toBuilder(); } policyRuleState_ = input.readMessage(policy.Policy.PolicyRuleState.parser(), extensionRegistry); @@ -1660,7 +1672,7 @@ public final class Policy { subBuilder.mergeFrom(policyRuleState_); policyRuleState_ = subBuilder.buildPartial(); } - bitField0_ |= 0x00000001; + break; } case 24: { @@ -1669,9 +1681,9 @@ public final class Policy { break; } case 34: { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { conditionList_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; + mutable_bitField0_ |= 0x00000001; } conditionList_.add( input.readMessage(policy.PolicyCondition.PolicyRuleCondition.parser(), extensionRegistry)); @@ -1684,9 +1696,9 @@ public final class Policy { break; } case 50: { - if (!((mutable_bitField0_ & 0x00000004) != 0)) { + if (!((mutable_bitField0_ & 0x00000002) != 0)) { actionList_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000004; + mutable_bitField0_ |= 0x00000002; } actionList_.add( input.readMessage(policy.PolicyAction.PolicyRuleAction.parser(), extensionRegistry)); @@ -1707,10 +1719,10 @@ public final class Policy { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { - if (((mutable_bitField0_ & 0x00000002) != 0)) { + if (((mutable_bitField0_ & 0x00000001) != 0)) { conditionList_ = java.util.Collections.unmodifiableList(conditionList_); } - if (((mutable_bitField0_ & 0x00000004) != 0)) { + if (((mutable_bitField0_ & 0x00000002) != 0)) { actionList_ = java.util.Collections.unmodifiableList(actionList_); } this.unknownFields = unknownFields.build(); @@ -1730,7 +1742,6 @@ public final class Policy { policy.Policy.PolicyRuleBasic.class, policy.Policy.PolicyRuleBasic.Builder.class); } - private int bitField0_; public static final int POLICYRULEID_FIELD_NUMBER = 1; private policy.Policy.PolicyRuleId policyRuleId_; /** @@ -1760,15 +1771,23 @@ public final class Policy { public static final int POLICYRULESTATE_FIELD_NUMBER = 2; private policy.Policy.PolicyRuleState policyRuleState_; /** - * optional .policy.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.
+     * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; * @return Whether the policyRuleState field is set. */ @java.lang.Override public boolean hasPolicyRuleState() { - return ((bitField0_ & 0x00000001) != 0); + return policyRuleState_ != null; } /** - * optional .policy.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.
+     * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; * @return The policyRuleState. */ @java.lang.Override @@ -1776,11 +1795,15 @@ public final class Policy { return policyRuleState_ == null ? policy.Policy.PolicyRuleState.getDefaultInstance() : policyRuleState_; } /** - * optional .policy.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.
+     * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; */ @java.lang.Override public policy.Policy.PolicyRuleStateOrBuilder getPolicyRuleStateOrBuilder() { - return policyRuleState_ == null ? policy.Policy.PolicyRuleState.getDefaultInstance() : policyRuleState_; + return getPolicyRuleState(); } public static final int PRIORITY_FIELD_NUMBER = 3; @@ -1958,7 +1981,7 @@ public final class Policy { if (policyRuleId_ != null) { output.writeMessage(1, getPolicyRuleId()); } - if (((bitField0_ & 0x00000001) != 0)) { + if (policyRuleState_ != null) { output.writeMessage(2, getPolicyRuleState()); } if (priority_ != 0) { @@ -1986,7 +2009,7 @@ public final class Policy { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getPolicyRuleId()); } - if (((bitField0_ & 0x00000001) != 0)) { + if (policyRuleState_ != null) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getPolicyRuleState()); } @@ -2201,7 +2224,6 @@ public final class Policy { private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { - getPolicyRuleStateFieldBuilder(); getConditionListFieldBuilder(); getActionListFieldBuilder(); } @@ -2218,14 +2240,14 @@ public final class Policy { if (policyRuleStateBuilder_ == null) { policyRuleState_ = null; } else { - policyRuleStateBuilder_.clear(); + policyRuleState_ = null; + policyRuleStateBuilder_ = null; } - bitField0_ = (bitField0_ & ~0x00000001); priority_ = 0; if (conditionListBuilder_ == null) { conditionList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); } else { conditionListBuilder_.clear(); } @@ -2233,7 +2255,7 @@ public final class Policy { if (actionListBuilder_ == null) { actionList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); } else { actionListBuilder_.clear(); } @@ -2264,25 +2286,21 @@ public final class Policy { public policy.Policy.PolicyRuleBasic buildPartial() { policy.Policy.PolicyRuleBasic result = new policy.Policy.PolicyRuleBasic(this); int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; if (policyRuleIdBuilder_ == null) { result.policyRuleId_ = policyRuleId_; } else { result.policyRuleId_ = policyRuleIdBuilder_.build(); } - if (((from_bitField0_ & 0x00000001) != 0)) { - if (policyRuleStateBuilder_ == null) { - result.policyRuleState_ = policyRuleState_; - } else { - result.policyRuleState_ = policyRuleStateBuilder_.build(); - } - to_bitField0_ |= 0x00000001; + if (policyRuleStateBuilder_ == null) { + result.policyRuleState_ = policyRuleState_; + } else { + result.policyRuleState_ = policyRuleStateBuilder_.build(); } result.priority_ = priority_; if (conditionListBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { + if (((bitField0_ & 0x00000001) != 0)) { conditionList_ = java.util.Collections.unmodifiableList(conditionList_); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); } result.conditionList_ = conditionList_; } else { @@ -2290,15 +2308,14 @@ public final class Policy { } result.booleanOperator_ = booleanOperator_; if (actionListBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0)) { + if (((bitField0_ & 0x00000002) != 0)) { actionList_ = java.util.Collections.unmodifiableList(actionList_); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); } result.actionList_ = actionList_; } else { result.actionList_ = actionListBuilder_.build(); } - result.bitField0_ = to_bitField0_; onBuilt(); return result; } @@ -2360,7 +2377,7 @@ public final class Policy { if (!other.conditionList_.isEmpty()) { if (conditionList_.isEmpty()) { conditionList_ = other.conditionList_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); } else { ensureConditionListIsMutable(); conditionList_.addAll(other.conditionList_); @@ -2373,7 +2390,7 @@ public final class Policy { conditionListBuilder_.dispose(); conditionListBuilder_ = null; conditionList_ = other.conditionList_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); conditionListBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getConditionListFieldBuilder() : null; @@ -2389,7 +2406,7 @@ public final class Policy { if (!other.actionList_.isEmpty()) { if (actionList_.isEmpty()) { actionList_ = other.actionList_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); } else { ensureActionListIsMutable(); actionList_.addAll(other.actionList_); @@ -2402,7 +2419,7 @@ public final class Policy { actionListBuilder_.dispose(); actionListBuilder_ = null; actionList_ = other.actionList_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); actionListBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getActionListFieldBuilder() : null; @@ -2564,14 +2581,22 @@ public final class Policy { private com.google.protobuf.SingleFieldBuilderV3< policy.Policy.PolicyRuleState, policy.Policy.PolicyRuleState.Builder, policy.Policy.PolicyRuleStateOrBuilder> policyRuleStateBuilder_; /** - * optional .policy.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.
+       * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; * @return Whether the policyRuleState field is set. */ public boolean hasPolicyRuleState() { - return ((bitField0_ & 0x00000001) != 0); + return policyRuleStateBuilder_ != null || policyRuleState_ != null; } /** - * optional .policy.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.
+       * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; * @return The policyRuleState. */ public policy.Policy.PolicyRuleState getPolicyRuleState() { @@ -2582,7 +2607,11 @@ public final class Policy { } } /** - * optional .policy.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.
+       * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; */ public Builder setPolicyRuleState(policy.Policy.PolicyRuleState value) { if (policyRuleStateBuilder_ == null) { @@ -2594,11 +2623,15 @@ public final class Policy { } else { policyRuleStateBuilder_.setMessage(value); } - bitField0_ |= 0x00000001; + return this; } /** - * optional .policy.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.
+       * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; */ public Builder setPolicyRuleState( policy.Policy.PolicyRuleState.Builder builderForValue) { @@ -2608,17 +2641,19 @@ public final class Policy { } else { policyRuleStateBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000001; + return this; } /** - * optional .policy.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.
+       * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; */ public Builder mergePolicyRuleState(policy.Policy.PolicyRuleState value) { if (policyRuleStateBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && - policyRuleState_ != null && - policyRuleState_ != policy.Policy.PolicyRuleState.getDefaultInstance()) { + if (policyRuleState_ != null) { policyRuleState_ = policy.Policy.PolicyRuleState.newBuilder(policyRuleState_).mergeFrom(value).buildPartial(); } else { @@ -2628,32 +2663,45 @@ public final class Policy { } else { policyRuleStateBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000001; + return this; } /** - * optional .policy.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.
+       * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; */ public Builder clearPolicyRuleState() { if (policyRuleStateBuilder_ == null) { policyRuleState_ = null; onChanged(); } else { - policyRuleStateBuilder_.clear(); + policyRuleState_ = null; + policyRuleStateBuilder_ = null; } - bitField0_ = (bitField0_ & ~0x00000001); + return this; } /** - * optional .policy.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.
+       * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; */ public policy.Policy.PolicyRuleState.Builder getPolicyRuleStateBuilder() { - bitField0_ |= 0x00000001; + onChanged(); return getPolicyRuleStateFieldBuilder().getBuilder(); } /** - * optional .policy.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.
+       * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; */ public policy.Policy.PolicyRuleStateOrBuilder getPolicyRuleStateOrBuilder() { if (policyRuleStateBuilder_ != null) { @@ -2664,7 +2712,11 @@ public final class Policy { } } /** - * optional .policy.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.
+       * 
+ * + * .policy.PolicyRuleState policyRuleState = 2; */ private com.google.protobuf.SingleFieldBuilderV3< policy.Policy.PolicyRuleState, policy.Policy.PolicyRuleState.Builder, policy.Policy.PolicyRuleStateOrBuilder> @@ -2714,9 +2766,9 @@ public final class Policy { private java.util.List conditionList_ = java.util.Collections.emptyList(); private void ensureConditionListIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!((bitField0_ & 0x00000001) != 0)) { conditionList_ = new java.util.ArrayList(conditionList_); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000001; } } @@ -2910,7 +2962,7 @@ public final class Policy { public Builder clearConditionList() { if (conditionListBuilder_ == null) { conditionList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { conditionListBuilder_.clear(); @@ -3015,7 +3067,7 @@ public final class Policy { conditionListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< policy.PolicyCondition.PolicyRuleCondition, policy.PolicyCondition.PolicyRuleCondition.Builder, policy.PolicyCondition.PolicyRuleConditionOrBuilder>( conditionList_, - ((bitField0_ & 0x00000002) != 0), + ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); conditionList_ = null; @@ -3100,9 +3152,9 @@ public final class Policy { private java.util.List actionList_ = java.util.Collections.emptyList(); private void ensureActionListIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { + if (!((bitField0_ & 0x00000002) != 0)) { actionList_ = new java.util.ArrayList(actionList_); - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000002; } } @@ -3296,7 +3348,7 @@ public final class Policy { public Builder clearActionList() { if (actionListBuilder_ == null) { actionList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); } else { actionListBuilder_.clear(); @@ -3401,7 +3453,7 @@ public final class Policy { actionListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< policy.PolicyAction.PolicyRuleAction, policy.PolicyAction.PolicyRuleAction.Builder, policy.PolicyAction.PolicyRuleActionOrBuilder>( actionList_, - ((bitField0_ & 0x00000004) != 0), + ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); actionList_ = null; @@ -9338,50 +9390,49 @@ public final class Policy { "olicy-condition.proto\032\023policy-action.pro" + "to\"+\n\014PolicyRuleId\022\033\n\004uuid\030\001 \001(\0132\r.conte" + "xt.Uuid\"=\n\017PolicyRuleState\022*\n\017policyRule" + - "State\030\001 \001(\0162\021.policy.RuleState\"\256\002\n\017Polic" + + "State\030\001 \001(\0162\021.policy.RuleState\"\225\002\n\017Polic" + "yRuleBasic\022*\n\014policyRuleId\030\001 \001(\0132\024.polic" + - "y.PolicyRuleId\0225\n\017policyRuleState\030\002 \001(\0132" + - "\027.policy.PolicyRuleStateH\000\210\001\001\022\020\n\010priorit" + - "y\030\003 \001(\r\0222\n\rconditionList\030\004 \003(\0132\033.policy." + - "PolicyRuleCondition\0220\n\017booleanOperator\030\005" + - " \001(\0162\027.policy.BooleanOperator\022,\n\nactionL" + - "ist\030\006 \003(\0132\030.policy.PolicyRuleActionB\022\n\020_" + - "policyRuleState\"\223\001\n\021PolicyRuleService\0220\n" + - "\017policyRuleBasic\030\001 \001(\0132\027.policy.PolicyRu" + - "leBasic\022%\n\tserviceId\030\002 \001(\0132\022.context.Ser" + - "viceId\022%\n\ndeviceList\030\003 \003(\0132\021.context.Dev" + - "iceId\"k\n\020PolicyRuleDevice\0220\n\017policyRuleB" + - "asic\030\001 \001(\0132\027.policy.PolicyRuleBasic\022%\n\nd" + - "eviceList\030\002 \003(\0132\021.context.DeviceId\"B\n\020Po" + - "licyRuleIdList\022.\n\020policyRuleIdList\030\001 \003(\013" + - "2\024.policy.PolicyRuleId\"Q\n\025PolicyRuleServ" + - "iceList\0228\n\025policyRuleServiceList\030\001 \003(\0132\031" + - ".policy.PolicyRuleService\"N\n\024PolicyRuleD" + - "eviceList\0226\n\024policyRuleDeviceList\030\001 \003(\0132" + - "\030.policy.PolicyRuleDevice\";\n\016PolicyRuleL" + - "ist\022)\n\013policyRules\030\001 \003(\0132\024.policy.Policy" + - "RuleId*\365\001\n\tRuleState\022\024\n\020POLICY_UNDEFINED" + - "\020\000\022\021\n\rPOLICY_FAILED\020\001\022\023\n\017POLICY_INSERTED" + - "\020\002\022\024\n\020POLICY_VALIDATED\020\003\022\026\n\022POLICY_PROVI" + - "SIONED\020\004\022\021\n\rPOLICY_ACTIVE\020\005\022\023\n\017POLICY_EN" + - "FORCED\020\006\022\026\n\022POLICY_INEFFECTIVE\020\007\022\024\n\020POLI" + - "CY_EFFECTIVE\020\010\022\022\n\016POLICY_UPDATED\020\t\022\022\n\016PO" + - "LICY_REMOVED\020\n2\323\004\n\rPolicyService\022H\n\020Poli" + - "cyAddService\022\031.policy.PolicyRuleService\032" + - "\027.policy.PolicyRuleState\"\000\022F\n\017PolicyAddD" + - "evice\022\030.policy.PolicyRuleDevice\032\027.policy" + - ".PolicyRuleState\"\000\022K\n\023PolicyUpdateServic" + - "e\022\031.policy.PolicyRuleService\032\027.policy.Po" + - "licyRuleState\"\000\022I\n\022PolicyUpdateDevice\022\030." + - "policy.PolicyRuleDevice\032\027.policy.PolicyR" + - "uleState\"\000\022?\n\014PolicyDelete\022\024.policy.Poli" + - "cyRuleId\032\027.policy.PolicyRuleState\"\000\022E\n\020G" + - "etPolicyService\022\024.policy.PolicyRuleId\032\031." + - "policy.PolicyRuleService\"\000\022C\n\017GetPolicyD" + - "evice\022\024.policy.PolicyRuleId\032\030.policy.Pol" + - "icyRuleDevice\"\000\022K\n\024GetPolicyByServiceId\022" + - "\022.context.ServiceId\032\035.policy.PolicyRuleS" + - "erviceList\"\000b\006proto3" + "y.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.Polic" + + "yRuleCondition\0220\n\017booleanOperator\030\005 \001(\0162" + + "\027.policy.BooleanOperator\022,\n\nactionList\030\006" + + " \003(\0132\030.policy.PolicyRuleAction\"\223\001\n\021Polic" + + "yRuleService\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\020PolicyRuleDevice" + + "\0220\n\017policyRuleBasic\030\001 \001(\0132\027.policy.Polic" + + "yRuleBasic\022%\n\ndeviceList\030\002 \003(\0132\021.context" + + ".DeviceId\"B\n\020PolicyRuleIdList\022.\n\020policyR" + + "uleIdList\030\001 \003(\0132\024.policy.PolicyRuleId\"Q\n" + + "\025PolicyRuleServiceList\0228\n\025policyRuleServ" + + "iceList\030\001 \003(\0132\031.policy.PolicyRuleService" + + "\"N\n\024PolicyRuleDeviceList\0226\n\024policyRuleDe" + + "viceList\030\001 \003(\0132\030.policy.PolicyRuleDevice" + + "\";\n\016PolicyRuleList\022)\n\013policyRules\030\001 \003(\0132" + + "\024.policy.PolicyRuleId*\365\001\n\tRuleState\022\024\n\020P" + + "OLICY_UNDEFINED\020\000\022\021\n\rPOLICY_FAILED\020\001\022\023\n\017" + + "POLICY_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_INEFFE" + + "CTIVE\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\rPolicy" + + "Service\022H\n\020PolicyAddService\022\031.policy.Pol" + + "icyRuleService\032\027.policy.PolicyRuleState\"" + + "\000\022F\n\017PolicyAddDevice\022\030.policy.PolicyRule" + + "Device\032\027.policy.PolicyRuleState\"\000\022K\n\023Pol" + + "icyUpdateService\022\031.policy.PolicyRuleServ" + + "ice\032\027.policy.PolicyRuleState\"\000\022I\n\022Policy" + + "UpdateDevice\022\030.policy.PolicyRuleDevice\032\027" + + ".policy.PolicyRuleState\"\000\022?\n\014PolicyDelet" + + "e\022\024.policy.PolicyRuleId\032\027.policy.PolicyR" + + "uleState\"\000\022E\n\020GetPolicyService\022\024.policy." + + "PolicyRuleId\032\031.policy.PolicyRuleService\"" + + "\000\022C\n\017GetPolicyDevice\022\024.policy.PolicyRule" + + "Id\032\030.policy.PolicyRuleDevice\"\000\022K\n\024GetPol" + + "icyByServiceId\022\022.context.ServiceId\032\035.pol" + + "icy.PolicyRuleServiceList\"\000b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -9407,7 +9458,7 @@ public final class Policy { 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", "PolicyRuleState", }); + new java.lang.String[] { "PolicyRuleId", "PolicyRuleState", "Priority", "ConditionList", "BooleanOperator", "ActionList", }); internal_static_policy_PolicyRuleService_descriptor = getDescriptor().getMessageTypes().get(3); internal_static_policy_PolicyRuleService_fieldAccessorTable = new diff --git a/src/policy/target/kubernetes/kubernetes.yml b/src/policy/target/kubernetes/kubernetes.yml index 97929a86330aa71f708199fa3333764e0fd31e38..06068f0f5983b4ef385ee60b8a6cb5d812cab253 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: cfe69c57feb1d488c2dda620021e3c62d67fc3d3 - app.quarkus.io/build-timestamp: 2022-07-14 - 07:52:22 +0000 + app.quarkus.io/commit-id: 1d77cb00ae8f577885de32f01f4740f865853863 + app.quarkus.io/build-timestamp: 2022-07-26 - 10:46:55 +0000 labels: app.kubernetes.io/name: policyservice app: policyservice @@ -25,8 +25,8 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - app.quarkus.io/commit-id: cfe69c57feb1d488c2dda620021e3c62d67fc3d3 - app.quarkus.io/build-timestamp: 2022-07-14 - 07:52:22 +0000 + app.quarkus.io/commit-id: 1d77cb00ae8f577885de32f01f4740f865853863 + app.quarkus.io/build-timestamp: 2022-07-26 - 10:46:55 +0000 labels: app: policyservice app.kubernetes.io/name: policyservice @@ -39,8 +39,8 @@ spec: template: metadata: annotations: - app.quarkus.io/commit-id: cfe69c57feb1d488c2dda620021e3c62d67fc3d3 - app.quarkus.io/build-timestamp: 2022-07-14 - 07:52:22 +0000 + app.quarkus.io/commit-id: 1d77cb00ae8f577885de32f01f4740f865853863 + app.quarkus.io/build-timestamp: 2022-07-26 - 10:46:55 +0000 labels: app: policyservice app.kubernetes.io/name: policyservice @@ -51,10 +51,10 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace - - name: MONITORING_SERVICE_HOST - value: monitoringservice - name: SERVICE_SERVICE_HOST value: serviceservice + - name: MONITORING_SERVICE_HOST + value: monitoringservice - name: CONTEXT_SERVICE_HOST value: contextservice image: registry.gitlab.com/teraflow-h2020/controller/policy:0.1.0 diff --git a/src/service/.gitlab-ci.yml b/src/service/.gitlab-ci.yml index 043b5c990eaa0266105439bdf7a02143b859b960..c40bc90cfe0b20669fe89aa9d6ecda562d7d0422 100644 --- a/src/service/.gitlab-ci.yml +++ b/src/service/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag and push the Docker image to the GitLab registry +# Build, tag, and push the Docker image to the GitLab Docker registry build service: variables: IMAGE_NAME: 'service' # name of the microservice diff --git a/src/slice/.gitlab-ci.yml b/src/slice/.gitlab-ci.yml index 3fe479f71ce1d8ed6fd72fe3ed95736a981713ea..9393e6b29a2fbe180e74944375c871af4c4ae3d6 100644 --- a/src/slice/.gitlab-ci.yml +++ b/src/slice/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag and push the Docker image to the GitLab registry +# Build, tag, and push the Docker image to the GitLab Docker registry build slice: variables: IMAGE_NAME: 'slice' # name of the microservice diff --git a/src/webui/.gitlab-ci.yml b/src/webui/.gitlab-ci.yml index afafed4b2892ba05a33595f961e0add738adc041..e939d834761834f60e13045f7ce941f41887b956 100644 --- a/src/webui/.gitlab-ci.yml +++ b/src/webui/.gitlab-ci.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Build, tag and push the Docker image to the GitLab registry +# Build, tag, and push the Docker image to the GitLab Docker registry build webui: variables: IMAGE_NAME: 'webui' # name of the microservice