diff --git a/src/policy/src/main/java/eu/teraflow/policy/Serializer.java b/src/policy/src/main/java/eu/teraflow/policy/Serializer.java index f794d8bafa402bc0dbe3296034bc235f30d9c969..9970852124fb0a5334087ef703a6b0fb5b3ef9a8 100644 --- a/src/policy/src/main/java/eu/teraflow/policy/Serializer.java +++ b/src/policy/src/main/java/eu/teraflow/policy/Serializer.java @@ -22,6 +22,7 @@ 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; @@ -51,6 +52,11 @@ 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; @@ -1952,6 +1958,178 @@ public class Serializer { 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(); } 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<Service> getService(ServiceId serviceId); + + Uni<ServiceId> setService(Service service); + + Uni<Device> getDevice(String deviceId); + + // Context-policy related methods + Uni<PolicyRuleBasic> getPolicyRule(String policyRuleId); + + Uni<String> 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<Service> getService(ServiceId serviceId) { + + final var serializedServiceId = serializer.serialize(serviceId); + + return streamingDelegateContext + .getService(serializedServiceId) + .onItem() + .transform(serializer::deserialize); + } + + @Override + public Uni<ServiceId> setService(Service service) { + final var serializedService = serializer.serialize(service); + + return streamingDelegateContext + .setService(serializedService) + .onItem() + .transform(serializer::deserialize); + } + + @Override + public Uni<Device> getDevice(String deviceId) { + final var serializedDeviceId = serializer.serializeDeviceId(deviceId); + + return streamingDelegateContext + .getDevice(serializedDeviceId) + .onItem() + .transform(serializer::deserialize); + } + + @Override + public Uni<PolicyRuleBasic> getPolicyRule(String policyRuleId) { + final var serializedPolicyRuleId = serializer.serializePolicyRuleId(policyRuleId); + + return streamingDelegateContextPolicy + .getPolicyRule(serializedPolicyRuleId) + .onItem() + .transform(serializer::deserialize); + } + + @Override + public Uni<String> 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<Service> getService(ServiceId serviceId); + + Uni<ServiceId> setService(Service service); + + Uni<Device> getDevice(String deviceId); + + Uni<PolicyRuleBasic> getPolicyRule(String policyRuleId); + + Uni<String> 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<Service> getService(ServiceId serviceId) { + return contextGateway.getService(serviceId); + } + + @Override + public Uni<ServiceId> setService(Service service) { + return contextGateway.setService(service); + } + + @Override + public Uni<Device> getDevice(String deviceId) { + return contextGateway.getDevice(deviceId); + } + + @Override + public Uni<PolicyRuleBasic> getPolicyRule(String policyRuleId) { + return contextGateway.getPolicyRule(policyRuleId); + } + + @Override + public Uni<String> setPolicyRule(PolicyRuleBasic policyRuleBasic) { + return contextGateway.setPolicyRule(policyRuleBasic); + } +} diff --git a/src/policy/src/main/java/eu/teraflow/policy/context/model/Device.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/Device.java new file mode 100644 index 0000000000000000000000000000000000000000..b00fd235cbcd2c65606d357646fa41bd10716569 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/context/model/Device.java @@ -0,0 +1,83 @@ +/* +* 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 Device { + + private final String deviceId; + private final String deviceType; + private DeviceConfig deviceConfig; + private DeviceOperationalStatus deviceOperationalStatus; + private List<DeviceDriverEnum> deviceDrivers; + private List<EndPoint> endPoints; + + public Device( + String deviceId, + String deviceType, + DeviceConfig deviceConfig, + DeviceOperationalStatus deviceOperationalStatus, + List<DeviceDriverEnum> deviceDrivers, + List<EndPoint> endPoints) { + + this.deviceId = deviceId; + this.deviceType = deviceType; + this.deviceConfig = deviceConfig; + this.deviceOperationalStatus = deviceOperationalStatus; + this.deviceDrivers = deviceDrivers; + this.endPoints = endPoints; + } + + public String getDeviceId() { + return deviceId; + } + + public String getDeviceType() { + return deviceType; + } + + public DeviceConfig getDeviceConfig() { + return deviceConfig; + } + + public DeviceOperationalStatus getDeviceOperationalStatus() { + return deviceOperationalStatus; + } + + public List<DeviceDriverEnum> getDeviceDrivers() { + return deviceDrivers; + } + + public List<EndPoint> getEndPoints() { + return endPoints; + } + + @Override + public String toString() { + return String.format( + "%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<ConfigRule> configRules; + + public DeviceConfig(List<ConfigRule> configRules) { + + this.configRules = configRules; + } + + public List<ConfigRule> 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/policy/src/main/java/eu/teraflow/policy/context/model/DeviceOperationalStatus.java b/src/policy/src/main/java/eu/teraflow/policy/context/model/DeviceOperationalStatus.java new file mode 100644 index 0000000000000000000000000000000000000000..2efe9052ec96decc74bd1f5a254fd32bca88a9e8 --- /dev/null +++ b/src/policy/src/main/java/eu/teraflow/policy/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.policy.context.model; + +public enum DeviceOperationalStatus { + UNDEFINED, + DISABLED, + ENABLED +} 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<KpiSampleType> kpiSampleTypes; + private final Location endPointLocation; + + public EndPoint( + EndPointId endPointId, + String endPointType, + List<KpiSampleType> 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<KpiSampleType> 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/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/SerializerTest.java b/src/policy/src/test/java/eu/teraflow/policy/SerializerTest.java index 49aa004be4e225262d89db5fff8f30b911fce93b..e8c582013366c993992ff3fd504bb9b2c7578c17 100644 --- a/src/policy/src/test/java/eu/teraflow/policy/SerializerTest.java +++ b/src/policy/src/test/java/eu/teraflow/policy/SerializerTest.java @@ -23,6 +23,7 @@ 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; @@ -52,6 +53,11 @@ 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; @@ -3169,6 +3175,412 @@ class SerializerTest { 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<Arguments> 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<Arguments> 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"; 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<policy.Policy.PolicyRuleIdList> listPolicyRuleIds(context.ContextOuterClass.Empty request); + + io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleList> listPolicyRules(context.ContextOuterClass.Empty request); + + io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleBasic> getPolicyRule(policy.Policy.PolicyRuleId request); + + io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleId> setPolicyRule(policy.Policy.PolicyRuleBasic request); + + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> 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<policy.Policy.PolicyRuleIdList> 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<policy.Policy.PolicyRuleList> 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<policy.Policy.PolicyRuleBasic> 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<policy.Policy.PolicyRuleId> 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<context.ContextOuterClass.Empty> 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<MutinyContextPolicyServiceGrpc.MutinyContextPolicyServiceStub> { + + private final MutinyContextPolicyServiceGrpc.MutinyContextPolicyServiceStub stub; + + public ContextPolicyServiceClient(String name, io.grpc.Channel channel, BiFunction<String, MutinyContextPolicyServiceGrpc.MutinyContextPolicyServiceStub, MutinyContextPolicyServiceGrpc.MutinyContextPolicyServiceStub> stubConfigurator) { + this.stub = stubConfigurator.apply(name,MutinyContextPolicyServiceGrpc.newMutinyStub(channel)); + } + + @Override + public MutinyContextPolicyServiceGrpc.MutinyContextPolicyServiceStub getStub() { + return stub; + } + + @Override + public io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleIdList> listPolicyRuleIds(context.ContextOuterClass.Empty request) { + return stub.listPolicyRuleIds(request); + } + @Override + public io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleList> listPolicyRules(context.ContextOuterClass.Empty request) { + return stub.listPolicyRules(request); + } + @Override + public io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleBasic> getPolicyRule(policy.Policy.PolicyRuleId request) { + return stub.getPolicyRule(request); + } + @Override + public io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleId> setPolicyRule(policy.Policy.PolicyRuleBasic request) { + return stub.setPolicyRule(request); + } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> 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; + +/** + * <pre> + * created as a separate service to prevent import-loops in context and policy + * </pre> + */ +@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<context.ContextOuterClass.Empty, + policy.Policy.PolicyRuleIdList> 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<context.ContextOuterClass.Empty, + policy.Policy.PolicyRuleIdList> getListPolicyRuleIdsMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, policy.Policy.PolicyRuleIdList> getListPolicyRuleIdsMethod; + if ((getListPolicyRuleIdsMethod = ContextPolicyServiceGrpc.getListPolicyRuleIdsMethod) == null) { + synchronized (ContextPolicyServiceGrpc.class) { + if ((getListPolicyRuleIdsMethod = ContextPolicyServiceGrpc.getListPolicyRuleIdsMethod) == null) { + ContextPolicyServiceGrpc.getListPolicyRuleIdsMethod = getListPolicyRuleIdsMethod = + io.grpc.MethodDescriptor.<context.ContextOuterClass.Empty, policy.Policy.PolicyRuleIdList>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<context.ContextOuterClass.Empty, + policy.Policy.PolicyRuleList> 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<context.ContextOuterClass.Empty, + policy.Policy.PolicyRuleList> getListPolicyRulesMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, policy.Policy.PolicyRuleList> getListPolicyRulesMethod; + if ((getListPolicyRulesMethod = ContextPolicyServiceGrpc.getListPolicyRulesMethod) == null) { + synchronized (ContextPolicyServiceGrpc.class) { + if ((getListPolicyRulesMethod = ContextPolicyServiceGrpc.getListPolicyRulesMethod) == null) { + ContextPolicyServiceGrpc.getListPolicyRulesMethod = getListPolicyRulesMethod = + io.grpc.MethodDescriptor.<context.ContextOuterClass.Empty, policy.Policy.PolicyRuleList>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<policy.Policy.PolicyRuleId, + policy.Policy.PolicyRuleBasic> 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<policy.Policy.PolicyRuleId, + policy.Policy.PolicyRuleBasic> getGetPolicyRuleMethod() { + io.grpc.MethodDescriptor<policy.Policy.PolicyRuleId, policy.Policy.PolicyRuleBasic> getGetPolicyRuleMethod; + if ((getGetPolicyRuleMethod = ContextPolicyServiceGrpc.getGetPolicyRuleMethod) == null) { + synchronized (ContextPolicyServiceGrpc.class) { + if ((getGetPolicyRuleMethod = ContextPolicyServiceGrpc.getGetPolicyRuleMethod) == null) { + ContextPolicyServiceGrpc.getGetPolicyRuleMethod = getGetPolicyRuleMethod = + io.grpc.MethodDescriptor.<policy.Policy.PolicyRuleId, policy.Policy.PolicyRuleBasic>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<policy.Policy.PolicyRuleBasic, + policy.Policy.PolicyRuleId> 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<policy.Policy.PolicyRuleBasic, + policy.Policy.PolicyRuleId> getSetPolicyRuleMethod() { + io.grpc.MethodDescriptor<policy.Policy.PolicyRuleBasic, policy.Policy.PolicyRuleId> getSetPolicyRuleMethod; + if ((getSetPolicyRuleMethod = ContextPolicyServiceGrpc.getSetPolicyRuleMethod) == null) { + synchronized (ContextPolicyServiceGrpc.class) { + if ((getSetPolicyRuleMethod = ContextPolicyServiceGrpc.getSetPolicyRuleMethod) == null) { + ContextPolicyServiceGrpc.getSetPolicyRuleMethod = getSetPolicyRuleMethod = + io.grpc.MethodDescriptor.<policy.Policy.PolicyRuleBasic, policy.Policy.PolicyRuleId>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<policy.Policy.PolicyRuleId, + context.ContextOuterClass.Empty> 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<policy.Policy.PolicyRuleId, + context.ContextOuterClass.Empty> getRemovePolicyRuleMethod() { + io.grpc.MethodDescriptor<policy.Policy.PolicyRuleId, context.ContextOuterClass.Empty> getRemovePolicyRuleMethod; + if ((getRemovePolicyRuleMethod = ContextPolicyServiceGrpc.getRemovePolicyRuleMethod) == null) { + synchronized (ContextPolicyServiceGrpc.class) { + if ((getRemovePolicyRuleMethod = ContextPolicyServiceGrpc.getRemovePolicyRuleMethod) == null) { + ContextPolicyServiceGrpc.getRemovePolicyRuleMethod = getRemovePolicyRuleMethod = + io.grpc.MethodDescriptor.<policy.Policy.PolicyRuleId, context.ContextOuterClass.Empty>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<ContextPolicyServiceStub> factory = + new io.grpc.stub.AbstractStub.StubFactory<ContextPolicyServiceStub>() { + @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<ContextPolicyServiceBlockingStub> factory = + new io.grpc.stub.AbstractStub.StubFactory<ContextPolicyServiceBlockingStub>() { + @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<ContextPolicyServiceFutureStub> factory = + new io.grpc.stub.AbstractStub.StubFactory<ContextPolicyServiceFutureStub>() { + @java.lang.Override + public ContextPolicyServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { + return new ContextPolicyServiceFutureStub(channel, callOptions); + } + }; + return ContextPolicyServiceFutureStub.newStub(factory, channel); + } + + /** + * <pre> + * created as a separate service to prevent import-loops in context and policy + * </pre> + */ + public static abstract class ContextPolicyServiceImplBase implements io.grpc.BindableService { + + /** + */ + public void listPolicyRuleIds(context.ContextOuterClass.Empty request, + io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleIdList> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListPolicyRuleIdsMethod(), responseObserver); + } + + /** + */ + public void listPolicyRules(context.ContextOuterClass.Empty request, + io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleList> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListPolicyRulesMethod(), responseObserver); + } + + /** + */ + public void getPolicyRule(policy.Policy.PolicyRuleId request, + io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleBasic> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetPolicyRuleMethod(), responseObserver); + } + + /** + */ + public void setPolicyRule(policy.Policy.PolicyRuleBasic request, + io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleId> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetPolicyRuleMethod(), responseObserver); + } + + /** + */ + public void removePolicyRule(policy.Policy.PolicyRuleId request, + io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> 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(); + } + } + + /** + * <pre> + * created as a separate service to prevent import-loops in context and policy + * </pre> + */ + public static final class ContextPolicyServiceStub extends io.grpc.stub.AbstractAsyncStub<ContextPolicyServiceStub> { + 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<policy.Policy.PolicyRuleIdList> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getListPolicyRuleIdsMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void listPolicyRules(context.ContextOuterClass.Empty request, + io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleList> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getListPolicyRulesMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void getPolicyRule(policy.Policy.PolicyRuleId request, + io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleBasic> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getGetPolicyRuleMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void setPolicyRule(policy.Policy.PolicyRuleBasic request, + io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleId> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getSetPolicyRuleMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void removePolicyRule(policy.Policy.PolicyRuleId request, + io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall( + getChannel().newCall(getRemovePolicyRuleMethod(), getCallOptions()), request, responseObserver); + } + } + + /** + * <pre> + * created as a separate service to prevent import-loops in context and policy + * </pre> + */ + public static final class ContextPolicyServiceBlockingStub extends io.grpc.stub.AbstractBlockingStub<ContextPolicyServiceBlockingStub> { + 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); + } + } + + /** + * <pre> + * created as a separate service to prevent import-loops in context and policy + * </pre> + */ + public static final class ContextPolicyServiceFutureStub extends io.grpc.stub.AbstractFutureStub<ContextPolicyServiceFutureStub> { + 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<policy.Policy.PolicyRuleIdList> listPolicyRuleIds( + context.ContextOuterClass.Empty request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getListPolicyRuleIdsMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<policy.Policy.PolicyRuleList> listPolicyRules( + context.ContextOuterClass.Empty request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getListPolicyRulesMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<policy.Policy.PolicyRuleBasic> getPolicyRule( + policy.Policy.PolicyRuleId request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getGetPolicyRuleMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<policy.Policy.PolicyRuleId> setPolicyRule( + policy.Policy.PolicyRuleBasic request) { + return io.grpc.stub.ClientCalls.futureUnaryCall( + getChannel().newCall(getSetPolicyRuleMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> 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<Req, Resp> implements + io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>, + io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>, + io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>, + io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> { + 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<Resp> responseObserver) { + switch (methodId) { + case METHODID_LIST_POLICY_RULE_IDS: + serviceImpl.listPolicyRuleIds((context.ContextOuterClass.Empty) request, + (io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleIdList>) responseObserver); + break; + case METHODID_LIST_POLICY_RULES: + serviceImpl.listPolicyRules((context.ContextOuterClass.Empty) request, + (io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleList>) responseObserver); + break; + case METHODID_GET_POLICY_RULE: + serviceImpl.getPolicyRule((policy.Policy.PolicyRuleId) request, + (io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleBasic>) responseObserver); + break; + case METHODID_SET_POLICY_RULE: + serviceImpl.setPolicyRule((policy.Policy.PolicyRuleBasic) request, + (io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleId>) responseObserver); + break; + case METHODID_REMOVE_POLICY_RULE: + serviceImpl.removePolicyRule((policy.Policy.PolicyRuleId) request, + (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); + break; + default: + throw new AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver<Req> invoke( + io.grpc.stub.StreamObserver<Resp> 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); + } + + /** + * <pre> + * created as a separate service to prevent import-loops in context and policy + * </pre> + */ + public static final class MutinyContextPolicyServiceStub extends io.grpc.stub.AbstractStub<MutinyContextPolicyServiceStub> 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<policy.Policy.PolicyRuleIdList> listPolicyRuleIds(context.ContextOuterClass.Empty request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::listPolicyRuleIds); + } + + + public io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleList> listPolicyRules(context.ContextOuterClass.Empty request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::listPolicyRules); + } + + + public io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleBasic> getPolicyRule(policy.Policy.PolicyRuleId request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::getPolicyRule); + } + + + public io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleId> setPolicyRule(policy.Policy.PolicyRuleBasic request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::setPolicyRule); + } + + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> removePolicyRule(policy.Policy.PolicyRuleId request) { + return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::removePolicyRule); + } + + } + + /** + * <pre> + * created as a separate service to prevent import-loops in context and policy + * </pre> + */ + 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<policy.Policy.PolicyRuleIdList> listPolicyRuleIds(context.ContextOuterClass.Empty request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + + public io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleList> listPolicyRules(context.ContextOuterClass.Empty request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + + public io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleBasic> getPolicyRule(policy.Policy.PolicyRuleId request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + + public io.smallrye.mutiny.Uni<policy.Policy.PolicyRuleId> setPolicyRule(policy.Policy.PolicyRuleBasic request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> 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<Req, Resp> implements + io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>, + io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>, + io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>, + io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> { + 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<Resp> responseObserver) { + switch (methodId) { + case METHODID_LIST_POLICY_RULE_IDS: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((context.ContextOuterClass.Empty) request, + (io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleIdList>) responseObserver, + compression, + serviceImpl::listPolicyRuleIds); + break; + case METHODID_LIST_POLICY_RULES: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((context.ContextOuterClass.Empty) request, + (io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleList>) responseObserver, + compression, + serviceImpl::listPolicyRules); + break; + case METHODID_GET_POLICY_RULE: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((policy.Policy.PolicyRuleId) request, + (io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleBasic>) responseObserver, + compression, + serviceImpl::getPolicyRule); + break; + case METHODID_SET_POLICY_RULE: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((policy.Policy.PolicyRuleBasic) request, + (io.grpc.stub.StreamObserver<policy.Policy.PolicyRuleId>) responseObserver, + compression, + serviceImpl::setPolicyRule); + break; + case METHODID_REMOVE_POLICY_RULE: + io.quarkus.grpc.runtime.ServerCalls.oneToOne((policy.Policy.PolicyRuleId) request, + (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, + compression, + serviceImpl::removePolicyRule); + break; + default: + throw new java.lang.AssertionError(); + } + } + + @java.lang.Override + @java.lang.SuppressWarnings("unchecked") + public io.grpc.stub.StreamObserver<Req> invoke(io.grpc.stub.StreamObserver<Resp> responseObserver) { + switch (methodId) { + default: + throw new java.lang.AssertionError(); + } + } + } + +} \ No newline at end of file diff --git a/src/policy/target/kubernetes/kubernetes.yml b/src/policy/target/kubernetes/kubernetes.yml index b692aa34084ad96b958019be1c9087ef0db9ded5..06068f0f5983b4ef385ee60b8a6cb5d812cab253 100644 --- a/src/policy/target/kubernetes/kubernetes.yml +++ b/src/policy/target/kubernetes/kubernetes.yml @@ -3,20 +3,20 @@ apiVersion: v1 kind: Service metadata: annotations: - app.quarkus.io/commit-id: 342ed841a2fd5a8c0ab65464b4e178bc63981fb3 - app.quarkus.io/build-timestamp: 2022-07-22 - 09:19:09 +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 name: policyservice spec: ports: - - name: grpc - port: 6060 - targetPort: 6060 - name: http port: 8080 targetPort: 8080 + - name: grpc + port: 6060 + targetPort: 6060 selector: app.kubernetes.io/name: policyservice type: ClusterIP @@ -25,8 +25,8 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - app.quarkus.io/commit-id: 342ed841a2fd5a8c0ab65464b4e178bc63981fb3 - app.quarkus.io/build-timestamp: 2022-07-22 - 09:19:09 +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: 342ed841a2fd5a8c0ab65464b4e178bc63981fb3 - app.quarkus.io/build-timestamp: 2022-07-22 - 09:19:09 +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,12 +51,12 @@ spec: valueFrom: fieldRef: fieldPath: metadata.namespace + - name: SERVICE_SERVICE_HOST + value: serviceservice - name: MONITORING_SERVICE_HOST value: monitoringservice - name: CONTEXT_SERVICE_HOST value: contextservice - - name: SERVICE_SERVICE_HOST - value: serviceservice image: registry.gitlab.com/teraflow-h2020/controller/policy:0.1.0 imagePullPolicy: Always livenessProbe: @@ -71,12 +71,12 @@ spec: timeoutSeconds: 10 name: policyservice ports: - - containerPort: 6060 - name: grpc - protocol: TCP - containerPort: 8080 name: http protocol: TCP + - containerPort: 6060 + name: grpc + protocol: TCP readinessProbe: failureThreshold: 3 httpGet: