diff --git a/proto/context.proto b/proto/context.proto index 5b49bd28866af919332ab7188bbf66203e8b766d..3f0532d231535c2e59c798cbc9a6b1c92e1eb4bf 100644 --- a/proto/context.proto +++ b/proto/context.proto @@ -158,6 +158,11 @@ message Device { DeviceOperationalStatusEnum device_operational_status = 4; repeated DeviceDriverEnum device_drivers = 5; repeated EndPoint device_endpoints = 6; + repeated Component component = 7; // Used for inventory +} + +message Component { + repeated string comp_string = 1; } message DeviceConfig { 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 6d672fdea2c3e97f9f2a50c7efa8d77c05532357..466ebf7fefe69645cd23c72ca3b61d8e5bdd4713 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/AutomationGatewayImpl.java +++ b/src/automation/src/main/java/eu/teraflow/automation/AutomationGatewayImpl.java @@ -76,12 +76,11 @@ public class AutomationGatewayImpl implements AutomationGateway { @Override public Uni<Automation.DeviceRoleState> ztpDelete(Automation.DeviceRole request) { - return Uni.createFrom() - .item( - () -> - Automation.DeviceRoleState.newBuilder() - .setDevRoleId(request.getDevRoleId()) - .build()); + final var devRoleId = request.getDevRoleId().getDevRoleId().getUuid(); + return automationService + .deleteDevice(devRoleId) + .onItem() + .transform(device -> transformToDeviceRoleState(device, devRoleId, DeviceState.DELETED)); } @Override diff --git a/src/automation/src/main/java/eu/teraflow/automation/ContextSubscriber.java b/src/automation/src/main/java/eu/teraflow/automation/ContextSubscriber.java index 2fc3a3356456b3c1bc55137f686a7e82570a3171..76e536d9bc03c196005a91be1c82d15879a6f8e8 100644 --- a/src/automation/src/main/java/eu/teraflow/automation/ContextSubscriber.java +++ b/src/automation/src/main/java/eu/teraflow/automation/ContextSubscriber.java @@ -79,8 +79,8 @@ public class ContextSubscriber { break; case UPDATE: LOGGER.warnf( - "Received %s for device [%s]. " + - "No automation action on an already updated device", + "Received %s for device [%s]. " + + "No automation action on an already updated device", event, deviceId); break; case UNDEFINED: 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 85ed170efbf938b11303d92a6697c89836e0bf70..e17fc8304455a543ffa96b4c1239abb77be4daca 100644 --- a/src/automation/src/test/java/eu/teraflow/automation/AutomationServiceTest.java +++ b/src/automation/src/test/java/eu/teraflow/automation/AutomationServiceTest.java @@ -280,6 +280,53 @@ class AutomationServiceTest { final var uuid = serializer.serializeUuid(UUID_VALUE); final var deviceRoleId = Automation.DeviceRoleId.newBuilder().setDevRoleId(uuid).build(); final var deviceRole = Automation.DeviceRole.newBuilder().setDevRoleId(deviceRoleId).build(); + final var DEVICE_ID = "0f14d0ab-9608-7862-a9e4-5ed26688389b"; + 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 EndPointBuilder(endPointIdA, endPointTypeA, kpiSampleTypesA) + .location(locationA) + .build(); + + 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 EndPointBuilder(endPointIdB, endPointTypeB, kpiSampleTypesB) + .location(locationB) + .build(); + + final var endPoints = List.of(endPointA, endPointB); + + final var emptyDeviceConfig = new DeviceConfig(List.of()); + final var device = + new Device( + DEVICE_ID, + DEVICE_TYPE, + emptyDeviceConfig, + DeviceOperationalStatus.ENABLED, + deviceDrivers, + endPoints); + Mockito.when(contextGateway.getDevice(Mockito.any())).thenReturn(Uni.createFrom().item(device)); client .ztpDelete(deviceRole) diff --git a/src/automation/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java b/src/automation/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java index 67e1ec736f9d83cbf95b419e9e61e92e82e73b88..217672b2e8de2d7c840833a937b0fb04c38a221b 100644 --- a/src/automation/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java +++ b/src/automation/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java @@ -31,6 +31,10 @@ public final class KpiSampleTypes { * <code>KPISAMPLETYPE_PACKETS_RECEIVED = 102;</code> */ KPISAMPLETYPE_PACKETS_RECEIVED(102), + /** + * <code>KPISAMPLETYPE_PACKETS_DROPPED = 103;</code> + */ + KPISAMPLETYPE_PACKETS_DROPPED(103), /** * <code>KPISAMPLETYPE_BYTES_TRANSMITTED = 201;</code> */ @@ -39,6 +43,50 @@ public final class KpiSampleTypes { * <code>KPISAMPLETYPE_BYTES_RECEIVED = 202;</code> */ KPISAMPLETYPE_BYTES_RECEIVED(202), + /** + * <code>KPISAMPLETYPE_BYTES_DROPPED = 203;</code> + */ + KPISAMPLETYPE_BYTES_DROPPED(203), + /** + * <pre> + *. can be used by both optical and L3 without any issue + * </pre> + * + * <code>KPISAMPLETYPE_ML_CONFIDENCE = 401;</code> + */ + KPISAMPLETYPE_ML_CONFIDENCE(401), + /** + * <pre> + *. can be used by both optical and L3 without any issue + * </pre> + * + * <code>KPISAMPLETYPE_OPTICAL_SECURITY_STATUS = 501;</code> + */ + KPISAMPLETYPE_OPTICAL_SECURITY_STATUS(501), + /** + * <code>KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS = 601;</code> + */ + KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS(601), + /** + * <code>KPISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS = 602;</code> + */ + KPISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS(602), + /** + * <code>KPISAMPLETYPE_L3_UNIQUE_ATTACKERS = 603;</code> + */ + KPISAMPLETYPE_L3_UNIQUE_ATTACKERS(603), + /** + * <code>KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CLIENTS = 604;</code> + */ + KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CLIENTS(604), + /** + * <code>KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO = 605;</code> + */ + KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO(605), + /** + * <code>KPISAMPLETYPE_SERVICE_LATENCY_MS = 701;</code> + */ + KPISAMPLETYPE_SERVICE_LATENCY_MS(701), UNRECOGNIZED(-1), ; @@ -54,6 +102,10 @@ public final class KpiSampleTypes { * <code>KPISAMPLETYPE_PACKETS_RECEIVED = 102;</code> */ public static final int KPISAMPLETYPE_PACKETS_RECEIVED_VALUE = 102; + /** + * <code>KPISAMPLETYPE_PACKETS_DROPPED = 103;</code> + */ + public static final int KPISAMPLETYPE_PACKETS_DROPPED_VALUE = 103; /** * <code>KPISAMPLETYPE_BYTES_TRANSMITTED = 201;</code> */ @@ -62,6 +114,50 @@ public final class KpiSampleTypes { * <code>KPISAMPLETYPE_BYTES_RECEIVED = 202;</code> */ public static final int KPISAMPLETYPE_BYTES_RECEIVED_VALUE = 202; + /** + * <code>KPISAMPLETYPE_BYTES_DROPPED = 203;</code> + */ + public static final int KPISAMPLETYPE_BYTES_DROPPED_VALUE = 203; + /** + * <pre> + *. can be used by both optical and L3 without any issue + * </pre> + * + * <code>KPISAMPLETYPE_ML_CONFIDENCE = 401;</code> + */ + public static final int KPISAMPLETYPE_ML_CONFIDENCE_VALUE = 401; + /** + * <pre> + *. can be used by both optical and L3 without any issue + * </pre> + * + * <code>KPISAMPLETYPE_OPTICAL_SECURITY_STATUS = 501;</code> + */ + public static final int KPISAMPLETYPE_OPTICAL_SECURITY_STATUS_VALUE = 501; + /** + * <code>KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS = 601;</code> + */ + public static final int KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS_VALUE = 601; + /** + * <code>KPISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS = 602;</code> + */ + public static final int KPISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS_VALUE = 602; + /** + * <code>KPISAMPLETYPE_L3_UNIQUE_ATTACKERS = 603;</code> + */ + public static final int KPISAMPLETYPE_L3_UNIQUE_ATTACKERS_VALUE = 603; + /** + * <code>KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CLIENTS = 604;</code> + */ + public static final int KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CLIENTS_VALUE = 604; + /** + * <code>KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO = 605;</code> + */ + public static final int KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO_VALUE = 605; + /** + * <code>KPISAMPLETYPE_SERVICE_LATENCY_MS = 701;</code> + */ + public static final int KPISAMPLETYPE_SERVICE_LATENCY_MS_VALUE = 701; public final int getNumber() { @@ -91,8 +187,18 @@ public final class KpiSampleTypes { case 0: return KPISAMPLETYPE_UNKNOWN; case 101: return KPISAMPLETYPE_PACKETS_TRANSMITTED; case 102: return KPISAMPLETYPE_PACKETS_RECEIVED; + case 103: return KPISAMPLETYPE_PACKETS_DROPPED; case 201: return KPISAMPLETYPE_BYTES_TRANSMITTED; case 202: return KPISAMPLETYPE_BYTES_RECEIVED; + case 203: return KPISAMPLETYPE_BYTES_DROPPED; + case 401: return KPISAMPLETYPE_ML_CONFIDENCE; + case 501: return KPISAMPLETYPE_OPTICAL_SECURITY_STATUS; + case 601: return KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS; + case 602: return KPISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS; + case 603: return KPISAMPLETYPE_L3_UNIQUE_ATTACKERS; + case 604: return KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CLIENTS; + case 605: return KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO; + case 701: return KPISAMPLETYPE_SERVICE_LATENCY_MS; default: return null; } } @@ -159,12 +265,22 @@ public final class KpiSampleTypes { static { java.lang.String[] descriptorData = { "\n\026kpi_sample_types.proto\022\020kpi_sample_typ" + - "es*\276\001\n\rKpiSampleType\022\031\n\025KPISAMPLETYPE_UN" + + "es*\327\004\n\rKpiSampleType\022\031\n\025KPISAMPLETYPE_UN" + "KNOWN\020\000\022%\n!KPISAMPLETYPE_PACKETS_TRANSMI" + "TTED\020e\022\"\n\036KPISAMPLETYPE_PACKETS_RECEIVED" + - "\020f\022$\n\037KPISAMPLETYPE_BYTES_TRANSMITTED\020\311\001" + - "\022!\n\034KPISAMPLETYPE_BYTES_RECEIVED\020\312\001b\006pro" + - "to3" + "\020f\022!\n\035KPISAMPLETYPE_PACKETS_DROPPED\020g\022$\n" + + "\037KPISAMPLETYPE_BYTES_TRANSMITTED\020\311\001\022!\n\034K" + + "PISAMPLETYPE_BYTES_RECEIVED\020\312\001\022 \n\033KPISAM" + + "PLETYPE_BYTES_DROPPED\020\313\001\022 \n\033KPISAMPLETYP" + + "E_ML_CONFIDENCE\020\221\003\022*\n%KPISAMPLETYPE_OPTI" + + "CAL_SECURITY_STATUS\020\365\003\022)\n$KPISAMPLETYPE_" + + "L3_UNIQUE_ATTACK_CONNS\020\331\004\022*\n%KPISAMPLETY" + + "PE_L3_TOTAL_DROPPED_PACKTS\020\332\004\022&\n!KPISAMP" + + "LETYPE_L3_UNIQUE_ATTACKERS\020\333\004\0220\n+KPISAMP" + + "LETYPE_L3_UNIQUE_COMPROMISED_CLIENTS\020\334\004\022" + + ",\n\'KPISAMPLETYPE_L3_SECURITY_STATUS_CRYP" + + "TO\020\335\004\022%\n KPISAMPLETYPE_SERVICE_LATENCY_M" + + "S\020\275\005b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/src/automation/target/generated-sources/grpc/monitoring/Monitoring.java b/src/automation/target/generated-sources/grpc/monitoring/Monitoring.java index 9d05f3da8a831e74922e65473206539680c8d78b..38f026eb1ac730e8f825e460916dc57469f0d312 100644 --- a/src/automation/target/generated-sources/grpc/monitoring/Monitoring.java +++ b/src/automation/target/generated-sources/grpc/monitoring/Monitoring.java @@ -139,6 +139,21 @@ public final class Monitoring { * <code>.context.SliceId slice_id = 8;</code> */ context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder(); + + /** + * <code>.context.ConnectionId connection_id = 9;</code> + * @return Whether the connectionId field is set. + */ + boolean hasConnectionId(); + /** + * <code>.context.ConnectionId connection_id = 9;</code> + * @return The connectionId. + */ + context.ContextOuterClass.ConnectionId getConnectionId(); + /** + * <code>.context.ConnectionId connection_id = 9;</code> + */ + context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder(); } /** * Protobuf type {@code monitoring.KpiDescriptor} @@ -275,6 +290,19 @@ public final class Monitoring { break; } + case 74: { + context.ContextOuterClass.ConnectionId.Builder subBuilder = null; + if (connectionId_ != null) { + subBuilder = connectionId_.toBuilder(); + } + connectionId_ = input.readMessage(context.ContextOuterClass.ConnectionId.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(connectionId_); + connectionId_ = subBuilder.buildPartial(); + } + + break; + } default: { if (!parseUnknownField( input, unknownFields, extensionRegistry, tag)) { @@ -537,6 +565,32 @@ public final class Monitoring { return getSliceId(); } + public static final int CONNECTION_ID_FIELD_NUMBER = 9; + private context.ContextOuterClass.ConnectionId connectionId_; + /** + * <code>.context.ConnectionId connection_id = 9;</code> + * @return Whether the connectionId field is set. + */ + @java.lang.Override + public boolean hasConnectionId() { + return connectionId_ != null; + } + /** + * <code>.context.ConnectionId connection_id = 9;</code> + * @return The connectionId. + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionId getConnectionId() { + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } + /** + * <code>.context.ConnectionId connection_id = 9;</code> + */ + @java.lang.Override + public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder() { + return getConnectionId(); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -575,6 +629,9 @@ public final class Monitoring { if (sliceId_ != null) { output.writeMessage(8, getSliceId()); } + if (connectionId_ != null) { + output.writeMessage(9, getConnectionId()); + } unknownFields.writeTo(output); } @@ -615,6 +672,10 @@ public final class Monitoring { size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, getSliceId()); } + if (connectionId_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, getConnectionId()); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -660,6 +721,11 @@ public final class Monitoring { if (!getSliceId() .equals(other.getSliceId())) return false; } + if (hasConnectionId() != other.hasConnectionId()) return false; + if (hasConnectionId()) { + if (!getConnectionId() + .equals(other.getConnectionId())) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -699,6 +765,10 @@ public final class Monitoring { hash = (37 * hash) + SLICE_ID_FIELD_NUMBER; hash = (53 * hash) + getSliceId().hashCode(); } + if (hasConnectionId()) { + hash = (37 * hash) + CONNECTION_ID_FIELD_NUMBER; + hash = (53 * hash) + getConnectionId().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -873,6 +943,12 @@ public final class Monitoring { sliceId_ = null; sliceIdBuilder_ = null; } + if (connectionIdBuilder_ == null) { + connectionId_ = null; + } else { + connectionId_ = null; + connectionIdBuilder_ = null; + } return this; } @@ -936,6 +1012,11 @@ public final class Monitoring { } else { result.sliceId_ = sliceIdBuilder_.build(); } + if (connectionIdBuilder_ == null) { + result.connectionId_ = connectionId_; + } else { + result.connectionId_ = connectionIdBuilder_.build(); + } onBuilt(); return result; } @@ -1032,6 +1113,9 @@ public final class Monitoring { if (other.hasSliceId()) { mergeSliceId(other.getSliceId()); } + if (other.hasConnectionId()) { + mergeConnectionId(other.getConnectionId()); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -2026,6 +2110,125 @@ public final class Monitoring { } return sliceIdBuilder_; } + + private context.ContextOuterClass.ConnectionId connectionId_; + private com.google.protobuf.SingleFieldBuilderV3< + context.ContextOuterClass.ConnectionId, context.ContextOuterClass.ConnectionId.Builder, context.ContextOuterClass.ConnectionIdOrBuilder> connectionIdBuilder_; + /** + * <code>.context.ConnectionId connection_id = 9;</code> + * @return Whether the connectionId field is set. + */ + public boolean hasConnectionId() { + return connectionIdBuilder_ != null || connectionId_ != null; + } + /** + * <code>.context.ConnectionId connection_id = 9;</code> + * @return The connectionId. + */ + public context.ContextOuterClass.ConnectionId getConnectionId() { + if (connectionIdBuilder_ == null) { + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } else { + return connectionIdBuilder_.getMessage(); + } + } + /** + * <code>.context.ConnectionId connection_id = 9;</code> + */ + public Builder setConnectionId(context.ContextOuterClass.ConnectionId value) { + if (connectionIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + connectionId_ = value; + onChanged(); + } else { + connectionIdBuilder_.setMessage(value); + } + + return this; + } + /** + * <code>.context.ConnectionId connection_id = 9;</code> + */ + public Builder setConnectionId( + context.ContextOuterClass.ConnectionId.Builder builderForValue) { + if (connectionIdBuilder_ == null) { + connectionId_ = builderForValue.build(); + onChanged(); + } else { + connectionIdBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * <code>.context.ConnectionId connection_id = 9;</code> + */ + public Builder mergeConnectionId(context.ContextOuterClass.ConnectionId value) { + if (connectionIdBuilder_ == null) { + if (connectionId_ != null) { + connectionId_ = + context.ContextOuterClass.ConnectionId.newBuilder(connectionId_).mergeFrom(value).buildPartial(); + } else { + connectionId_ = value; + } + onChanged(); + } else { + connectionIdBuilder_.mergeFrom(value); + } + + return this; + } + /** + * <code>.context.ConnectionId connection_id = 9;</code> + */ + public Builder clearConnectionId() { + if (connectionIdBuilder_ == null) { + connectionId_ = null; + onChanged(); + } else { + connectionId_ = null; + connectionIdBuilder_ = null; + } + + return this; + } + /** + * <code>.context.ConnectionId connection_id = 9;</code> + */ + public context.ContextOuterClass.ConnectionId.Builder getConnectionIdBuilder() { + + onChanged(); + return getConnectionIdFieldBuilder().getBuilder(); + } + /** + * <code>.context.ConnectionId connection_id = 9;</code> + */ + public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder() { + if (connectionIdBuilder_ != null) { + return connectionIdBuilder_.getMessageOrBuilder(); + } else { + return connectionId_ == null ? + context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; + } + } + /** + * <code>.context.ConnectionId connection_id = 9;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3< + context.ContextOuterClass.ConnectionId, context.ContextOuterClass.ConnectionId.Builder, context.ContextOuterClass.ConnectionIdOrBuilder> + getConnectionIdFieldBuilder() { + if (connectionIdBuilder_ == null) { + connectionIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + context.ContextOuterClass.ConnectionId, context.ContextOuterClass.ConnectionId.Builder, context.ContextOuterClass.ConnectionIdOrBuilder>( + getConnectionId(), + getParentForChildren(), + isClean()); + connectionId_ = null; + } + return connectionIdBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -2869,27 +3072,27 @@ public final class Monitoring { com.google.protobuf.MessageOrBuilder { /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ java.util.List<monitoring.Monitoring.KpiId> - getKpiIdList(); + getKpiIdsList(); /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - monitoring.Monitoring.KpiId getKpiId(int index); + monitoring.Monitoring.KpiId getKpiIds(int index); /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - int getKpiIdCount(); + int getKpiIdsCount(); /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> - getKpiIdOrBuilderList(); + getKpiIdsOrBuilderList(); /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder( + monitoring.Monitoring.KpiIdOrBuilder getKpiIdsOrBuilder( int index); /** @@ -2898,18 +3101,12 @@ public final class Monitoring { */ float getMonitoringWindowS(); - /** - * <code>float sampling_rate_s = 3;</code> - * @return The samplingRateS. - */ - float getSamplingRateS(); - /** * <pre> * used when you want something like "get the last N many samples * </pre> * - * <code>uint32 last_n_samples = 4;</code> + * <code>uint32 last_n_samples = 3;</code> * @return The lastNSamples. */ int getLastNSamples(); @@ -2919,7 +3116,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> * @return Whether the startTimestamp field is set. */ boolean hasStartTimestamp(); @@ -2928,7 +3125,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> * @return The startTimestamp. */ context.ContextOuterClass.Timestamp getStartTimestamp(); @@ -2937,7 +3134,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> */ context.ContextOuterClass.TimestampOrBuilder getStartTimestampOrBuilder(); @@ -2946,7 +3143,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> * @return Whether the endTimestamp field is set. */ boolean hasEndTimestamp(); @@ -2955,7 +3152,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> * @return The endTimestamp. */ context.ContextOuterClass.Timestamp getEndTimestamp(); @@ -2964,7 +3161,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> */ context.ContextOuterClass.TimestampOrBuilder getEndTimestampOrBuilder(); } @@ -2981,7 +3178,7 @@ public final class Monitoring { super(builder); } private KpiQuery() { - kpiId_ = java.util.Collections.emptyList(); + kpiIds_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -3017,10 +3214,10 @@ public final class Monitoring { break; case 10: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { - kpiId_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>(); + kpiIds_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>(); mutable_bitField0_ |= 0x00000001; } - kpiId_.add( + kpiIds_.add( input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry)); break; } @@ -3029,17 +3226,12 @@ public final class Monitoring { monitoringWindowS_ = input.readFloat(); break; } - case 29: { - - samplingRateS_ = input.readFloat(); - break; - } - case 32: { + case 24: { lastNSamples_ = input.readUInt32(); break; } - case 42: { + case 34: { context.ContextOuterClass.Timestamp.Builder subBuilder = null; if (startTimestamp_ != null) { subBuilder = startTimestamp_.toBuilder(); @@ -3052,7 +3244,7 @@ public final class Monitoring { break; } - case 50: { + case 42: { context.ContextOuterClass.Timestamp.Builder subBuilder = null; if (endTimestamp_ != null) { subBuilder = endTimestamp_.toBuilder(); @@ -3081,7 +3273,7 @@ public final class Monitoring { e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000001) != 0)) { - kpiId_ = java.util.Collections.unmodifiableList(kpiId_); + kpiIds_ = java.util.Collections.unmodifiableList(kpiIds_); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); @@ -3100,44 +3292,44 @@ public final class Monitoring { monitoring.Monitoring.KpiQuery.class, monitoring.Monitoring.KpiQuery.Builder.class); } - public static final int KPI_ID_FIELD_NUMBER = 1; - private java.util.List<monitoring.Monitoring.KpiId> kpiId_; + public static final int KPI_IDS_FIELD_NUMBER = 1; + private java.util.List<monitoring.Monitoring.KpiId> kpiIds_; /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ @java.lang.Override - public java.util.List<monitoring.Monitoring.KpiId> getKpiIdList() { - return kpiId_; + public java.util.List<monitoring.Monitoring.KpiId> getKpiIdsList() { + return kpiIds_; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ @java.lang.Override public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> - getKpiIdOrBuilderList() { - return kpiId_; + getKpiIdsOrBuilderList() { + return kpiIds_; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ @java.lang.Override - public int getKpiIdCount() { - return kpiId_.size(); + public int getKpiIdsCount() { + return kpiIds_.size(); } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ @java.lang.Override - public monitoring.Monitoring.KpiId getKpiId(int index) { - return kpiId_.get(index); + public monitoring.Monitoring.KpiId getKpiIds(int index) { + return kpiIds_.get(index); } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ @java.lang.Override - public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder( + public monitoring.Monitoring.KpiIdOrBuilder getKpiIdsOrBuilder( int index) { - return kpiId_.get(index); + return kpiIds_.get(index); } public static final int MONITORING_WINDOW_S_FIELD_NUMBER = 2; @@ -3151,25 +3343,14 @@ public final class Monitoring { return monitoringWindowS_; } - public static final int SAMPLING_RATE_S_FIELD_NUMBER = 3; - private float samplingRateS_; - /** - * <code>float sampling_rate_s = 3;</code> - * @return The samplingRateS. - */ - @java.lang.Override - public float getSamplingRateS() { - return samplingRateS_; - } - - public static final int LAST_N_SAMPLES_FIELD_NUMBER = 4; + public static final int LAST_N_SAMPLES_FIELD_NUMBER = 3; private int lastNSamples_; /** * <pre> * used when you want something like "get the last N many samples * </pre> * - * <code>uint32 last_n_samples = 4;</code> + * <code>uint32 last_n_samples = 3;</code> * @return The lastNSamples. */ @java.lang.Override @@ -3177,14 +3358,14 @@ public final class Monitoring { return lastNSamples_; } - public static final int START_TIMESTAMP_FIELD_NUMBER = 5; + public static final int START_TIMESTAMP_FIELD_NUMBER = 4; private context.ContextOuterClass.Timestamp startTimestamp_; /** * <pre> * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> * @return Whether the startTimestamp field is set. */ @java.lang.Override @@ -3196,7 +3377,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> * @return The startTimestamp. */ @java.lang.Override @@ -3208,21 +3389,21 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> */ @java.lang.Override public context.ContextOuterClass.TimestampOrBuilder getStartTimestampOrBuilder() { return getStartTimestamp(); } - public static final int END_TIMESTAMP_FIELD_NUMBER = 6; + public static final int END_TIMESTAMP_FIELD_NUMBER = 5; private context.ContextOuterClass.Timestamp endTimestamp_; /** * <pre> * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> * @return Whether the endTimestamp field is set. */ @java.lang.Override @@ -3234,7 +3415,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> * @return The endTimestamp. */ @java.lang.Override @@ -3246,7 +3427,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> */ @java.lang.Override public context.ContextOuterClass.TimestampOrBuilder getEndTimestampOrBuilder() { @@ -3267,23 +3448,20 @@ public final class Monitoring { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - for (int i = 0; i < kpiId_.size(); i++) { - output.writeMessage(1, kpiId_.get(i)); + for (int i = 0; i < kpiIds_.size(); i++) { + output.writeMessage(1, kpiIds_.get(i)); } if (monitoringWindowS_ != 0F) { output.writeFloat(2, monitoringWindowS_); } - if (samplingRateS_ != 0F) { - output.writeFloat(3, samplingRateS_); - } if (lastNSamples_ != 0) { - output.writeUInt32(4, lastNSamples_); + output.writeUInt32(3, lastNSamples_); } if (startTimestamp_ != null) { - output.writeMessage(5, getStartTimestamp()); + output.writeMessage(4, getStartTimestamp()); } if (endTimestamp_ != null) { - output.writeMessage(6, getEndTimestamp()); + output.writeMessage(5, getEndTimestamp()); } unknownFields.writeTo(output); } @@ -3294,29 +3472,25 @@ public final class Monitoring { if (size != -1) return size; size = 0; - for (int i = 0; i < kpiId_.size(); i++) { + for (int i = 0; i < kpiIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, kpiId_.get(i)); + .computeMessageSize(1, kpiIds_.get(i)); } if (monitoringWindowS_ != 0F) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(2, monitoringWindowS_); } - if (samplingRateS_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(3, samplingRateS_); - } if (lastNSamples_ != 0) { size += com.google.protobuf.CodedOutputStream - .computeUInt32Size(4, lastNSamples_); + .computeUInt32Size(3, lastNSamples_); } if (startTimestamp_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, getStartTimestamp()); + .computeMessageSize(4, getStartTimestamp()); } if (endTimestamp_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, getEndTimestamp()); + .computeMessageSize(5, getEndTimestamp()); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -3333,14 +3507,11 @@ public final class Monitoring { } monitoring.Monitoring.KpiQuery other = (monitoring.Monitoring.KpiQuery) obj; - if (!getKpiIdList() - .equals(other.getKpiIdList())) return false; + if (!getKpiIdsList() + .equals(other.getKpiIdsList())) return false; if (java.lang.Float.floatToIntBits(getMonitoringWindowS()) != java.lang.Float.floatToIntBits( other.getMonitoringWindowS())) return false; - if (java.lang.Float.floatToIntBits(getSamplingRateS()) - != java.lang.Float.floatToIntBits( - other.getSamplingRateS())) return false; if (getLastNSamples() != other.getLastNSamples()) return false; if (hasStartTimestamp() != other.hasStartTimestamp()) return false; @@ -3364,16 +3535,13 @@ public final class Monitoring { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (getKpiIdCount() > 0) { - hash = (37 * hash) + KPI_ID_FIELD_NUMBER; - hash = (53 * hash) + getKpiIdList().hashCode(); + if (getKpiIdsCount() > 0) { + hash = (37 * hash) + KPI_IDS_FIELD_NUMBER; + hash = (53 * hash) + getKpiIdsList().hashCode(); } hash = (37 * hash) + MONITORING_WINDOW_S_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( getMonitoringWindowS()); - hash = (37 * hash) + SAMPLING_RATE_S_FIELD_NUMBER; - hash = (53 * hash) + java.lang.Float.floatToIntBits( - getSamplingRateS()); hash = (37 * hash) + LAST_N_SAMPLES_FIELD_NUMBER; hash = (53 * hash) + getLastNSamples(); if (hasStartTimestamp()) { @@ -3512,22 +3680,20 @@ public final class Monitoring { private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { - getKpiIdFieldBuilder(); + getKpiIdsFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); - if (kpiIdBuilder_ == null) { - kpiId_ = java.util.Collections.emptyList(); + if (kpiIdsBuilder_ == null) { + kpiIds_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); } else { - kpiIdBuilder_.clear(); + kpiIdsBuilder_.clear(); } monitoringWindowS_ = 0F; - samplingRateS_ = 0F; - lastNSamples_ = 0; if (startTimestampBuilder_ == null) { @@ -3569,17 +3735,16 @@ public final class Monitoring { public monitoring.Monitoring.KpiQuery buildPartial() { monitoring.Monitoring.KpiQuery result = new monitoring.Monitoring.KpiQuery(this); int from_bitField0_ = bitField0_; - if (kpiIdBuilder_ == null) { + if (kpiIdsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { - kpiId_ = java.util.Collections.unmodifiableList(kpiId_); + kpiIds_ = java.util.Collections.unmodifiableList(kpiIds_); bitField0_ = (bitField0_ & ~0x00000001); } - result.kpiId_ = kpiId_; + result.kpiIds_ = kpiIds_; } else { - result.kpiId_ = kpiIdBuilder_.build(); + result.kpiIds_ = kpiIdsBuilder_.build(); } result.monitoringWindowS_ = monitoringWindowS_; - result.samplingRateS_ = samplingRateS_; result.lastNSamples_ = lastNSamples_; if (startTimestampBuilder_ == null) { result.startTimestamp_ = startTimestamp_; @@ -3639,38 +3804,35 @@ public final class Monitoring { public Builder mergeFrom(monitoring.Monitoring.KpiQuery other) { if (other == monitoring.Monitoring.KpiQuery.getDefaultInstance()) return this; - if (kpiIdBuilder_ == null) { - if (!other.kpiId_.isEmpty()) { - if (kpiId_.isEmpty()) { - kpiId_ = other.kpiId_; + if (kpiIdsBuilder_ == null) { + if (!other.kpiIds_.isEmpty()) { + if (kpiIds_.isEmpty()) { + kpiIds_ = other.kpiIds_; bitField0_ = (bitField0_ & ~0x00000001); } else { - ensureKpiIdIsMutable(); - kpiId_.addAll(other.kpiId_); + ensureKpiIdsIsMutable(); + kpiIds_.addAll(other.kpiIds_); } onChanged(); } } else { - if (!other.kpiId_.isEmpty()) { - if (kpiIdBuilder_.isEmpty()) { - kpiIdBuilder_.dispose(); - kpiIdBuilder_ = null; - kpiId_ = other.kpiId_; + if (!other.kpiIds_.isEmpty()) { + if (kpiIdsBuilder_.isEmpty()) { + kpiIdsBuilder_.dispose(); + kpiIdsBuilder_ = null; + kpiIds_ = other.kpiIds_; bitField0_ = (bitField0_ & ~0x00000001); - kpiIdBuilder_ = + kpiIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getKpiIdFieldBuilder() : null; + getKpiIdsFieldBuilder() : null; } else { - kpiIdBuilder_.addAllMessages(other.kpiId_); + kpiIdsBuilder_.addAllMessages(other.kpiIds_); } } } if (other.getMonitoringWindowS() != 0F) { setMonitoringWindowS(other.getMonitoringWindowS()); } - if (other.getSamplingRateS() != 0F) { - setSamplingRateS(other.getSamplingRateS()); - } if (other.getLastNSamples() != 0) { setLastNSamples(other.getLastNSamples()); } @@ -3710,244 +3872,244 @@ public final class Monitoring { } private int bitField0_; - private java.util.List<monitoring.Monitoring.KpiId> kpiId_ = + private java.util.List<monitoring.Monitoring.KpiId> kpiIds_ = java.util.Collections.emptyList(); - private void ensureKpiIdIsMutable() { + private void ensureKpiIdsIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { - kpiId_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>(kpiId_); + kpiIds_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>(kpiIds_); bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< - monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_; + monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdsBuilder_; /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public java.util.List<monitoring.Monitoring.KpiId> getKpiIdList() { - if (kpiIdBuilder_ == null) { - return java.util.Collections.unmodifiableList(kpiId_); + public java.util.List<monitoring.Monitoring.KpiId> getKpiIdsList() { + if (kpiIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(kpiIds_); } else { - return kpiIdBuilder_.getMessageList(); + return kpiIdsBuilder_.getMessageList(); } } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public int getKpiIdCount() { - if (kpiIdBuilder_ == null) { - return kpiId_.size(); + public int getKpiIdsCount() { + if (kpiIdsBuilder_ == null) { + return kpiIds_.size(); } else { - return kpiIdBuilder_.getCount(); + return kpiIdsBuilder_.getCount(); } } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public monitoring.Monitoring.KpiId getKpiId(int index) { - if (kpiIdBuilder_ == null) { - return kpiId_.get(index); + public monitoring.Monitoring.KpiId getKpiIds(int index) { + if (kpiIdsBuilder_ == null) { + return kpiIds_.get(index); } else { - return kpiIdBuilder_.getMessage(index); + return kpiIdsBuilder_.getMessage(index); } } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public Builder setKpiId( + public Builder setKpiIds( int index, monitoring.Monitoring.KpiId value) { - if (kpiIdBuilder_ == null) { + if (kpiIdsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureKpiIdIsMutable(); - kpiId_.set(index, value); + ensureKpiIdsIsMutable(); + kpiIds_.set(index, value); onChanged(); } else { - kpiIdBuilder_.setMessage(index, value); + kpiIdsBuilder_.setMessage(index, value); } return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public Builder setKpiId( + public Builder setKpiIds( int index, monitoring.Monitoring.KpiId.Builder builderForValue) { - if (kpiIdBuilder_ == null) { - ensureKpiIdIsMutable(); - kpiId_.set(index, builderForValue.build()); + if (kpiIdsBuilder_ == null) { + ensureKpiIdsIsMutable(); + kpiIds_.set(index, builderForValue.build()); onChanged(); } else { - kpiIdBuilder_.setMessage(index, builderForValue.build()); + kpiIdsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public Builder addKpiId(monitoring.Monitoring.KpiId value) { - if (kpiIdBuilder_ == null) { + public Builder addKpiIds(monitoring.Monitoring.KpiId value) { + if (kpiIdsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureKpiIdIsMutable(); - kpiId_.add(value); + ensureKpiIdsIsMutable(); + kpiIds_.add(value); onChanged(); } else { - kpiIdBuilder_.addMessage(value); + kpiIdsBuilder_.addMessage(value); } return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public Builder addKpiId( + public Builder addKpiIds( int index, monitoring.Monitoring.KpiId value) { - if (kpiIdBuilder_ == null) { + if (kpiIdsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureKpiIdIsMutable(); - kpiId_.add(index, value); + ensureKpiIdsIsMutable(); + kpiIds_.add(index, value); onChanged(); } else { - kpiIdBuilder_.addMessage(index, value); + kpiIdsBuilder_.addMessage(index, value); } return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public Builder addKpiId( + public Builder addKpiIds( monitoring.Monitoring.KpiId.Builder builderForValue) { - if (kpiIdBuilder_ == null) { - ensureKpiIdIsMutable(); - kpiId_.add(builderForValue.build()); + if (kpiIdsBuilder_ == null) { + ensureKpiIdsIsMutable(); + kpiIds_.add(builderForValue.build()); onChanged(); } else { - kpiIdBuilder_.addMessage(builderForValue.build()); + kpiIdsBuilder_.addMessage(builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public Builder addKpiId( + public Builder addKpiIds( int index, monitoring.Monitoring.KpiId.Builder builderForValue) { - if (kpiIdBuilder_ == null) { - ensureKpiIdIsMutable(); - kpiId_.add(index, builderForValue.build()); + if (kpiIdsBuilder_ == null) { + ensureKpiIdsIsMutable(); + kpiIds_.add(index, builderForValue.build()); onChanged(); } else { - kpiIdBuilder_.addMessage(index, builderForValue.build()); + kpiIdsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public Builder addAllKpiId( + public Builder addAllKpiIds( java.lang.Iterable<? extends monitoring.Monitoring.KpiId> values) { - if (kpiIdBuilder_ == null) { - ensureKpiIdIsMutable(); + if (kpiIdsBuilder_ == null) { + ensureKpiIdsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, kpiId_); + values, kpiIds_); onChanged(); } else { - kpiIdBuilder_.addAllMessages(values); + kpiIdsBuilder_.addAllMessages(values); } return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public Builder clearKpiId() { - if (kpiIdBuilder_ == null) { - kpiId_ = java.util.Collections.emptyList(); + public Builder clearKpiIds() { + if (kpiIdsBuilder_ == null) { + kpiIds_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { - kpiIdBuilder_.clear(); + kpiIdsBuilder_.clear(); } return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public Builder removeKpiId(int index) { - if (kpiIdBuilder_ == null) { - ensureKpiIdIsMutable(); - kpiId_.remove(index); + public Builder removeKpiIds(int index) { + if (kpiIdsBuilder_ == null) { + ensureKpiIdsIsMutable(); + kpiIds_.remove(index); onChanged(); } else { - kpiIdBuilder_.remove(index); + kpiIdsBuilder_.remove(index); } return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder( + public monitoring.Monitoring.KpiId.Builder getKpiIdsBuilder( int index) { - return getKpiIdFieldBuilder().getBuilder(index); + return getKpiIdsFieldBuilder().getBuilder(index); } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder( + public monitoring.Monitoring.KpiIdOrBuilder getKpiIdsOrBuilder( int index) { - if (kpiIdBuilder_ == null) { - return kpiId_.get(index); } else { - return kpiIdBuilder_.getMessageOrBuilder(index); + if (kpiIdsBuilder_ == null) { + return kpiIds_.get(index); } else { + return kpiIdsBuilder_.getMessageOrBuilder(index); } } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> - getKpiIdOrBuilderList() { - if (kpiIdBuilder_ != null) { - return kpiIdBuilder_.getMessageOrBuilderList(); + getKpiIdsOrBuilderList() { + if (kpiIdsBuilder_ != null) { + return kpiIdsBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(kpiId_); + return java.util.Collections.unmodifiableList(kpiIds_); } } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public monitoring.Monitoring.KpiId.Builder addKpiIdBuilder() { - return getKpiIdFieldBuilder().addBuilder( + public monitoring.Monitoring.KpiId.Builder addKpiIdsBuilder() { + return getKpiIdsFieldBuilder().addBuilder( monitoring.Monitoring.KpiId.getDefaultInstance()); } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ - public monitoring.Monitoring.KpiId.Builder addKpiIdBuilder( + public monitoring.Monitoring.KpiId.Builder addKpiIdsBuilder( int index) { - return getKpiIdFieldBuilder().addBuilder( + return getKpiIdsFieldBuilder().addBuilder( index, monitoring.Monitoring.KpiId.getDefaultInstance()); } /** - * <code>repeated .monitoring.KpiId kpi_id = 1;</code> + * <code>repeated .monitoring.KpiId kpi_ids = 1;</code> */ public java.util.List<monitoring.Monitoring.KpiId.Builder> - getKpiIdBuilderList() { - return getKpiIdFieldBuilder().getBuilderList(); + getKpiIdsBuilderList() { + return getKpiIdsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> - getKpiIdFieldBuilder() { - if (kpiIdBuilder_ == null) { - kpiIdBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + getKpiIdsFieldBuilder() { + if (kpiIdsBuilder_ == null) { + kpiIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>( - kpiId_, + kpiIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); - kpiId_ = null; + kpiIds_ = null; } - return kpiIdBuilder_; + return kpiIdsBuilder_; } private float monitoringWindowS_ ; @@ -3981,44 +4143,13 @@ public final class Monitoring { return this; } - private float samplingRateS_ ; - /** - * <code>float sampling_rate_s = 3;</code> - * @return The samplingRateS. - */ - @java.lang.Override - public float getSamplingRateS() { - return samplingRateS_; - } - /** - * <code>float sampling_rate_s = 3;</code> - * @param value The samplingRateS to set. - * @return This builder for chaining. - */ - public Builder setSamplingRateS(float value) { - - samplingRateS_ = value; - onChanged(); - return this; - } - /** - * <code>float sampling_rate_s = 3;</code> - * @return This builder for chaining. - */ - public Builder clearSamplingRateS() { - - samplingRateS_ = 0F; - onChanged(); - return this; - } - private int lastNSamples_ ; /** * <pre> * used when you want something like "get the last N many samples * </pre> * - * <code>uint32 last_n_samples = 4;</code> + * <code>uint32 last_n_samples = 3;</code> * @return The lastNSamples. */ @java.lang.Override @@ -4030,7 +4161,7 @@ public final class Monitoring { * used when you want something like "get the last N many samples * </pre> * - * <code>uint32 last_n_samples = 4;</code> + * <code>uint32 last_n_samples = 3;</code> * @param value The lastNSamples to set. * @return This builder for chaining. */ @@ -4045,7 +4176,7 @@ public final class Monitoring { * used when you want something like "get the last N many samples * </pre> * - * <code>uint32 last_n_samples = 4;</code> + * <code>uint32 last_n_samples = 3;</code> * @return This builder for chaining. */ public Builder clearLastNSamples() { @@ -4063,7 +4194,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> * @return Whether the startTimestamp field is set. */ public boolean hasStartTimestamp() { @@ -4074,7 +4205,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> * @return The startTimestamp. */ public context.ContextOuterClass.Timestamp getStartTimestamp() { @@ -4089,7 +4220,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> */ public Builder setStartTimestamp(context.ContextOuterClass.Timestamp value) { if (startTimestampBuilder_ == null) { @@ -4109,7 +4240,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> */ public Builder setStartTimestamp( context.ContextOuterClass.Timestamp.Builder builderForValue) { @@ -4127,7 +4258,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> */ public Builder mergeStartTimestamp(context.ContextOuterClass.Timestamp value) { if (startTimestampBuilder_ == null) { @@ -4149,7 +4280,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> */ public Builder clearStartTimestamp() { if (startTimestampBuilder_ == null) { @@ -4167,7 +4298,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> */ public context.ContextOuterClass.Timestamp.Builder getStartTimestampBuilder() { @@ -4179,7 +4310,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> */ public context.ContextOuterClass.TimestampOrBuilder getStartTimestampOrBuilder() { if (startTimestampBuilder_ != null) { @@ -4194,7 +4325,7 @@ public final class Monitoring { * used when you want something like "get the samples since X date/time" * </pre> * - * <code>.context.Timestamp start_timestamp = 5;</code> + * <code>.context.Timestamp start_timestamp = 4;</code> */ private com.google.protobuf.SingleFieldBuilderV3< context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> @@ -4218,7 +4349,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> * @return Whether the endTimestamp field is set. */ public boolean hasEndTimestamp() { @@ -4229,7 +4360,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> * @return The endTimestamp. */ public context.ContextOuterClass.Timestamp getEndTimestamp() { @@ -4244,7 +4375,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> */ public Builder setEndTimestamp(context.ContextOuterClass.Timestamp value) { if (endTimestampBuilder_ == null) { @@ -4264,7 +4395,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> */ public Builder setEndTimestamp( context.ContextOuterClass.Timestamp.Builder builderForValue) { @@ -4282,7 +4413,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> */ public Builder mergeEndTimestamp(context.ContextOuterClass.Timestamp value) { if (endTimestampBuilder_ == null) { @@ -4304,7 +4435,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> */ public Builder clearEndTimestamp() { if (endTimestampBuilder_ == null) { @@ -4322,7 +4453,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> */ public context.ContextOuterClass.Timestamp.Builder getEndTimestampBuilder() { @@ -4334,7 +4465,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> */ public context.ContextOuterClass.TimestampOrBuilder getEndTimestampOrBuilder() { if (endTimestampBuilder_ != null) { @@ -4349,7 +4480,7 @@ public final class Monitoring { * used when you want something like "get the samples until X date/time" * </pre> * - * <code>.context.Timestamp end_timestamp = 6;</code> + * <code>.context.Timestamp end_timestamp = 5;</code> */ private com.google.protobuf.SingleFieldBuilderV3< context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> @@ -4417,22 +4548,2659 @@ public final class Monitoring { } - public interface KpiIdOrBuilder extends - // @@protoc_insertion_point(interface_extends:monitoring.KpiId) + public interface RawKpiOrBuilder extends + // @@protoc_insertion_point(interface_extends:monitoring.RawKpi) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.Uuid kpi_id = 1;</code> - * @return Whether the kpiId field is set. + * <code>.context.Timestamp timestamp = 1;</code> + * @return Whether the timestamp field is set. */ - boolean hasKpiId(); + boolean hasTimestamp(); /** - * <code>.context.Uuid kpi_id = 1;</code> - * @return The kpiId. + * <code>.context.Timestamp timestamp = 1;</code> + * @return The timestamp. */ - context.ContextOuterClass.Uuid getKpiId(); + context.ContextOuterClass.Timestamp getTimestamp(); /** - * <code>.context.Uuid kpi_id = 1;</code> + * <code>.context.Timestamp timestamp = 1;</code> + */ + context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder(); + + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + * @return Whether the kpiValue field is set. + */ + boolean hasKpiValue(); + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + * @return The kpiValue. + */ + monitoring.Monitoring.KpiValue getKpiValue(); + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + */ + monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder(); + } + /** + * <pre> + * cell + * </pre> + * + * Protobuf type {@code monitoring.RawKpi} + */ + public static final class RawKpi extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:monitoring.RawKpi) + RawKpiOrBuilder { + private static final long serialVersionUID = 0L; + // Use RawKpi.newBuilder() to construct. + private RawKpi(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + private RawKpi() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new RawKpi(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private RawKpi( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + context.ContextOuterClass.Timestamp.Builder subBuilder = null; + if (timestamp_ != null) { + subBuilder = timestamp_.toBuilder(); + } + timestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(timestamp_); + timestamp_ = subBuilder.buildPartial(); + } + + break; + } + case 18: { + monitoring.Monitoring.KpiValue.Builder subBuilder = null; + if (kpiValue_ != null) { + subBuilder = kpiValue_.toBuilder(); + } + kpiValue_ = input.readMessage(monitoring.Monitoring.KpiValue.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(kpiValue_); + kpiValue_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return monitoring.Monitoring.internal_static_monitoring_RawKpi_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return monitoring.Monitoring.internal_static_monitoring_RawKpi_fieldAccessorTable + .ensureFieldAccessorsInitialized( + monitoring.Monitoring.RawKpi.class, monitoring.Monitoring.RawKpi.Builder.class); + } + + public static final int TIMESTAMP_FIELD_NUMBER = 1; + private context.ContextOuterClass.Timestamp timestamp_; + /** + * <code>.context.Timestamp timestamp = 1;</code> + * @return Whether the timestamp field is set. + */ + @java.lang.Override + public boolean hasTimestamp() { + return timestamp_ != null; + } + /** + * <code>.context.Timestamp timestamp = 1;</code> + * @return The timestamp. + */ + @java.lang.Override + public context.ContextOuterClass.Timestamp getTimestamp() { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } + /** + * <code>.context.Timestamp timestamp = 1;</code> + */ + @java.lang.Override + public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { + return getTimestamp(); + } + + public static final int KPI_VALUE_FIELD_NUMBER = 2; + private monitoring.Monitoring.KpiValue kpiValue_; + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + * @return Whether the kpiValue field is set. + */ + @java.lang.Override + public boolean hasKpiValue() { + return kpiValue_ != null; + } + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + * @return The kpiValue. + */ + @java.lang.Override + public monitoring.Monitoring.KpiValue getKpiValue() { + return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_; + } + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + */ + @java.lang.Override + public monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder() { + return getKpiValue(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (timestamp_ != null) { + output.writeMessage(1, getTimestamp()); + } + if (kpiValue_ != null) { + output.writeMessage(2, getKpiValue()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (timestamp_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getTimestamp()); + } + if (kpiValue_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getKpiValue()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof monitoring.Monitoring.RawKpi)) { + return super.equals(obj); + } + monitoring.Monitoring.RawKpi other = (monitoring.Monitoring.RawKpi) obj; + + if (hasTimestamp() != other.hasTimestamp()) return false; + if (hasTimestamp()) { + if (!getTimestamp() + .equals(other.getTimestamp())) return false; + } + if (hasKpiValue() != other.hasKpiValue()) return false; + if (hasKpiValue()) { + if (!getKpiValue() + .equals(other.getKpiValue())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasTimestamp()) { + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + getTimestamp().hashCode(); + } + if (hasKpiValue()) { + hash = (37 * hash) + KPI_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getKpiValue().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static monitoring.Monitoring.RawKpi parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static monitoring.Monitoring.RawKpi parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static monitoring.Monitoring.RawKpi parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static monitoring.Monitoring.RawKpi parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static monitoring.Monitoring.RawKpi parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static monitoring.Monitoring.RawKpi parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static monitoring.Monitoring.RawKpi parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static monitoring.Monitoring.RawKpi parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static monitoring.Monitoring.RawKpi parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static monitoring.Monitoring.RawKpi parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static monitoring.Monitoring.RawKpi parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static monitoring.Monitoring.RawKpi parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(monitoring.Monitoring.RawKpi prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * <pre> + * cell + * </pre> + * + * Protobuf type {@code monitoring.RawKpi} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements + // @@protoc_insertion_point(builder_implements:monitoring.RawKpi) + monitoring.Monitoring.RawKpiOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return monitoring.Monitoring.internal_static_monitoring_RawKpi_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return monitoring.Monitoring.internal_static_monitoring_RawKpi_fieldAccessorTable + .ensureFieldAccessorsInitialized( + monitoring.Monitoring.RawKpi.class, monitoring.Monitoring.RawKpi.Builder.class); + } + + // Construct using monitoring.Monitoring.RawKpi.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (timestampBuilder_ == null) { + timestamp_ = null; + } else { + timestamp_ = null; + timestampBuilder_ = null; + } + if (kpiValueBuilder_ == null) { + kpiValue_ = null; + } else { + kpiValue_ = null; + kpiValueBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return monitoring.Monitoring.internal_static_monitoring_RawKpi_descriptor; + } + + @java.lang.Override + public monitoring.Monitoring.RawKpi getDefaultInstanceForType() { + return monitoring.Monitoring.RawKpi.getDefaultInstance(); + } + + @java.lang.Override + public monitoring.Monitoring.RawKpi build() { + monitoring.Monitoring.RawKpi result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public monitoring.Monitoring.RawKpi buildPartial() { + monitoring.Monitoring.RawKpi result = new monitoring.Monitoring.RawKpi(this); + if (timestampBuilder_ == null) { + result.timestamp_ = timestamp_; + } else { + result.timestamp_ = timestampBuilder_.build(); + } + if (kpiValueBuilder_ == null) { + result.kpiValue_ = kpiValue_; + } else { + result.kpiValue_ = kpiValueBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof monitoring.Monitoring.RawKpi) { + return mergeFrom((monitoring.Monitoring.RawKpi)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(monitoring.Monitoring.RawKpi other) { + if (other == monitoring.Monitoring.RawKpi.getDefaultInstance()) return this; + if (other.hasTimestamp()) { + mergeTimestamp(other.getTimestamp()); + } + if (other.hasKpiValue()) { + mergeKpiValue(other.getKpiValue()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + monitoring.Monitoring.RawKpi parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (monitoring.Monitoring.RawKpi) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private context.ContextOuterClass.Timestamp timestamp_; + private com.google.protobuf.SingleFieldBuilderV3< + context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> timestampBuilder_; + /** + * <code>.context.Timestamp timestamp = 1;</code> + * @return Whether the timestamp field is set. + */ + public boolean hasTimestamp() { + return timestampBuilder_ != null || timestamp_ != null; + } + /** + * <code>.context.Timestamp timestamp = 1;</code> + * @return The timestamp. + */ + public context.ContextOuterClass.Timestamp getTimestamp() { + if (timestampBuilder_ == null) { + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } else { + return timestampBuilder_.getMessage(); + } + } + /** + * <code>.context.Timestamp timestamp = 1;</code> + */ + public Builder setTimestamp(context.ContextOuterClass.Timestamp value) { + if (timestampBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + timestamp_ = value; + onChanged(); + } else { + timestampBuilder_.setMessage(value); + } + + return this; + } + /** + * <code>.context.Timestamp timestamp = 1;</code> + */ + public Builder setTimestamp( + context.ContextOuterClass.Timestamp.Builder builderForValue) { + if (timestampBuilder_ == null) { + timestamp_ = builderForValue.build(); + onChanged(); + } else { + timestampBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * <code>.context.Timestamp timestamp = 1;</code> + */ + public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) { + if (timestampBuilder_ == null) { + if (timestamp_ != null) { + timestamp_ = + context.ContextOuterClass.Timestamp.newBuilder(timestamp_).mergeFrom(value).buildPartial(); + } else { + timestamp_ = value; + } + onChanged(); + } else { + timestampBuilder_.mergeFrom(value); + } + + return this; + } + /** + * <code>.context.Timestamp timestamp = 1;</code> + */ + public Builder clearTimestamp() { + if (timestampBuilder_ == null) { + timestamp_ = null; + onChanged(); + } else { + timestamp_ = null; + timestampBuilder_ = null; + } + + return this; + } + /** + * <code>.context.Timestamp timestamp = 1;</code> + */ + public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() { + + onChanged(); + return getTimestampFieldBuilder().getBuilder(); + } + /** + * <code>.context.Timestamp timestamp = 1;</code> + */ + public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { + if (timestampBuilder_ != null) { + return timestampBuilder_.getMessageOrBuilder(); + } else { + return timestamp_ == null ? + context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + } + } + /** + * <code>.context.Timestamp timestamp = 1;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3< + context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> + getTimestampFieldBuilder() { + if (timestampBuilder_ == null) { + timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>( + getTimestamp(), + getParentForChildren(), + isClean()); + timestamp_ = null; + } + return timestampBuilder_; + } + + private monitoring.Monitoring.KpiValue kpiValue_; + private com.google.protobuf.SingleFieldBuilderV3< + monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> kpiValueBuilder_; + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + * @return Whether the kpiValue field is set. + */ + public boolean hasKpiValue() { + return kpiValueBuilder_ != null || kpiValue_ != null; + } + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + * @return The kpiValue. + */ + public monitoring.Monitoring.KpiValue getKpiValue() { + if (kpiValueBuilder_ == null) { + return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_; + } else { + return kpiValueBuilder_.getMessage(); + } + } + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + */ + public Builder setKpiValue(monitoring.Monitoring.KpiValue value) { + if (kpiValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + kpiValue_ = value; + onChanged(); + } else { + kpiValueBuilder_.setMessage(value); + } + + return this; + } + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + */ + public Builder setKpiValue( + monitoring.Monitoring.KpiValue.Builder builderForValue) { + if (kpiValueBuilder_ == null) { + kpiValue_ = builderForValue.build(); + onChanged(); + } else { + kpiValueBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + */ + public Builder mergeKpiValue(monitoring.Monitoring.KpiValue value) { + if (kpiValueBuilder_ == null) { + if (kpiValue_ != null) { + kpiValue_ = + monitoring.Monitoring.KpiValue.newBuilder(kpiValue_).mergeFrom(value).buildPartial(); + } else { + kpiValue_ = value; + } + onChanged(); + } else { + kpiValueBuilder_.mergeFrom(value); + } + + return this; + } + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + */ + public Builder clearKpiValue() { + if (kpiValueBuilder_ == null) { + kpiValue_ = null; + onChanged(); + } else { + kpiValue_ = null; + kpiValueBuilder_ = null; + } + + return this; + } + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + */ + public monitoring.Monitoring.KpiValue.Builder getKpiValueBuilder() { + + onChanged(); + return getKpiValueFieldBuilder().getBuilder(); + } + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + */ + public monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder() { + if (kpiValueBuilder_ != null) { + return kpiValueBuilder_.getMessageOrBuilder(); + } else { + return kpiValue_ == null ? + monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_; + } + } + /** + * <code>.monitoring.KpiValue kpi_value = 2;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3< + monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> + getKpiValueFieldBuilder() { + if (kpiValueBuilder_ == null) { + kpiValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder>( + getKpiValue(), + getParentForChildren(), + isClean()); + kpiValue_ = null; + } + return kpiValueBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:monitoring.RawKpi) + } + + // @@protoc_insertion_point(class_scope:monitoring.RawKpi) + private static final monitoring.Monitoring.RawKpi DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new monitoring.Monitoring.RawKpi(); + } + + public static monitoring.Monitoring.RawKpi getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<RawKpi> + PARSER = new com.google.protobuf.AbstractParser<RawKpi>() { + @java.lang.Override + public RawKpi parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RawKpi(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser<RawKpi> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<RawKpi> getParserForType() { + return PARSER; + } + + @java.lang.Override + public monitoring.Monitoring.RawKpi getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface RawKpiListOrBuilder extends + // @@protoc_insertion_point(interface_extends:monitoring.RawKpiList) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + * @return Whether the kpiId field is set. + */ + boolean hasKpiId(); + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + * @return The kpiId. + */ + monitoring.Monitoring.KpiId getKpiId(); + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + */ + monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder(); + + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + java.util.List<monitoring.Monitoring.RawKpi> + getRawKpisList(); + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + monitoring.Monitoring.RawKpi getRawKpis(int index); + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + int getRawKpisCount(); + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + java.util.List<? extends monitoring.Monitoring.RawKpiOrBuilder> + getRawKpisOrBuilderList(); + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + monitoring.Monitoring.RawKpiOrBuilder getRawKpisOrBuilder( + int index); + } + /** + * <pre> + * column + * </pre> + * + * Protobuf type {@code monitoring.RawKpiList} + */ + public static final class RawKpiList extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:monitoring.RawKpiList) + RawKpiListOrBuilder { + private static final long serialVersionUID = 0L; + // Use RawKpiList.newBuilder() to construct. + private RawKpiList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + private RawKpiList() { + rawKpis_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new RawKpiList(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private RawKpiList( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + monitoring.Monitoring.KpiId.Builder subBuilder = null; + if (kpiId_ != null) { + subBuilder = kpiId_.toBuilder(); + } + kpiId_ = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(kpiId_); + kpiId_ = subBuilder.buildPartial(); + } + + break; + } + case 18: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + rawKpis_ = new java.util.ArrayList<monitoring.Monitoring.RawKpi>(); + mutable_bitField0_ |= 0x00000001; + } + rawKpis_.add( + input.readMessage(monitoring.Monitoring.RawKpi.parser(), extensionRegistry)); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + rawKpis_ = java.util.Collections.unmodifiableList(rawKpis_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return monitoring.Monitoring.internal_static_monitoring_RawKpiList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return monitoring.Monitoring.internal_static_monitoring_RawKpiList_fieldAccessorTable + .ensureFieldAccessorsInitialized( + monitoring.Monitoring.RawKpiList.class, monitoring.Monitoring.RawKpiList.Builder.class); + } + + public static final int KPI_ID_FIELD_NUMBER = 1; + private monitoring.Monitoring.KpiId kpiId_; + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + * @return Whether the kpiId field is set. + */ + @java.lang.Override + public boolean hasKpiId() { + return kpiId_ != null; + } + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + * @return The kpiId. + */ + @java.lang.Override + public monitoring.Monitoring.KpiId getKpiId() { + return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; + } + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + */ + @java.lang.Override + public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() { + return getKpiId(); + } + + public static final int RAW_KPIS_FIELD_NUMBER = 2; + private java.util.List<monitoring.Monitoring.RawKpi> rawKpis_; + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + @java.lang.Override + public java.util.List<monitoring.Monitoring.RawKpi> getRawKpisList() { + return rawKpis_; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + @java.lang.Override + public java.util.List<? extends monitoring.Monitoring.RawKpiOrBuilder> + getRawKpisOrBuilderList() { + return rawKpis_; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + @java.lang.Override + public int getRawKpisCount() { + return rawKpis_.size(); + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + @java.lang.Override + public monitoring.Monitoring.RawKpi getRawKpis(int index) { + return rawKpis_.get(index); + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + @java.lang.Override + public monitoring.Monitoring.RawKpiOrBuilder getRawKpisOrBuilder( + int index) { + return rawKpis_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (kpiId_ != null) { + output.writeMessage(1, getKpiId()); + } + for (int i = 0; i < rawKpis_.size(); i++) { + output.writeMessage(2, rawKpis_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (kpiId_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getKpiId()); + } + for (int i = 0; i < rawKpis_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, rawKpis_.get(i)); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof monitoring.Monitoring.RawKpiList)) { + return super.equals(obj); + } + monitoring.Monitoring.RawKpiList other = (monitoring.Monitoring.RawKpiList) obj; + + if (hasKpiId() != other.hasKpiId()) return false; + if (hasKpiId()) { + if (!getKpiId() + .equals(other.getKpiId())) return false; + } + if (!getRawKpisList() + .equals(other.getRawKpisList())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasKpiId()) { + hash = (37 * hash) + KPI_ID_FIELD_NUMBER; + hash = (53 * hash) + getKpiId().hashCode(); + } + if (getRawKpisCount() > 0) { + hash = (37 * hash) + RAW_KPIS_FIELD_NUMBER; + hash = (53 * hash) + getRawKpisList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static monitoring.Monitoring.RawKpiList parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static monitoring.Monitoring.RawKpiList parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static monitoring.Monitoring.RawKpiList parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static monitoring.Monitoring.RawKpiList parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static monitoring.Monitoring.RawKpiList parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static monitoring.Monitoring.RawKpiList parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static monitoring.Monitoring.RawKpiList parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static monitoring.Monitoring.RawKpiList parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static monitoring.Monitoring.RawKpiList parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static monitoring.Monitoring.RawKpiList parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static monitoring.Monitoring.RawKpiList parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static monitoring.Monitoring.RawKpiList parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(monitoring.Monitoring.RawKpiList prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * <pre> + * column + * </pre> + * + * Protobuf type {@code monitoring.RawKpiList} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements + // @@protoc_insertion_point(builder_implements:monitoring.RawKpiList) + monitoring.Monitoring.RawKpiListOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return monitoring.Monitoring.internal_static_monitoring_RawKpiList_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return monitoring.Monitoring.internal_static_monitoring_RawKpiList_fieldAccessorTable + .ensureFieldAccessorsInitialized( + monitoring.Monitoring.RawKpiList.class, monitoring.Monitoring.RawKpiList.Builder.class); + } + + // Construct using monitoring.Monitoring.RawKpiList.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getRawKpisFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (kpiIdBuilder_ == null) { + kpiId_ = null; + } else { + kpiId_ = null; + kpiIdBuilder_ = null; + } + if (rawKpisBuilder_ == null) { + rawKpis_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + rawKpisBuilder_.clear(); + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return monitoring.Monitoring.internal_static_monitoring_RawKpiList_descriptor; + } + + @java.lang.Override + public monitoring.Monitoring.RawKpiList getDefaultInstanceForType() { + return monitoring.Monitoring.RawKpiList.getDefaultInstance(); + } + + @java.lang.Override + public monitoring.Monitoring.RawKpiList build() { + monitoring.Monitoring.RawKpiList result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public monitoring.Monitoring.RawKpiList buildPartial() { + monitoring.Monitoring.RawKpiList result = new monitoring.Monitoring.RawKpiList(this); + int from_bitField0_ = bitField0_; + if (kpiIdBuilder_ == null) { + result.kpiId_ = kpiId_; + } else { + result.kpiId_ = kpiIdBuilder_.build(); + } + if (rawKpisBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + rawKpis_ = java.util.Collections.unmodifiableList(rawKpis_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.rawKpis_ = rawKpis_; + } else { + result.rawKpis_ = rawKpisBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof monitoring.Monitoring.RawKpiList) { + return mergeFrom((monitoring.Monitoring.RawKpiList)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(monitoring.Monitoring.RawKpiList other) { + if (other == monitoring.Monitoring.RawKpiList.getDefaultInstance()) return this; + if (other.hasKpiId()) { + mergeKpiId(other.getKpiId()); + } + if (rawKpisBuilder_ == null) { + if (!other.rawKpis_.isEmpty()) { + if (rawKpis_.isEmpty()) { + rawKpis_ = other.rawKpis_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureRawKpisIsMutable(); + rawKpis_.addAll(other.rawKpis_); + } + onChanged(); + } + } else { + if (!other.rawKpis_.isEmpty()) { + if (rawKpisBuilder_.isEmpty()) { + rawKpisBuilder_.dispose(); + rawKpisBuilder_ = null; + rawKpis_ = other.rawKpis_; + bitField0_ = (bitField0_ & ~0x00000001); + rawKpisBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getRawKpisFieldBuilder() : null; + } else { + rawKpisBuilder_.addAllMessages(other.rawKpis_); + } + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + monitoring.Monitoring.RawKpiList parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (monitoring.Monitoring.RawKpiList) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private monitoring.Monitoring.KpiId kpiId_; + private com.google.protobuf.SingleFieldBuilderV3< + monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_; + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + * @return Whether the kpiId field is set. + */ + public boolean hasKpiId() { + return kpiIdBuilder_ != null || kpiId_ != null; + } + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + * @return The kpiId. + */ + public monitoring.Monitoring.KpiId getKpiId() { + if (kpiIdBuilder_ == null) { + return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; + } else { + return kpiIdBuilder_.getMessage(); + } + } + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + */ + public Builder setKpiId(monitoring.Monitoring.KpiId value) { + if (kpiIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + kpiId_ = value; + onChanged(); + } else { + kpiIdBuilder_.setMessage(value); + } + + return this; + } + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + */ + public Builder setKpiId( + monitoring.Monitoring.KpiId.Builder builderForValue) { + if (kpiIdBuilder_ == null) { + kpiId_ = builderForValue.build(); + onChanged(); + } else { + kpiIdBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + */ + public Builder mergeKpiId(monitoring.Monitoring.KpiId value) { + if (kpiIdBuilder_ == null) { + if (kpiId_ != null) { + kpiId_ = + monitoring.Monitoring.KpiId.newBuilder(kpiId_).mergeFrom(value).buildPartial(); + } else { + kpiId_ = value; + } + onChanged(); + } else { + kpiIdBuilder_.mergeFrom(value); + } + + return this; + } + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + */ + public Builder clearKpiId() { + if (kpiIdBuilder_ == null) { + kpiId_ = null; + onChanged(); + } else { + kpiId_ = null; + kpiIdBuilder_ = null; + } + + return this; + } + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + */ + public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() { + + onChanged(); + return getKpiIdFieldBuilder().getBuilder(); + } + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + */ + public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() { + if (kpiIdBuilder_ != null) { + return kpiIdBuilder_.getMessageOrBuilder(); + } else { + return kpiId_ == null ? + monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; + } + } + /** + * <code>.monitoring.KpiId kpi_id = 1;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3< + monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> + getKpiIdFieldBuilder() { + if (kpiIdBuilder_ == null) { + kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>( + getKpiId(), + getParentForChildren(), + isClean()); + kpiId_ = null; + } + return kpiIdBuilder_; + } + + private java.util.List<monitoring.Monitoring.RawKpi> rawKpis_ = + java.util.Collections.emptyList(); + private void ensureRawKpisIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + rawKpis_ = new java.util.ArrayList<monitoring.Monitoring.RawKpi>(rawKpis_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + monitoring.Monitoring.RawKpi, monitoring.Monitoring.RawKpi.Builder, monitoring.Monitoring.RawKpiOrBuilder> rawKpisBuilder_; + + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public java.util.List<monitoring.Monitoring.RawKpi> getRawKpisList() { + if (rawKpisBuilder_ == null) { + return java.util.Collections.unmodifiableList(rawKpis_); + } else { + return rawKpisBuilder_.getMessageList(); + } + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public int getRawKpisCount() { + if (rawKpisBuilder_ == null) { + return rawKpis_.size(); + } else { + return rawKpisBuilder_.getCount(); + } + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public monitoring.Monitoring.RawKpi getRawKpis(int index) { + if (rawKpisBuilder_ == null) { + return rawKpis_.get(index); + } else { + return rawKpisBuilder_.getMessage(index); + } + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public Builder setRawKpis( + int index, monitoring.Monitoring.RawKpi value) { + if (rawKpisBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRawKpisIsMutable(); + rawKpis_.set(index, value); + onChanged(); + } else { + rawKpisBuilder_.setMessage(index, value); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public Builder setRawKpis( + int index, monitoring.Monitoring.RawKpi.Builder builderForValue) { + if (rawKpisBuilder_ == null) { + ensureRawKpisIsMutable(); + rawKpis_.set(index, builderForValue.build()); + onChanged(); + } else { + rawKpisBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public Builder addRawKpis(monitoring.Monitoring.RawKpi value) { + if (rawKpisBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRawKpisIsMutable(); + rawKpis_.add(value); + onChanged(); + } else { + rawKpisBuilder_.addMessage(value); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public Builder addRawKpis( + int index, monitoring.Monitoring.RawKpi value) { + if (rawKpisBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRawKpisIsMutable(); + rawKpis_.add(index, value); + onChanged(); + } else { + rawKpisBuilder_.addMessage(index, value); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public Builder addRawKpis( + monitoring.Monitoring.RawKpi.Builder builderForValue) { + if (rawKpisBuilder_ == null) { + ensureRawKpisIsMutable(); + rawKpis_.add(builderForValue.build()); + onChanged(); + } else { + rawKpisBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public Builder addRawKpis( + int index, monitoring.Monitoring.RawKpi.Builder builderForValue) { + if (rawKpisBuilder_ == null) { + ensureRawKpisIsMutable(); + rawKpis_.add(index, builderForValue.build()); + onChanged(); + } else { + rawKpisBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public Builder addAllRawKpis( + java.lang.Iterable<? extends monitoring.Monitoring.RawKpi> values) { + if (rawKpisBuilder_ == null) { + ensureRawKpisIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, rawKpis_); + onChanged(); + } else { + rawKpisBuilder_.addAllMessages(values); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public Builder clearRawKpis() { + if (rawKpisBuilder_ == null) { + rawKpis_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + rawKpisBuilder_.clear(); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public Builder removeRawKpis(int index) { + if (rawKpisBuilder_ == null) { + ensureRawKpisIsMutable(); + rawKpis_.remove(index); + onChanged(); + } else { + rawKpisBuilder_.remove(index); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public monitoring.Monitoring.RawKpi.Builder getRawKpisBuilder( + int index) { + return getRawKpisFieldBuilder().getBuilder(index); + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public monitoring.Monitoring.RawKpiOrBuilder getRawKpisOrBuilder( + int index) { + if (rawKpisBuilder_ == null) { + return rawKpis_.get(index); } else { + return rawKpisBuilder_.getMessageOrBuilder(index); + } + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public java.util.List<? extends monitoring.Monitoring.RawKpiOrBuilder> + getRawKpisOrBuilderList() { + if (rawKpisBuilder_ != null) { + return rawKpisBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(rawKpis_); + } + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public monitoring.Monitoring.RawKpi.Builder addRawKpisBuilder() { + return getRawKpisFieldBuilder().addBuilder( + monitoring.Monitoring.RawKpi.getDefaultInstance()); + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public monitoring.Monitoring.RawKpi.Builder addRawKpisBuilder( + int index) { + return getRawKpisFieldBuilder().addBuilder( + index, monitoring.Monitoring.RawKpi.getDefaultInstance()); + } + /** + * <code>repeated .monitoring.RawKpi raw_kpis = 2;</code> + */ + public java.util.List<monitoring.Monitoring.RawKpi.Builder> + getRawKpisBuilderList() { + return getRawKpisFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + monitoring.Monitoring.RawKpi, monitoring.Monitoring.RawKpi.Builder, monitoring.Monitoring.RawKpiOrBuilder> + getRawKpisFieldBuilder() { + if (rawKpisBuilder_ == null) { + rawKpisBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + monitoring.Monitoring.RawKpi, monitoring.Monitoring.RawKpi.Builder, monitoring.Monitoring.RawKpiOrBuilder>( + rawKpis_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + rawKpis_ = null; + } + return rawKpisBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:monitoring.RawKpiList) + } + + // @@protoc_insertion_point(class_scope:monitoring.RawKpiList) + private static final monitoring.Monitoring.RawKpiList DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new monitoring.Monitoring.RawKpiList(); + } + + public static monitoring.Monitoring.RawKpiList getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<RawKpiList> + PARSER = new com.google.protobuf.AbstractParser<RawKpiList>() { + @java.lang.Override + public RawKpiList parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RawKpiList(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser<RawKpiList> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<RawKpiList> getParserForType() { + return PARSER; + } + + @java.lang.Override + public monitoring.Monitoring.RawKpiList getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface RawKpiTableOrBuilder extends + // @@protoc_insertion_point(interface_extends:monitoring.RawKpiTable) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + java.util.List<monitoring.Monitoring.RawKpiList> + getRawKpiListsList(); + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + monitoring.Monitoring.RawKpiList getRawKpiLists(int index); + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + int getRawKpiListsCount(); + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + java.util.List<? extends monitoring.Monitoring.RawKpiListOrBuilder> + getRawKpiListsOrBuilderList(); + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + monitoring.Monitoring.RawKpiListOrBuilder getRawKpiListsOrBuilder( + int index); + } + /** + * <pre> + * table + * </pre> + * + * Protobuf type {@code monitoring.RawKpiTable} + */ + public static final class RawKpiTable extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:monitoring.RawKpiTable) + RawKpiTableOrBuilder { + private static final long serialVersionUID = 0L; + // Use RawKpiTable.newBuilder() to construct. + private RawKpiTable(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + private RawKpiTable() { + rawKpiLists_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new RawKpiTable(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private RawKpiTable( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + rawKpiLists_ = new java.util.ArrayList<monitoring.Monitoring.RawKpiList>(); + mutable_bitField0_ |= 0x00000001; + } + rawKpiLists_.add( + input.readMessage(monitoring.Monitoring.RawKpiList.parser(), extensionRegistry)); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + rawKpiLists_ = java.util.Collections.unmodifiableList(rawKpiLists_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return monitoring.Monitoring.internal_static_monitoring_RawKpiTable_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return monitoring.Monitoring.internal_static_monitoring_RawKpiTable_fieldAccessorTable + .ensureFieldAccessorsInitialized( + monitoring.Monitoring.RawKpiTable.class, monitoring.Monitoring.RawKpiTable.Builder.class); + } + + public static final int RAW_KPI_LISTS_FIELD_NUMBER = 1; + private java.util.List<monitoring.Monitoring.RawKpiList> rawKpiLists_; + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + @java.lang.Override + public java.util.List<monitoring.Monitoring.RawKpiList> getRawKpiListsList() { + return rawKpiLists_; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + @java.lang.Override + public java.util.List<? extends monitoring.Monitoring.RawKpiListOrBuilder> + getRawKpiListsOrBuilderList() { + return rawKpiLists_; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + @java.lang.Override + public int getRawKpiListsCount() { + return rawKpiLists_.size(); + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + @java.lang.Override + public monitoring.Monitoring.RawKpiList getRawKpiLists(int index) { + return rawKpiLists_.get(index); + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + @java.lang.Override + public monitoring.Monitoring.RawKpiListOrBuilder getRawKpiListsOrBuilder( + int index) { + return rawKpiLists_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < rawKpiLists_.size(); i++) { + output.writeMessage(1, rawKpiLists_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < rawKpiLists_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, rawKpiLists_.get(i)); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof monitoring.Monitoring.RawKpiTable)) { + return super.equals(obj); + } + monitoring.Monitoring.RawKpiTable other = (monitoring.Monitoring.RawKpiTable) obj; + + if (!getRawKpiListsList() + .equals(other.getRawKpiListsList())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getRawKpiListsCount() > 0) { + hash = (37 * hash) + RAW_KPI_LISTS_FIELD_NUMBER; + hash = (53 * hash) + getRawKpiListsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static monitoring.Monitoring.RawKpiTable parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static monitoring.Monitoring.RawKpiTable parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static monitoring.Monitoring.RawKpiTable parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static monitoring.Monitoring.RawKpiTable parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static monitoring.Monitoring.RawKpiTable parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static monitoring.Monitoring.RawKpiTable parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static monitoring.Monitoring.RawKpiTable parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static monitoring.Monitoring.RawKpiTable parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static monitoring.Monitoring.RawKpiTable parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static monitoring.Monitoring.RawKpiTable parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static monitoring.Monitoring.RawKpiTable parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static monitoring.Monitoring.RawKpiTable parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(monitoring.Monitoring.RawKpiTable prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * <pre> + * table + * </pre> + * + * Protobuf type {@code monitoring.RawKpiTable} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements + // @@protoc_insertion_point(builder_implements:monitoring.RawKpiTable) + monitoring.Monitoring.RawKpiTableOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return monitoring.Monitoring.internal_static_monitoring_RawKpiTable_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return monitoring.Monitoring.internal_static_monitoring_RawKpiTable_fieldAccessorTable + .ensureFieldAccessorsInitialized( + monitoring.Monitoring.RawKpiTable.class, monitoring.Monitoring.RawKpiTable.Builder.class); + } + + // Construct using monitoring.Monitoring.RawKpiTable.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getRawKpiListsFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (rawKpiListsBuilder_ == null) { + rawKpiLists_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + rawKpiListsBuilder_.clear(); + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return monitoring.Monitoring.internal_static_monitoring_RawKpiTable_descriptor; + } + + @java.lang.Override + public monitoring.Monitoring.RawKpiTable getDefaultInstanceForType() { + return monitoring.Monitoring.RawKpiTable.getDefaultInstance(); + } + + @java.lang.Override + public monitoring.Monitoring.RawKpiTable build() { + monitoring.Monitoring.RawKpiTable result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public monitoring.Monitoring.RawKpiTable buildPartial() { + monitoring.Monitoring.RawKpiTable result = new monitoring.Monitoring.RawKpiTable(this); + int from_bitField0_ = bitField0_; + if (rawKpiListsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + rawKpiLists_ = java.util.Collections.unmodifiableList(rawKpiLists_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.rawKpiLists_ = rawKpiLists_; + } else { + result.rawKpiLists_ = rawKpiListsBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof monitoring.Monitoring.RawKpiTable) { + return mergeFrom((monitoring.Monitoring.RawKpiTable)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(monitoring.Monitoring.RawKpiTable other) { + if (other == monitoring.Monitoring.RawKpiTable.getDefaultInstance()) return this; + if (rawKpiListsBuilder_ == null) { + if (!other.rawKpiLists_.isEmpty()) { + if (rawKpiLists_.isEmpty()) { + rawKpiLists_ = other.rawKpiLists_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureRawKpiListsIsMutable(); + rawKpiLists_.addAll(other.rawKpiLists_); + } + onChanged(); + } + } else { + if (!other.rawKpiLists_.isEmpty()) { + if (rawKpiListsBuilder_.isEmpty()) { + rawKpiListsBuilder_.dispose(); + rawKpiListsBuilder_ = null; + rawKpiLists_ = other.rawKpiLists_; + bitField0_ = (bitField0_ & ~0x00000001); + rawKpiListsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getRawKpiListsFieldBuilder() : null; + } else { + rawKpiListsBuilder_.addAllMessages(other.rawKpiLists_); + } + } + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + monitoring.Monitoring.RawKpiTable parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (monitoring.Monitoring.RawKpiTable) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.util.List<monitoring.Monitoring.RawKpiList> rawKpiLists_ = + java.util.Collections.emptyList(); + private void ensureRawKpiListsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + rawKpiLists_ = new java.util.ArrayList<monitoring.Monitoring.RawKpiList>(rawKpiLists_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + monitoring.Monitoring.RawKpiList, monitoring.Monitoring.RawKpiList.Builder, monitoring.Monitoring.RawKpiListOrBuilder> rawKpiListsBuilder_; + + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public java.util.List<monitoring.Monitoring.RawKpiList> getRawKpiListsList() { + if (rawKpiListsBuilder_ == null) { + return java.util.Collections.unmodifiableList(rawKpiLists_); + } else { + return rawKpiListsBuilder_.getMessageList(); + } + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public int getRawKpiListsCount() { + if (rawKpiListsBuilder_ == null) { + return rawKpiLists_.size(); + } else { + return rawKpiListsBuilder_.getCount(); + } + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public monitoring.Monitoring.RawKpiList getRawKpiLists(int index) { + if (rawKpiListsBuilder_ == null) { + return rawKpiLists_.get(index); + } else { + return rawKpiListsBuilder_.getMessage(index); + } + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public Builder setRawKpiLists( + int index, monitoring.Monitoring.RawKpiList value) { + if (rawKpiListsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRawKpiListsIsMutable(); + rawKpiLists_.set(index, value); + onChanged(); + } else { + rawKpiListsBuilder_.setMessage(index, value); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public Builder setRawKpiLists( + int index, monitoring.Monitoring.RawKpiList.Builder builderForValue) { + if (rawKpiListsBuilder_ == null) { + ensureRawKpiListsIsMutable(); + rawKpiLists_.set(index, builderForValue.build()); + onChanged(); + } else { + rawKpiListsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public Builder addRawKpiLists(monitoring.Monitoring.RawKpiList value) { + if (rawKpiListsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRawKpiListsIsMutable(); + rawKpiLists_.add(value); + onChanged(); + } else { + rawKpiListsBuilder_.addMessage(value); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public Builder addRawKpiLists( + int index, monitoring.Monitoring.RawKpiList value) { + if (rawKpiListsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRawKpiListsIsMutable(); + rawKpiLists_.add(index, value); + onChanged(); + } else { + rawKpiListsBuilder_.addMessage(index, value); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public Builder addRawKpiLists( + monitoring.Monitoring.RawKpiList.Builder builderForValue) { + if (rawKpiListsBuilder_ == null) { + ensureRawKpiListsIsMutable(); + rawKpiLists_.add(builderForValue.build()); + onChanged(); + } else { + rawKpiListsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public Builder addRawKpiLists( + int index, monitoring.Monitoring.RawKpiList.Builder builderForValue) { + if (rawKpiListsBuilder_ == null) { + ensureRawKpiListsIsMutable(); + rawKpiLists_.add(index, builderForValue.build()); + onChanged(); + } else { + rawKpiListsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public Builder addAllRawKpiLists( + java.lang.Iterable<? extends monitoring.Monitoring.RawKpiList> values) { + if (rawKpiListsBuilder_ == null) { + ensureRawKpiListsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, rawKpiLists_); + onChanged(); + } else { + rawKpiListsBuilder_.addAllMessages(values); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public Builder clearRawKpiLists() { + if (rawKpiListsBuilder_ == null) { + rawKpiLists_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + rawKpiListsBuilder_.clear(); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public Builder removeRawKpiLists(int index) { + if (rawKpiListsBuilder_ == null) { + ensureRawKpiListsIsMutable(); + rawKpiLists_.remove(index); + onChanged(); + } else { + rawKpiListsBuilder_.remove(index); + } + return this; + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public monitoring.Monitoring.RawKpiList.Builder getRawKpiListsBuilder( + int index) { + return getRawKpiListsFieldBuilder().getBuilder(index); + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public monitoring.Monitoring.RawKpiListOrBuilder getRawKpiListsOrBuilder( + int index) { + if (rawKpiListsBuilder_ == null) { + return rawKpiLists_.get(index); } else { + return rawKpiListsBuilder_.getMessageOrBuilder(index); + } + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public java.util.List<? extends monitoring.Monitoring.RawKpiListOrBuilder> + getRawKpiListsOrBuilderList() { + if (rawKpiListsBuilder_ != null) { + return rawKpiListsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(rawKpiLists_); + } + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public monitoring.Monitoring.RawKpiList.Builder addRawKpiListsBuilder() { + return getRawKpiListsFieldBuilder().addBuilder( + monitoring.Monitoring.RawKpiList.getDefaultInstance()); + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public monitoring.Monitoring.RawKpiList.Builder addRawKpiListsBuilder( + int index) { + return getRawKpiListsFieldBuilder().addBuilder( + index, monitoring.Monitoring.RawKpiList.getDefaultInstance()); + } + /** + * <code>repeated .monitoring.RawKpiList raw_kpi_lists = 1;</code> + */ + public java.util.List<monitoring.Monitoring.RawKpiList.Builder> + getRawKpiListsBuilderList() { + return getRawKpiListsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + monitoring.Monitoring.RawKpiList, monitoring.Monitoring.RawKpiList.Builder, monitoring.Monitoring.RawKpiListOrBuilder> + getRawKpiListsFieldBuilder() { + if (rawKpiListsBuilder_ == null) { + rawKpiListsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + monitoring.Monitoring.RawKpiList, monitoring.Monitoring.RawKpiList.Builder, monitoring.Monitoring.RawKpiListOrBuilder>( + rawKpiLists_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + rawKpiLists_ = null; + } + return rawKpiListsBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:monitoring.RawKpiTable) + } + + // @@protoc_insertion_point(class_scope:monitoring.RawKpiTable) + private static final monitoring.Monitoring.RawKpiTable DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new monitoring.Monitoring.RawKpiTable(); + } + + public static monitoring.Monitoring.RawKpiTable getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<RawKpiTable> + PARSER = new com.google.protobuf.AbstractParser<RawKpiTable>() { + @java.lang.Override + public RawKpiTable parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RawKpiTable(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser<RawKpiTable> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<RawKpiTable> getParserForType() { + return PARSER; + } + + @java.lang.Override + public monitoring.Monitoring.RawKpiTable getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface KpiIdOrBuilder extends + // @@protoc_insertion_point(interface_extends:monitoring.KpiId) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>.context.Uuid kpi_id = 1;</code> + * @return Whether the kpiId field is set. + */ + boolean hasKpiId(); + /** + * <code>.context.Uuid kpi_id = 1;</code> + * @return The kpiId. + */ + context.ContextOuterClass.Uuid getKpiId(); + /** + * <code>.context.Uuid kpi_id = 1;</code> */ context.ContextOuterClass.UuidOrBuilder getKpiIdOrBuilder(); } @@ -8482,27 +11250,27 @@ public final class Monitoring { com.google.protobuf.MessageOrBuilder { /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ java.util.List<monitoring.Monitoring.Kpi> - getKpiListList(); + getKpiList(); /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - monitoring.Monitoring.Kpi getKpiList(int index); + monitoring.Monitoring.Kpi getKpi(int index); /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - int getKpiListCount(); + int getKpiCount(); /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ java.util.List<? extends monitoring.Monitoring.KpiOrBuilder> - getKpiListOrBuilderList(); + getKpiOrBuilderList(); /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - monitoring.Monitoring.KpiOrBuilder getKpiListOrBuilder( + monitoring.Monitoring.KpiOrBuilder getKpiOrBuilder( int index); } /** @@ -8518,7 +11286,7 @@ public final class Monitoring { super(builder); } private KpiList() { - kpiList_ = java.util.Collections.emptyList(); + kpi_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -8554,10 +11322,10 @@ public final class Monitoring { break; case 10: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { - kpiList_ = new java.util.ArrayList<monitoring.Monitoring.Kpi>(); + kpi_ = new java.util.ArrayList<monitoring.Monitoring.Kpi>(); mutable_bitField0_ |= 0x00000001; } - kpiList_.add( + kpi_.add( input.readMessage(monitoring.Monitoring.Kpi.parser(), extensionRegistry)); break; } @@ -8577,7 +11345,7 @@ public final class Monitoring { e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000001) != 0)) { - kpiList_ = java.util.Collections.unmodifiableList(kpiList_); + kpi_ = java.util.Collections.unmodifiableList(kpi_); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); @@ -8596,44 +11364,44 @@ public final class Monitoring { monitoring.Monitoring.KpiList.class, monitoring.Monitoring.KpiList.Builder.class); } - public static final int KPI_LIST_FIELD_NUMBER = 1; - private java.util.List<monitoring.Monitoring.Kpi> kpiList_; + public static final int KPI_FIELD_NUMBER = 1; + private java.util.List<monitoring.Monitoring.Kpi> kpi_; /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ @java.lang.Override - public java.util.List<monitoring.Monitoring.Kpi> getKpiListList() { - return kpiList_; + public java.util.List<monitoring.Monitoring.Kpi> getKpiList() { + return kpi_; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ @java.lang.Override public java.util.List<? extends monitoring.Monitoring.KpiOrBuilder> - getKpiListOrBuilderList() { - return kpiList_; + getKpiOrBuilderList() { + return kpi_; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ @java.lang.Override - public int getKpiListCount() { - return kpiList_.size(); + public int getKpiCount() { + return kpi_.size(); } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ @java.lang.Override - public monitoring.Monitoring.Kpi getKpiList(int index) { - return kpiList_.get(index); + public monitoring.Monitoring.Kpi getKpi(int index) { + return kpi_.get(index); } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ @java.lang.Override - public monitoring.Monitoring.KpiOrBuilder getKpiListOrBuilder( + public monitoring.Monitoring.KpiOrBuilder getKpiOrBuilder( int index) { - return kpiList_.get(index); + return kpi_.get(index); } private byte memoizedIsInitialized = -1; @@ -8650,8 +11418,8 @@ public final class Monitoring { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - for (int i = 0; i < kpiList_.size(); i++) { - output.writeMessage(1, kpiList_.get(i)); + for (int i = 0; i < kpi_.size(); i++) { + output.writeMessage(1, kpi_.get(i)); } unknownFields.writeTo(output); } @@ -8662,9 +11430,9 @@ public final class Monitoring { if (size != -1) return size; size = 0; - for (int i = 0; i < kpiList_.size(); i++) { + for (int i = 0; i < kpi_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, kpiList_.get(i)); + .computeMessageSize(1, kpi_.get(i)); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -8681,8 +11449,8 @@ public final class Monitoring { } monitoring.Monitoring.KpiList other = (monitoring.Monitoring.KpiList) obj; - if (!getKpiListList() - .equals(other.getKpiListList())) return false; + if (!getKpiList() + .equals(other.getKpiList())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -8694,9 +11462,9 @@ public final class Monitoring { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (getKpiListCount() > 0) { - hash = (37 * hash) + KPI_LIST_FIELD_NUMBER; - hash = (53 * hash) + getKpiListList().hashCode(); + if (getKpiCount() > 0) { + hash = (37 * hash) + KPI_FIELD_NUMBER; + hash = (53 * hash) + getKpiList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; @@ -8826,17 +11594,17 @@ public final class Monitoring { private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { - getKpiListFieldBuilder(); + getKpiFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); - if (kpiListBuilder_ == null) { - kpiList_ = java.util.Collections.emptyList(); + if (kpiBuilder_ == null) { + kpi_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); } else { - kpiListBuilder_.clear(); + kpiBuilder_.clear(); } return this; } @@ -8865,14 +11633,14 @@ public final class Monitoring { public monitoring.Monitoring.KpiList buildPartial() { monitoring.Monitoring.KpiList result = new monitoring.Monitoring.KpiList(this); int from_bitField0_ = bitField0_; - if (kpiListBuilder_ == null) { + if (kpiBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { - kpiList_ = java.util.Collections.unmodifiableList(kpiList_); + kpi_ = java.util.Collections.unmodifiableList(kpi_); bitField0_ = (bitField0_ & ~0x00000001); } - result.kpiList_ = kpiList_; + result.kpi_ = kpi_; } else { - result.kpiList_ = kpiListBuilder_.build(); + result.kpi_ = kpiBuilder_.build(); } onBuilt(); return result; @@ -8922,29 +11690,29 @@ public final class Monitoring { public Builder mergeFrom(monitoring.Monitoring.KpiList other) { if (other == monitoring.Monitoring.KpiList.getDefaultInstance()) return this; - if (kpiListBuilder_ == null) { - if (!other.kpiList_.isEmpty()) { - if (kpiList_.isEmpty()) { - kpiList_ = other.kpiList_; + if (kpiBuilder_ == null) { + if (!other.kpi_.isEmpty()) { + if (kpi_.isEmpty()) { + kpi_ = other.kpi_; bitField0_ = (bitField0_ & ~0x00000001); } else { - ensureKpiListIsMutable(); - kpiList_.addAll(other.kpiList_); + ensureKpiIsMutable(); + kpi_.addAll(other.kpi_); } onChanged(); } } else { - if (!other.kpiList_.isEmpty()) { - if (kpiListBuilder_.isEmpty()) { - kpiListBuilder_.dispose(); - kpiListBuilder_ = null; - kpiList_ = other.kpiList_; + if (!other.kpi_.isEmpty()) { + if (kpiBuilder_.isEmpty()) { + kpiBuilder_.dispose(); + kpiBuilder_ = null; + kpi_ = other.kpi_; bitField0_ = (bitField0_ & ~0x00000001); - kpiListBuilder_ = + kpiBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getKpiListFieldBuilder() : null; + getKpiFieldBuilder() : null; } else { - kpiListBuilder_.addAllMessages(other.kpiList_); + kpiBuilder_.addAllMessages(other.kpi_); } } } @@ -8978,244 +11746,244 @@ public final class Monitoring { } private int bitField0_; - private java.util.List<monitoring.Monitoring.Kpi> kpiList_ = + private java.util.List<monitoring.Monitoring.Kpi> kpi_ = java.util.Collections.emptyList(); - private void ensureKpiListIsMutable() { + private void ensureKpiIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { - kpiList_ = new java.util.ArrayList<monitoring.Monitoring.Kpi>(kpiList_); + kpi_ = new java.util.ArrayList<monitoring.Monitoring.Kpi>(kpi_); bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< - monitoring.Monitoring.Kpi, monitoring.Monitoring.Kpi.Builder, monitoring.Monitoring.KpiOrBuilder> kpiListBuilder_; + monitoring.Monitoring.Kpi, monitoring.Monitoring.Kpi.Builder, monitoring.Monitoring.KpiOrBuilder> kpiBuilder_; /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public java.util.List<monitoring.Monitoring.Kpi> getKpiListList() { - if (kpiListBuilder_ == null) { - return java.util.Collections.unmodifiableList(kpiList_); + public java.util.List<monitoring.Monitoring.Kpi> getKpiList() { + if (kpiBuilder_ == null) { + return java.util.Collections.unmodifiableList(kpi_); } else { - return kpiListBuilder_.getMessageList(); + return kpiBuilder_.getMessageList(); } } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public int getKpiListCount() { - if (kpiListBuilder_ == null) { - return kpiList_.size(); + public int getKpiCount() { + if (kpiBuilder_ == null) { + return kpi_.size(); } else { - return kpiListBuilder_.getCount(); + return kpiBuilder_.getCount(); } } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public monitoring.Monitoring.Kpi getKpiList(int index) { - if (kpiListBuilder_ == null) { - return kpiList_.get(index); + public monitoring.Monitoring.Kpi getKpi(int index) { + if (kpiBuilder_ == null) { + return kpi_.get(index); } else { - return kpiListBuilder_.getMessage(index); + return kpiBuilder_.getMessage(index); } } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public Builder setKpiList( + public Builder setKpi( int index, monitoring.Monitoring.Kpi value) { - if (kpiListBuilder_ == null) { + if (kpiBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureKpiListIsMutable(); - kpiList_.set(index, value); + ensureKpiIsMutable(); + kpi_.set(index, value); onChanged(); } else { - kpiListBuilder_.setMessage(index, value); + kpiBuilder_.setMessage(index, value); } return this; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public Builder setKpiList( + public Builder setKpi( int index, monitoring.Monitoring.Kpi.Builder builderForValue) { - if (kpiListBuilder_ == null) { - ensureKpiListIsMutable(); - kpiList_.set(index, builderForValue.build()); + if (kpiBuilder_ == null) { + ensureKpiIsMutable(); + kpi_.set(index, builderForValue.build()); onChanged(); } else { - kpiListBuilder_.setMessage(index, builderForValue.build()); + kpiBuilder_.setMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public Builder addKpiList(monitoring.Monitoring.Kpi value) { - if (kpiListBuilder_ == null) { + public Builder addKpi(monitoring.Monitoring.Kpi value) { + if (kpiBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureKpiListIsMutable(); - kpiList_.add(value); + ensureKpiIsMutable(); + kpi_.add(value); onChanged(); } else { - kpiListBuilder_.addMessage(value); + kpiBuilder_.addMessage(value); } return this; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public Builder addKpiList( + public Builder addKpi( int index, monitoring.Monitoring.Kpi value) { - if (kpiListBuilder_ == null) { + if (kpiBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureKpiListIsMutable(); - kpiList_.add(index, value); + ensureKpiIsMutable(); + kpi_.add(index, value); onChanged(); } else { - kpiListBuilder_.addMessage(index, value); + kpiBuilder_.addMessage(index, value); } return this; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public Builder addKpiList( + public Builder addKpi( monitoring.Monitoring.Kpi.Builder builderForValue) { - if (kpiListBuilder_ == null) { - ensureKpiListIsMutable(); - kpiList_.add(builderForValue.build()); + if (kpiBuilder_ == null) { + ensureKpiIsMutable(); + kpi_.add(builderForValue.build()); onChanged(); } else { - kpiListBuilder_.addMessage(builderForValue.build()); + kpiBuilder_.addMessage(builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public Builder addKpiList( + public Builder addKpi( int index, monitoring.Monitoring.Kpi.Builder builderForValue) { - if (kpiListBuilder_ == null) { - ensureKpiListIsMutable(); - kpiList_.add(index, builderForValue.build()); + if (kpiBuilder_ == null) { + ensureKpiIsMutable(); + kpi_.add(index, builderForValue.build()); onChanged(); } else { - kpiListBuilder_.addMessage(index, builderForValue.build()); + kpiBuilder_.addMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public Builder addAllKpiList( + public Builder addAllKpi( java.lang.Iterable<? extends monitoring.Monitoring.Kpi> values) { - if (kpiListBuilder_ == null) { - ensureKpiListIsMutable(); + if (kpiBuilder_ == null) { + ensureKpiIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, kpiList_); + values, kpi_); onChanged(); } else { - kpiListBuilder_.addAllMessages(values); + kpiBuilder_.addAllMessages(values); } return this; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public Builder clearKpiList() { - if (kpiListBuilder_ == null) { - kpiList_ = java.util.Collections.emptyList(); + public Builder clearKpi() { + if (kpiBuilder_ == null) { + kpi_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { - kpiListBuilder_.clear(); + kpiBuilder_.clear(); } return this; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public Builder removeKpiList(int index) { - if (kpiListBuilder_ == null) { - ensureKpiListIsMutable(); - kpiList_.remove(index); + public Builder removeKpi(int index) { + if (kpiBuilder_ == null) { + ensureKpiIsMutable(); + kpi_.remove(index); onChanged(); } else { - kpiListBuilder_.remove(index); + kpiBuilder_.remove(index); } return this; } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public monitoring.Monitoring.Kpi.Builder getKpiListBuilder( + public monitoring.Monitoring.Kpi.Builder getKpiBuilder( int index) { - return getKpiListFieldBuilder().getBuilder(index); + return getKpiFieldBuilder().getBuilder(index); } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public monitoring.Monitoring.KpiOrBuilder getKpiListOrBuilder( + public monitoring.Monitoring.KpiOrBuilder getKpiOrBuilder( int index) { - if (kpiListBuilder_ == null) { - return kpiList_.get(index); } else { - return kpiListBuilder_.getMessageOrBuilder(index); + if (kpiBuilder_ == null) { + return kpi_.get(index); } else { + return kpiBuilder_.getMessageOrBuilder(index); } } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ public java.util.List<? extends monitoring.Monitoring.KpiOrBuilder> - getKpiListOrBuilderList() { - if (kpiListBuilder_ != null) { - return kpiListBuilder_.getMessageOrBuilderList(); + getKpiOrBuilderList() { + if (kpiBuilder_ != null) { + return kpiBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(kpiList_); + return java.util.Collections.unmodifiableList(kpi_); } } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public monitoring.Monitoring.Kpi.Builder addKpiListBuilder() { - return getKpiListFieldBuilder().addBuilder( + public monitoring.Monitoring.Kpi.Builder addKpiBuilder() { + return getKpiFieldBuilder().addBuilder( monitoring.Monitoring.Kpi.getDefaultInstance()); } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ - public monitoring.Monitoring.Kpi.Builder addKpiListBuilder( + public monitoring.Monitoring.Kpi.Builder addKpiBuilder( int index) { - return getKpiListFieldBuilder().addBuilder( + return getKpiFieldBuilder().addBuilder( index, monitoring.Monitoring.Kpi.getDefaultInstance()); } /** - * <code>repeated .monitoring.Kpi kpi_list = 1;</code> + * <code>repeated .monitoring.Kpi kpi = 1;</code> */ public java.util.List<monitoring.Monitoring.Kpi.Builder> - getKpiListBuilderList() { - return getKpiListFieldBuilder().getBuilderList(); + getKpiBuilderList() { + return getKpiFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< monitoring.Monitoring.Kpi, monitoring.Monitoring.Kpi.Builder, monitoring.Monitoring.KpiOrBuilder> - getKpiListFieldBuilder() { - if (kpiListBuilder_ == null) { - kpiListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + getKpiFieldBuilder() { + if (kpiBuilder_ == null) { + kpiBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< monitoring.Monitoring.Kpi, monitoring.Monitoring.Kpi.Builder, monitoring.Monitoring.KpiOrBuilder>( - kpiList_, + kpi_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); - kpiList_ = null; + kpi_ = null; } - return kpiListBuilder_; + return kpiBuilder_; } @java.lang.Override public final Builder setUnknownFields( @@ -12198,28 +14966,19 @@ public final class Monitoring { monitoring.Monitoring.SubscriptionIDOrBuilder getSubsIdOrBuilder(); /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - java.util.List<monitoring.Monitoring.KpiList> - getKpiListList(); - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - monitoring.Monitoring.KpiList getKpiList(int index); - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> + * @return Whether the kpiList field is set. */ - int getKpiListCount(); + boolean hasKpiList(); /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> + * @return The kpiList. */ - java.util.List<? extends monitoring.Monitoring.KpiListOrBuilder> - getKpiListOrBuilderList(); + monitoring.Monitoring.KpiList getKpiList(); /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> */ - monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder( - int index); + monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder(); } /** * Protobuf type {@code monitoring.SubsResponse} @@ -12234,7 +14993,6 @@ public final class Monitoring { super(builder); } private SubsResponse() { - kpiList_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -12257,7 +15015,6 @@ public final class Monitoring { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } - int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { @@ -12282,12 +15039,16 @@ public final class Monitoring { break; } case 18: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - kpiList_ = new java.util.ArrayList<monitoring.Monitoring.KpiList>(); - mutable_bitField0_ |= 0x00000001; + monitoring.Monitoring.KpiList.Builder subBuilder = null; + if (kpiList_ != null) { + subBuilder = kpiList_.toBuilder(); + } + kpiList_ = input.readMessage(monitoring.Monitoring.KpiList.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(kpiList_); + kpiList_ = subBuilder.buildPartial(); } - kpiList_.add( - input.readMessage(monitoring.Monitoring.KpiList.parser(), extensionRegistry)); + break; } default: { @@ -12305,9 +15066,6 @@ public final class Monitoring { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - kpiList_ = java.util.Collections.unmodifiableList(kpiList_); - } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } @@ -12352,43 +15110,29 @@ public final class Monitoring { } public static final int KPI_LIST_FIELD_NUMBER = 2; - private java.util.List<monitoring.Monitoring.KpiList> kpiList_; - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - @java.lang.Override - public java.util.List<monitoring.Monitoring.KpiList> getKpiListList() { - return kpiList_; - } - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - @java.lang.Override - public java.util.List<? extends monitoring.Monitoring.KpiListOrBuilder> - getKpiListOrBuilderList() { - return kpiList_; - } + private monitoring.Monitoring.KpiList kpiList_; /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> + * @return Whether the kpiList field is set. */ @java.lang.Override - public int getKpiListCount() { - return kpiList_.size(); + public boolean hasKpiList() { + return kpiList_ != null; } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> + * @return The kpiList. */ @java.lang.Override - public monitoring.Monitoring.KpiList getKpiList(int index) { - return kpiList_.get(index); + public monitoring.Monitoring.KpiList getKpiList() { + return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_; } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> */ @java.lang.Override - public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder( - int index) { - return kpiList_.get(index); + public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder() { + return getKpiList(); } private byte memoizedIsInitialized = -1; @@ -12408,8 +15152,8 @@ public final class Monitoring { if (subsId_ != null) { output.writeMessage(1, getSubsId()); } - for (int i = 0; i < kpiList_.size(); i++) { - output.writeMessage(2, kpiList_.get(i)); + if (kpiList_ != null) { + output.writeMessage(2, getKpiList()); } unknownFields.writeTo(output); } @@ -12424,9 +15168,9 @@ public final class Monitoring { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getSubsId()); } - for (int i = 0; i < kpiList_.size(); i++) { + if (kpiList_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, kpiList_.get(i)); + .computeMessageSize(2, getKpiList()); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -12448,8 +15192,11 @@ public final class Monitoring { if (!getSubsId() .equals(other.getSubsId())) return false; } - if (!getKpiListList() - .equals(other.getKpiListList())) return false; + if (hasKpiList() != other.hasKpiList()) return false; + if (hasKpiList()) { + if (!getKpiList() + .equals(other.getKpiList())) return false; + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -12465,9 +15212,9 @@ public final class Monitoring { hash = (37 * hash) + SUBS_ID_FIELD_NUMBER; hash = (53 * hash) + getSubsId().hashCode(); } - if (getKpiListCount() > 0) { + if (hasKpiList()) { hash = (37 * hash) + KPI_LIST_FIELD_NUMBER; - hash = (53 * hash) + getKpiListList().hashCode(); + hash = (53 * hash) + getKpiList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; @@ -12597,7 +15344,6 @@ public final class Monitoring { private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { - getKpiListFieldBuilder(); } } @java.lang.Override @@ -12610,10 +15356,10 @@ public final class Monitoring { subsIdBuilder_ = null; } if (kpiListBuilder_ == null) { - kpiList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + kpiList_ = null; } else { - kpiListBuilder_.clear(); + kpiList_ = null; + kpiListBuilder_ = null; } return this; } @@ -12641,17 +15387,12 @@ public final class Monitoring { @java.lang.Override public monitoring.Monitoring.SubsResponse buildPartial() { monitoring.Monitoring.SubsResponse result = new monitoring.Monitoring.SubsResponse(this); - int from_bitField0_ = bitField0_; if (subsIdBuilder_ == null) { result.subsId_ = subsId_; } else { result.subsId_ = subsIdBuilder_.build(); } if (kpiListBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - kpiList_ = java.util.Collections.unmodifiableList(kpiList_); - bitField0_ = (bitField0_ & ~0x00000001); - } result.kpiList_ = kpiList_; } else { result.kpiList_ = kpiListBuilder_.build(); @@ -12707,31 +15448,8 @@ public final class Monitoring { if (other.hasSubsId()) { mergeSubsId(other.getSubsId()); } - if (kpiListBuilder_ == null) { - if (!other.kpiList_.isEmpty()) { - if (kpiList_.isEmpty()) { - kpiList_ = other.kpiList_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureKpiListIsMutable(); - kpiList_.addAll(other.kpiList_); - } - onChanged(); - } - } else { - if (!other.kpiList_.isEmpty()) { - if (kpiListBuilder_.isEmpty()) { - kpiListBuilder_.dispose(); - kpiListBuilder_ = null; - kpiList_ = other.kpiList_; - bitField0_ = (bitField0_ & ~0x00000001); - kpiListBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getKpiListFieldBuilder() : null; - } else { - kpiListBuilder_.addAllMessages(other.kpiList_); - } - } + if (other.hasKpiList()) { + mergeKpiList(other.getKpiList()); } this.mergeUnknownFields(other.unknownFields); onChanged(); @@ -12761,7 +15479,6 @@ public final class Monitoring { } return this; } - private int bitField0_; private monitoring.Monitoring.SubscriptionID subsId_; private com.google.protobuf.SingleFieldBuilderV3< @@ -12882,239 +15599,118 @@ public final class Monitoring { return subsIdBuilder_; } - private java.util.List<monitoring.Monitoring.KpiList> kpiList_ = - java.util.Collections.emptyList(); - private void ensureKpiListIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - kpiList_ = new java.util.ArrayList<monitoring.Monitoring.KpiList>(kpiList_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< + private monitoring.Monitoring.KpiList kpiList_; + private com.google.protobuf.SingleFieldBuilderV3< monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder> kpiListBuilder_; - - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - public java.util.List<monitoring.Monitoring.KpiList> getKpiListList() { - if (kpiListBuilder_ == null) { - return java.util.Collections.unmodifiableList(kpiList_); - } else { - return kpiListBuilder_.getMessageList(); - } - } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> + * @return Whether the kpiList field is set. */ - public int getKpiListCount() { - if (kpiListBuilder_ == null) { - return kpiList_.size(); - } else { - return kpiListBuilder_.getCount(); - } + public boolean hasKpiList() { + return kpiListBuilder_ != null || kpiList_ != null; } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> + * @return The kpiList. */ - public monitoring.Monitoring.KpiList getKpiList(int index) { + public monitoring.Monitoring.KpiList getKpiList() { if (kpiListBuilder_ == null) { - return kpiList_.get(index); + return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_; } else { - return kpiListBuilder_.getMessage(index); + return kpiListBuilder_.getMessage(); } } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> */ - public Builder setKpiList( - int index, monitoring.Monitoring.KpiList value) { + public Builder setKpiList(monitoring.Monitoring.KpiList value) { if (kpiListBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureKpiListIsMutable(); - kpiList_.set(index, value); + kpiList_ = value; onChanged(); } else { - kpiListBuilder_.setMessage(index, value); + kpiListBuilder_.setMessage(value); } + return this; } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> */ public Builder setKpiList( - int index, monitoring.Monitoring.KpiList.Builder builderForValue) { - if (kpiListBuilder_ == null) { - ensureKpiListIsMutable(); - kpiList_.set(index, builderForValue.build()); - onChanged(); - } else { - kpiListBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - public Builder addKpiList(monitoring.Monitoring.KpiList value) { - if (kpiListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureKpiListIsMutable(); - kpiList_.add(value); - onChanged(); - } else { - kpiListBuilder_.addMessage(value); - } - return this; - } - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - public Builder addKpiList( - int index, monitoring.Monitoring.KpiList value) { - if (kpiListBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureKpiListIsMutable(); - kpiList_.add(index, value); - onChanged(); - } else { - kpiListBuilder_.addMessage(index, value); - } - return this; - } - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - public Builder addKpiList( monitoring.Monitoring.KpiList.Builder builderForValue) { if (kpiListBuilder_ == null) { - ensureKpiListIsMutable(); - kpiList_.add(builderForValue.build()); - onChanged(); - } else { - kpiListBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - public Builder addKpiList( - int index, monitoring.Monitoring.KpiList.Builder builderForValue) { - if (kpiListBuilder_ == null) { - ensureKpiListIsMutable(); - kpiList_.add(index, builderForValue.build()); + kpiList_ = builderForValue.build(); onChanged(); } else { - kpiListBuilder_.addMessage(index, builderForValue.build()); + kpiListBuilder_.setMessage(builderForValue.build()); } + return this; } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> */ - public Builder addAllKpiList( - java.lang.Iterable<? extends monitoring.Monitoring.KpiList> values) { + public Builder mergeKpiList(monitoring.Monitoring.KpiList value) { if (kpiListBuilder_ == null) { - ensureKpiListIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, kpiList_); + if (kpiList_ != null) { + kpiList_ = + monitoring.Monitoring.KpiList.newBuilder(kpiList_).mergeFrom(value).buildPartial(); + } else { + kpiList_ = value; + } onChanged(); } else { - kpiListBuilder_.addAllMessages(values); + kpiListBuilder_.mergeFrom(value); } + return this; } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> */ public Builder clearKpiList() { if (kpiListBuilder_ == null) { - kpiList_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - kpiListBuilder_.clear(); - } - return this; - } - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - public Builder removeKpiList(int index) { - if (kpiListBuilder_ == null) { - ensureKpiListIsMutable(); - kpiList_.remove(index); + kpiList_ = null; onChanged(); } else { - kpiListBuilder_.remove(index); + kpiList_ = null; + kpiListBuilder_ = null; } + return this; } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - public monitoring.Monitoring.KpiList.Builder getKpiListBuilder( - int index) { - return getKpiListFieldBuilder().getBuilder(index); - } - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> */ - public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder( - int index) { - if (kpiListBuilder_ == null) { - return kpiList_.get(index); } else { - return kpiListBuilder_.getMessageOrBuilder(index); - } + public monitoring.Monitoring.KpiList.Builder getKpiListBuilder() { + + onChanged(); + return getKpiListFieldBuilder().getBuilder(); } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> */ - public java.util.List<? extends monitoring.Monitoring.KpiListOrBuilder> - getKpiListOrBuilderList() { + public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder() { if (kpiListBuilder_ != null) { - return kpiListBuilder_.getMessageOrBuilderList(); + return kpiListBuilder_.getMessageOrBuilder(); } else { - return java.util.Collections.unmodifiableList(kpiList_); + return kpiList_ == null ? + monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_; } } /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - public monitoring.Monitoring.KpiList.Builder addKpiListBuilder() { - return getKpiListFieldBuilder().addBuilder( - monitoring.Monitoring.KpiList.getDefaultInstance()); - } - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> - */ - public monitoring.Monitoring.KpiList.Builder addKpiListBuilder( - int index) { - return getKpiListFieldBuilder().addBuilder( - index, monitoring.Monitoring.KpiList.getDefaultInstance()); - } - /** - * <code>repeated .monitoring.KpiList kpi_list = 2;</code> + * <code>.monitoring.KpiList kpi_list = 2;</code> */ - public java.util.List<monitoring.Monitoring.KpiList.Builder> - getKpiListBuilderList() { - return getKpiListFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< + private com.google.protobuf.SingleFieldBuilderV3< monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder> getKpiListFieldBuilder() { if (kpiListBuilder_ == null) { - kpiListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + kpiListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder>( - kpiList_, - ((bitField0_ & 0x00000001) != 0), + getKpiList(), getParentForChildren(), isClean()); kpiList_ = null; @@ -13174,55 +15770,55 @@ public final class Monitoring { } - public interface SubsIDListOrBuilder extends - // @@protoc_insertion_point(interface_extends:monitoring.SubsIDList) + public interface SubsListOrBuilder extends + // @@protoc_insertion_point(interface_extends:monitoring.SubsList) com.google.protobuf.MessageOrBuilder { /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - java.util.List<monitoring.Monitoring.SubscriptionID> - getSubsListList(); + java.util.List<monitoring.Monitoring.SubsDescriptor> + getSubsDescriptorList(); /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - monitoring.Monitoring.SubscriptionID getSubsList(int index); + monitoring.Monitoring.SubsDescriptor getSubsDescriptor(int index); /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - int getSubsListCount(); + int getSubsDescriptorCount(); /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - java.util.List<? extends monitoring.Monitoring.SubscriptionIDOrBuilder> - getSubsListOrBuilderList(); + java.util.List<? extends monitoring.Monitoring.SubsDescriptorOrBuilder> + getSubsDescriptorOrBuilderList(); /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - monitoring.Monitoring.SubscriptionIDOrBuilder getSubsListOrBuilder( + monitoring.Monitoring.SubsDescriptorOrBuilder getSubsDescriptorOrBuilder( int index); } /** - * Protobuf type {@code monitoring.SubsIDList} + * Protobuf type {@code monitoring.SubsList} */ - public static final class SubsIDList extends + public static final class SubsList extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:monitoring.SubsIDList) - SubsIDListOrBuilder { + // @@protoc_insertion_point(message_implements:monitoring.SubsList) + SubsListOrBuilder { private static final long serialVersionUID = 0L; - // Use SubsIDList.newBuilder() to construct. - private SubsIDList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use SubsList.newBuilder() to construct. + private SubsList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private SubsIDList() { - subsList_ = java.util.Collections.emptyList(); + private SubsList() { + subsDescriptor_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { - return new SubsIDList(); + return new SubsList(); } @java.lang.Override @@ -13230,7 +15826,7 @@ public final class Monitoring { getUnknownFields() { return this.unknownFields; } - private SubsIDList( + private SubsList( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { @@ -13251,11 +15847,11 @@ public final class Monitoring { break; case 10: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { - subsList_ = new java.util.ArrayList<monitoring.Monitoring.SubscriptionID>(); + subsDescriptor_ = new java.util.ArrayList<monitoring.Monitoring.SubsDescriptor>(); mutable_bitField0_ |= 0x00000001; } - subsList_.add( - input.readMessage(monitoring.Monitoring.SubscriptionID.parser(), extensionRegistry)); + subsDescriptor_.add( + input.readMessage(monitoring.Monitoring.SubsDescriptor.parser(), extensionRegistry)); break; } default: { @@ -13274,7 +15870,7 @@ public final class Monitoring { e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000001) != 0)) { - subsList_ = java.util.Collections.unmodifiableList(subsList_); + subsDescriptor_ = java.util.Collections.unmodifiableList(subsDescriptor_); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); @@ -13282,55 +15878,55 @@ public final class Monitoring { } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return monitoring.Monitoring.internal_static_monitoring_SubsIDList_descriptor; + return monitoring.Monitoring.internal_static_monitoring_SubsList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return monitoring.Monitoring.internal_static_monitoring_SubsIDList_fieldAccessorTable + return monitoring.Monitoring.internal_static_monitoring_SubsList_fieldAccessorTable .ensureFieldAccessorsInitialized( - monitoring.Monitoring.SubsIDList.class, monitoring.Monitoring.SubsIDList.Builder.class); + monitoring.Monitoring.SubsList.class, monitoring.Monitoring.SubsList.Builder.class); } - public static final int SUBS_LIST_FIELD_NUMBER = 1; - private java.util.List<monitoring.Monitoring.SubscriptionID> subsList_; + public static final int SUBS_DESCRIPTOR_FIELD_NUMBER = 1; + private java.util.List<monitoring.Monitoring.SubsDescriptor> subsDescriptor_; /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ @java.lang.Override - public java.util.List<monitoring.Monitoring.SubscriptionID> getSubsListList() { - return subsList_; + public java.util.List<monitoring.Monitoring.SubsDescriptor> getSubsDescriptorList() { + return subsDescriptor_; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ @java.lang.Override - public java.util.List<? extends monitoring.Monitoring.SubscriptionIDOrBuilder> - getSubsListOrBuilderList() { - return subsList_; + public java.util.List<? extends monitoring.Monitoring.SubsDescriptorOrBuilder> + getSubsDescriptorOrBuilderList() { + return subsDescriptor_; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ @java.lang.Override - public int getSubsListCount() { - return subsList_.size(); + public int getSubsDescriptorCount() { + return subsDescriptor_.size(); } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ @java.lang.Override - public monitoring.Monitoring.SubscriptionID getSubsList(int index) { - return subsList_.get(index); + public monitoring.Monitoring.SubsDescriptor getSubsDescriptor(int index) { + return subsDescriptor_.get(index); } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ @java.lang.Override - public monitoring.Monitoring.SubscriptionIDOrBuilder getSubsListOrBuilder( + public monitoring.Monitoring.SubsDescriptorOrBuilder getSubsDescriptorOrBuilder( int index) { - return subsList_.get(index); + return subsDescriptor_.get(index); } private byte memoizedIsInitialized = -1; @@ -13347,8 +15943,8 @@ public final class Monitoring { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - for (int i = 0; i < subsList_.size(); i++) { - output.writeMessage(1, subsList_.get(i)); + for (int i = 0; i < subsDescriptor_.size(); i++) { + output.writeMessage(1, subsDescriptor_.get(i)); } unknownFields.writeTo(output); } @@ -13359,9 +15955,9 @@ public final class Monitoring { if (size != -1) return size; size = 0; - for (int i = 0; i < subsList_.size(); i++) { + for (int i = 0; i < subsDescriptor_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, subsList_.get(i)); + .computeMessageSize(1, subsDescriptor_.get(i)); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -13373,13 +15969,13 @@ public final class Monitoring { if (obj == this) { return true; } - if (!(obj instanceof monitoring.Monitoring.SubsIDList)) { + if (!(obj instanceof monitoring.Monitoring.SubsList)) { return super.equals(obj); } - monitoring.Monitoring.SubsIDList other = (monitoring.Monitoring.SubsIDList) obj; + monitoring.Monitoring.SubsList other = (monitoring.Monitoring.SubsList) obj; - if (!getSubsListList() - .equals(other.getSubsListList())) return false; + if (!getSubsDescriptorList() + .equals(other.getSubsDescriptorList())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -13391,78 +15987,78 @@ public final class Monitoring { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (getSubsListCount() > 0) { - hash = (37 * hash) + SUBS_LIST_FIELD_NUMBER; - hash = (53 * hash) + getSubsListList().hashCode(); + if (getSubsDescriptorCount() > 0) { + hash = (37 * hash) + SUBS_DESCRIPTOR_FIELD_NUMBER; + hash = (53 * hash) + getSubsDescriptorList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static monitoring.Monitoring.SubsIDList parseFrom( + public static monitoring.Monitoring.SubsList parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static monitoring.Monitoring.SubsIDList parseFrom( + public static monitoring.Monitoring.SubsList parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static monitoring.Monitoring.SubsIDList parseFrom( + public static monitoring.Monitoring.SubsList parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static monitoring.Monitoring.SubsIDList parseFrom( + public static monitoring.Monitoring.SubsList parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static monitoring.Monitoring.SubsIDList parseFrom(byte[] data) + public static monitoring.Monitoring.SubsList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static monitoring.Monitoring.SubsIDList parseFrom( + public static monitoring.Monitoring.SubsList parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static monitoring.Monitoring.SubsIDList parseFrom(java.io.InputStream input) + public static monitoring.Monitoring.SubsList parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static monitoring.Monitoring.SubsIDList parseFrom( + public static monitoring.Monitoring.SubsList parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static monitoring.Monitoring.SubsIDList parseDelimitedFrom(java.io.InputStream input) + public static monitoring.Monitoring.SubsList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static monitoring.Monitoring.SubsIDList parseDelimitedFrom( + public static monitoring.Monitoring.SubsList parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static monitoring.Monitoring.SubsIDList parseFrom( + public static monitoring.Monitoring.SubsList parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static monitoring.Monitoring.SubsIDList parseFrom( + public static monitoring.Monitoring.SubsList parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -13475,7 +16071,7 @@ public final class Monitoring { public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(monitoring.Monitoring.SubsIDList prototype) { + public static Builder newBuilder(monitoring.Monitoring.SubsList prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override @@ -13491,26 +16087,26 @@ public final class Monitoring { return builder; } /** - * Protobuf type {@code monitoring.SubsIDList} + * Protobuf type {@code monitoring.SubsList} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:monitoring.SubsIDList) - monitoring.Monitoring.SubsIDListOrBuilder { + // @@protoc_insertion_point(builder_implements:monitoring.SubsList) + monitoring.Monitoring.SubsListOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return monitoring.Monitoring.internal_static_monitoring_SubsIDList_descriptor; + return monitoring.Monitoring.internal_static_monitoring_SubsList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return monitoring.Monitoring.internal_static_monitoring_SubsIDList_fieldAccessorTable + return monitoring.Monitoring.internal_static_monitoring_SubsList_fieldAccessorTable .ensureFieldAccessorsInitialized( - monitoring.Monitoring.SubsIDList.class, monitoring.Monitoring.SubsIDList.Builder.class); + monitoring.Monitoring.SubsList.class, monitoring.Monitoring.SubsList.Builder.class); } - // Construct using monitoring.Monitoring.SubsIDList.newBuilder() + // Construct using monitoring.Monitoring.SubsList.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -13523,17 +16119,17 @@ public final class Monitoring { private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { - getSubsListFieldBuilder(); + getSubsDescriptorFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); - if (subsListBuilder_ == null) { - subsList_ = java.util.Collections.emptyList(); + if (subsDescriptorBuilder_ == null) { + subsDescriptor_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); } else { - subsListBuilder_.clear(); + subsDescriptorBuilder_.clear(); } return this; } @@ -13541,17 +16137,17 @@ public final class Monitoring { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return monitoring.Monitoring.internal_static_monitoring_SubsIDList_descriptor; + return monitoring.Monitoring.internal_static_monitoring_SubsList_descriptor; } @java.lang.Override - public monitoring.Monitoring.SubsIDList getDefaultInstanceForType() { - return monitoring.Monitoring.SubsIDList.getDefaultInstance(); + public monitoring.Monitoring.SubsList getDefaultInstanceForType() { + return monitoring.Monitoring.SubsList.getDefaultInstance(); } @java.lang.Override - public monitoring.Monitoring.SubsIDList build() { - monitoring.Monitoring.SubsIDList result = buildPartial(); + public monitoring.Monitoring.SubsList build() { + monitoring.Monitoring.SubsList result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -13559,17 +16155,17 @@ public final class Monitoring { } @java.lang.Override - public monitoring.Monitoring.SubsIDList buildPartial() { - monitoring.Monitoring.SubsIDList result = new monitoring.Monitoring.SubsIDList(this); + public monitoring.Monitoring.SubsList buildPartial() { + monitoring.Monitoring.SubsList result = new monitoring.Monitoring.SubsList(this); int from_bitField0_ = bitField0_; - if (subsListBuilder_ == null) { + if (subsDescriptorBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { - subsList_ = java.util.Collections.unmodifiableList(subsList_); + subsDescriptor_ = java.util.Collections.unmodifiableList(subsDescriptor_); bitField0_ = (bitField0_ & ~0x00000001); } - result.subsList_ = subsList_; + result.subsDescriptor_ = subsDescriptor_; } else { - result.subsList_ = subsListBuilder_.build(); + result.subsDescriptor_ = subsDescriptorBuilder_.build(); } onBuilt(); return result; @@ -13609,39 +16205,39 @@ public final class Monitoring { } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof monitoring.Monitoring.SubsIDList) { - return mergeFrom((monitoring.Monitoring.SubsIDList)other); + if (other instanceof monitoring.Monitoring.SubsList) { + return mergeFrom((monitoring.Monitoring.SubsList)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(monitoring.Monitoring.SubsIDList other) { - if (other == monitoring.Monitoring.SubsIDList.getDefaultInstance()) return this; - if (subsListBuilder_ == null) { - if (!other.subsList_.isEmpty()) { - if (subsList_.isEmpty()) { - subsList_ = other.subsList_; + public Builder mergeFrom(monitoring.Monitoring.SubsList other) { + if (other == monitoring.Monitoring.SubsList.getDefaultInstance()) return this; + if (subsDescriptorBuilder_ == null) { + if (!other.subsDescriptor_.isEmpty()) { + if (subsDescriptor_.isEmpty()) { + subsDescriptor_ = other.subsDescriptor_; bitField0_ = (bitField0_ & ~0x00000001); } else { - ensureSubsListIsMutable(); - subsList_.addAll(other.subsList_); + ensureSubsDescriptorIsMutable(); + subsDescriptor_.addAll(other.subsDescriptor_); } onChanged(); } } else { - if (!other.subsList_.isEmpty()) { - if (subsListBuilder_.isEmpty()) { - subsListBuilder_.dispose(); - subsListBuilder_ = null; - subsList_ = other.subsList_; + if (!other.subsDescriptor_.isEmpty()) { + if (subsDescriptorBuilder_.isEmpty()) { + subsDescriptorBuilder_.dispose(); + subsDescriptorBuilder_ = null; + subsDescriptor_ = other.subsDescriptor_; bitField0_ = (bitField0_ & ~0x00000001); - subsListBuilder_ = + subsDescriptorBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getSubsListFieldBuilder() : null; + getSubsDescriptorFieldBuilder() : null; } else { - subsListBuilder_.addAllMessages(other.subsList_); + subsDescriptorBuilder_.addAllMessages(other.subsDescriptor_); } } } @@ -13660,11 +16256,11 @@ public final class Monitoring { com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - monitoring.Monitoring.SubsIDList parsedMessage = null; + monitoring.Monitoring.SubsList parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (monitoring.Monitoring.SubsIDList) e.getUnfinishedMessage(); + parsedMessage = (monitoring.Monitoring.SubsList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -13675,244 +16271,244 @@ public final class Monitoring { } private int bitField0_; - private java.util.List<monitoring.Monitoring.SubscriptionID> subsList_ = + private java.util.List<monitoring.Monitoring.SubsDescriptor> subsDescriptor_ = java.util.Collections.emptyList(); - private void ensureSubsListIsMutable() { + private void ensureSubsDescriptorIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { - subsList_ = new java.util.ArrayList<monitoring.Monitoring.SubscriptionID>(subsList_); + subsDescriptor_ = new java.util.ArrayList<monitoring.Monitoring.SubsDescriptor>(subsDescriptor_); bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< - monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder> subsListBuilder_; + monitoring.Monitoring.SubsDescriptor, monitoring.Monitoring.SubsDescriptor.Builder, monitoring.Monitoring.SubsDescriptorOrBuilder> subsDescriptorBuilder_; /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public java.util.List<monitoring.Monitoring.SubscriptionID> getSubsListList() { - if (subsListBuilder_ == null) { - return java.util.Collections.unmodifiableList(subsList_); + public java.util.List<monitoring.Monitoring.SubsDescriptor> getSubsDescriptorList() { + if (subsDescriptorBuilder_ == null) { + return java.util.Collections.unmodifiableList(subsDescriptor_); } else { - return subsListBuilder_.getMessageList(); + return subsDescriptorBuilder_.getMessageList(); } } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public int getSubsListCount() { - if (subsListBuilder_ == null) { - return subsList_.size(); + public int getSubsDescriptorCount() { + if (subsDescriptorBuilder_ == null) { + return subsDescriptor_.size(); } else { - return subsListBuilder_.getCount(); + return subsDescriptorBuilder_.getCount(); } } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public monitoring.Monitoring.SubscriptionID getSubsList(int index) { - if (subsListBuilder_ == null) { - return subsList_.get(index); + public monitoring.Monitoring.SubsDescriptor getSubsDescriptor(int index) { + if (subsDescriptorBuilder_ == null) { + return subsDescriptor_.get(index); } else { - return subsListBuilder_.getMessage(index); + return subsDescriptorBuilder_.getMessage(index); } } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public Builder setSubsList( - int index, monitoring.Monitoring.SubscriptionID value) { - if (subsListBuilder_ == null) { + public Builder setSubsDescriptor( + int index, monitoring.Monitoring.SubsDescriptor value) { + if (subsDescriptorBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureSubsListIsMutable(); - subsList_.set(index, value); + ensureSubsDescriptorIsMutable(); + subsDescriptor_.set(index, value); onChanged(); } else { - subsListBuilder_.setMessage(index, value); + subsDescriptorBuilder_.setMessage(index, value); } return this; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public Builder setSubsList( - int index, monitoring.Monitoring.SubscriptionID.Builder builderForValue) { - if (subsListBuilder_ == null) { - ensureSubsListIsMutable(); - subsList_.set(index, builderForValue.build()); + public Builder setSubsDescriptor( + int index, monitoring.Monitoring.SubsDescriptor.Builder builderForValue) { + if (subsDescriptorBuilder_ == null) { + ensureSubsDescriptorIsMutable(); + subsDescriptor_.set(index, builderForValue.build()); onChanged(); } else { - subsListBuilder_.setMessage(index, builderForValue.build()); + subsDescriptorBuilder_.setMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public Builder addSubsList(monitoring.Monitoring.SubscriptionID value) { - if (subsListBuilder_ == null) { + public Builder addSubsDescriptor(monitoring.Monitoring.SubsDescriptor value) { + if (subsDescriptorBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureSubsListIsMutable(); - subsList_.add(value); + ensureSubsDescriptorIsMutable(); + subsDescriptor_.add(value); onChanged(); } else { - subsListBuilder_.addMessage(value); + subsDescriptorBuilder_.addMessage(value); } return this; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public Builder addSubsList( - int index, monitoring.Monitoring.SubscriptionID value) { - if (subsListBuilder_ == null) { + public Builder addSubsDescriptor( + int index, monitoring.Monitoring.SubsDescriptor value) { + if (subsDescriptorBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureSubsListIsMutable(); - subsList_.add(index, value); + ensureSubsDescriptorIsMutable(); + subsDescriptor_.add(index, value); onChanged(); } else { - subsListBuilder_.addMessage(index, value); + subsDescriptorBuilder_.addMessage(index, value); } return this; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public Builder addSubsList( - monitoring.Monitoring.SubscriptionID.Builder builderForValue) { - if (subsListBuilder_ == null) { - ensureSubsListIsMutable(); - subsList_.add(builderForValue.build()); + public Builder addSubsDescriptor( + monitoring.Monitoring.SubsDescriptor.Builder builderForValue) { + if (subsDescriptorBuilder_ == null) { + ensureSubsDescriptorIsMutable(); + subsDescriptor_.add(builderForValue.build()); onChanged(); } else { - subsListBuilder_.addMessage(builderForValue.build()); + subsDescriptorBuilder_.addMessage(builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public Builder addSubsList( - int index, monitoring.Monitoring.SubscriptionID.Builder builderForValue) { - if (subsListBuilder_ == null) { - ensureSubsListIsMutable(); - subsList_.add(index, builderForValue.build()); + public Builder addSubsDescriptor( + int index, monitoring.Monitoring.SubsDescriptor.Builder builderForValue) { + if (subsDescriptorBuilder_ == null) { + ensureSubsDescriptorIsMutable(); + subsDescriptor_.add(index, builderForValue.build()); onChanged(); } else { - subsListBuilder_.addMessage(index, builderForValue.build()); + subsDescriptorBuilder_.addMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public Builder addAllSubsList( - java.lang.Iterable<? extends monitoring.Monitoring.SubscriptionID> values) { - if (subsListBuilder_ == null) { - ensureSubsListIsMutable(); + public Builder addAllSubsDescriptor( + java.lang.Iterable<? extends monitoring.Monitoring.SubsDescriptor> values) { + if (subsDescriptorBuilder_ == null) { + ensureSubsDescriptorIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, subsList_); + values, subsDescriptor_); onChanged(); } else { - subsListBuilder_.addAllMessages(values); + subsDescriptorBuilder_.addAllMessages(values); } return this; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public Builder clearSubsList() { - if (subsListBuilder_ == null) { - subsList_ = java.util.Collections.emptyList(); + public Builder clearSubsDescriptor() { + if (subsDescriptorBuilder_ == null) { + subsDescriptor_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { - subsListBuilder_.clear(); + subsDescriptorBuilder_.clear(); } return this; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public Builder removeSubsList(int index) { - if (subsListBuilder_ == null) { - ensureSubsListIsMutable(); - subsList_.remove(index); + public Builder removeSubsDescriptor(int index) { + if (subsDescriptorBuilder_ == null) { + ensureSubsDescriptorIsMutable(); + subsDescriptor_.remove(index); onChanged(); } else { - subsListBuilder_.remove(index); + subsDescriptorBuilder_.remove(index); } return this; } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public monitoring.Monitoring.SubscriptionID.Builder getSubsListBuilder( + public monitoring.Monitoring.SubsDescriptor.Builder getSubsDescriptorBuilder( int index) { - return getSubsListFieldBuilder().getBuilder(index); + return getSubsDescriptorFieldBuilder().getBuilder(index); } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public monitoring.Monitoring.SubscriptionIDOrBuilder getSubsListOrBuilder( + public monitoring.Monitoring.SubsDescriptorOrBuilder getSubsDescriptorOrBuilder( int index) { - if (subsListBuilder_ == null) { - return subsList_.get(index); } else { - return subsListBuilder_.getMessageOrBuilder(index); + if (subsDescriptorBuilder_ == null) { + return subsDescriptor_.get(index); } else { + return subsDescriptorBuilder_.getMessageOrBuilder(index); } } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public java.util.List<? extends monitoring.Monitoring.SubscriptionIDOrBuilder> - getSubsListOrBuilderList() { - if (subsListBuilder_ != null) { - return subsListBuilder_.getMessageOrBuilderList(); + public java.util.List<? extends monitoring.Monitoring.SubsDescriptorOrBuilder> + getSubsDescriptorOrBuilderList() { + if (subsDescriptorBuilder_ != null) { + return subsDescriptorBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(subsList_); + return java.util.Collections.unmodifiableList(subsDescriptor_); } } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public monitoring.Monitoring.SubscriptionID.Builder addSubsListBuilder() { - return getSubsListFieldBuilder().addBuilder( - monitoring.Monitoring.SubscriptionID.getDefaultInstance()); + public monitoring.Monitoring.SubsDescriptor.Builder addSubsDescriptorBuilder() { + return getSubsDescriptorFieldBuilder().addBuilder( + monitoring.Monitoring.SubsDescriptor.getDefaultInstance()); } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public monitoring.Monitoring.SubscriptionID.Builder addSubsListBuilder( + public monitoring.Monitoring.SubsDescriptor.Builder addSubsDescriptorBuilder( int index) { - return getSubsListFieldBuilder().addBuilder( - index, monitoring.Monitoring.SubscriptionID.getDefaultInstance()); + return getSubsDescriptorFieldBuilder().addBuilder( + index, monitoring.Monitoring.SubsDescriptor.getDefaultInstance()); } /** - * <code>repeated .monitoring.SubscriptionID subs_list = 1;</code> + * <code>repeated .monitoring.SubsDescriptor subs_descriptor = 1;</code> */ - public java.util.List<monitoring.Monitoring.SubscriptionID.Builder> - getSubsListBuilderList() { - return getSubsListFieldBuilder().getBuilderList(); + public java.util.List<monitoring.Monitoring.SubsDescriptor.Builder> + getSubsDescriptorBuilderList() { + return getSubsDescriptorFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder> - getSubsListFieldBuilder() { - if (subsListBuilder_ == null) { - subsListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - monitoring.Monitoring.SubscriptionID, monitoring.Monitoring.SubscriptionID.Builder, monitoring.Monitoring.SubscriptionIDOrBuilder>( - subsList_, + monitoring.Monitoring.SubsDescriptor, monitoring.Monitoring.SubsDescriptor.Builder, monitoring.Monitoring.SubsDescriptorOrBuilder> + getSubsDescriptorFieldBuilder() { + if (subsDescriptorBuilder_ == null) { + subsDescriptorBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + monitoring.Monitoring.SubsDescriptor, monitoring.Monitoring.SubsDescriptor.Builder, monitoring.Monitoring.SubsDescriptorOrBuilder>( + subsDescriptor_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); - subsList_ = null; + subsDescriptor_ = null; } - return subsListBuilder_; + return subsDescriptorBuilder_; } @java.lang.Override public final Builder setUnknownFields( @@ -13927,41 +16523,41 @@ public final class Monitoring { } - // @@protoc_insertion_point(builder_scope:monitoring.SubsIDList) + // @@protoc_insertion_point(builder_scope:monitoring.SubsList) } - // @@protoc_insertion_point(class_scope:monitoring.SubsIDList) - private static final monitoring.Monitoring.SubsIDList DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:monitoring.SubsList) + private static final monitoring.Monitoring.SubsList DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new monitoring.Monitoring.SubsIDList(); + DEFAULT_INSTANCE = new monitoring.Monitoring.SubsList(); } - public static monitoring.Monitoring.SubsIDList getDefaultInstance() { + public static monitoring.Monitoring.SubsList getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<SubsIDList> - PARSER = new com.google.protobuf.AbstractParser<SubsIDList>() { + private static final com.google.protobuf.Parser<SubsList> + PARSER = new com.google.protobuf.AbstractParser<SubsList>() { @java.lang.Override - public SubsIDList parsePartialFrom( + public SubsList parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new SubsIDList(input, extensionRegistry); + return new SubsList(input, extensionRegistry); } }; - public static com.google.protobuf.Parser<SubsIDList> parser() { + public static com.google.protobuf.Parser<SubsList> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<SubsIDList> getParserForType() { + public com.google.protobuf.Parser<SubsList> getParserForType() { return PARSER; } @java.lang.Override - public monitoring.Monitoring.SubsIDList getDefaultInstanceForType() { + public monitoring.Monitoring.SubsList getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -14011,52 +16607,34 @@ public final class Monitoring { getNameBytes(); /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - java.util.List<monitoring.Monitoring.KpiId> - getKpiIdList(); - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - monitoring.Monitoring.KpiId getKpiId(int index); - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> + * @return Whether the kpiId field is set. */ - int getKpiIdCount(); + boolean hasKpiId(); /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> + * @return The kpiId. */ - java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> - getKpiIdOrBuilderList(); + monitoring.Monitoring.KpiId getKpiId(); /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> */ - monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder( - int index); + monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder(); /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - java.util.List<monitoring.Monitoring.KpiValueRange> - getKpiValueRangeList(); - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> + * @return Whether the kpiValueRange field is set. */ - monitoring.Monitoring.KpiValueRange getKpiValueRange(int index); + boolean hasKpiValueRange(); /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> + * @return The kpiValueRange. */ - int getKpiValueRangeCount(); + monitoring.Monitoring.KpiValueRange getKpiValueRange(); /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> */ - java.util.List<? extends monitoring.Monitoring.KpiValueRangeOrBuilder> - getKpiValueRangeOrBuilderList(); - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder( - int index); + monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder(); /** * <code>.context.Timestamp timestamp = 6;</code> @@ -14088,8 +16666,6 @@ public final class Monitoring { private AlarmDescriptor() { alarmDescription_ = ""; name_ = ""; - kpiId_ = java.util.Collections.emptyList(); - kpiValueRange_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -14112,7 +16688,6 @@ public final class Monitoring { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } - int mutable_bitField0_ = 0; com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); try { @@ -14149,21 +16724,29 @@ public final class Monitoring { break; } case 34: { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - kpiId_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>(); - mutable_bitField0_ |= 0x00000001; + monitoring.Monitoring.KpiId.Builder subBuilder = null; + if (kpiId_ != null) { + subBuilder = kpiId_.toBuilder(); } - kpiId_.add( - input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry)); + kpiId_ = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(kpiId_); + kpiId_ = subBuilder.buildPartial(); + } + break; } case 42: { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - kpiValueRange_ = new java.util.ArrayList<monitoring.Monitoring.KpiValueRange>(); - mutable_bitField0_ |= 0x00000002; + monitoring.Monitoring.KpiValueRange.Builder subBuilder = null; + if (kpiValueRange_ != null) { + subBuilder = kpiValueRange_.toBuilder(); } - kpiValueRange_.add( - input.readMessage(monitoring.Monitoring.KpiValueRange.parser(), extensionRegistry)); + kpiValueRange_ = input.readMessage(monitoring.Monitoring.KpiValueRange.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(kpiValueRange_); + kpiValueRange_ = subBuilder.buildPartial(); + } + break; } case 50: { @@ -14194,12 +16777,6 @@ public final class Monitoring { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - kpiId_ = java.util.Collections.unmodifiableList(kpiId_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - kpiValueRange_ = java.util.Collections.unmodifiableList(kpiValueRange_); - } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } @@ -14319,84 +16896,56 @@ public final class Monitoring { } } - public static final int KPI_ID_FIELD_NUMBER = 4; - private java.util.List<monitoring.Monitoring.KpiId> kpiId_; - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - @java.lang.Override - public java.util.List<monitoring.Monitoring.KpiId> getKpiIdList() { - return kpiId_; - } - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - @java.lang.Override - public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> - getKpiIdOrBuilderList() { - return kpiId_; - } + public static final int KPI_ID_FIELD_NUMBER = 4; + private monitoring.Monitoring.KpiId kpiId_; /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> + * @return Whether the kpiId field is set. */ @java.lang.Override - public int getKpiIdCount() { - return kpiId_.size(); + public boolean hasKpiId() { + return kpiId_ != null; } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> + * @return The kpiId. */ @java.lang.Override - public monitoring.Monitoring.KpiId getKpiId(int index) { - return kpiId_.get(index); + public monitoring.Monitoring.KpiId getKpiId() { + return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> */ @java.lang.Override - public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder( - int index) { - return kpiId_.get(index); + public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() { + return getKpiId(); } public static final int KPI_VALUE_RANGE_FIELD_NUMBER = 5; - private java.util.List<monitoring.Monitoring.KpiValueRange> kpiValueRange_; - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - @java.lang.Override - public java.util.List<monitoring.Monitoring.KpiValueRange> getKpiValueRangeList() { - return kpiValueRange_; - } - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - @java.lang.Override - public java.util.List<? extends monitoring.Monitoring.KpiValueRangeOrBuilder> - getKpiValueRangeOrBuilderList() { - return kpiValueRange_; - } + private monitoring.Monitoring.KpiValueRange kpiValueRange_; /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> + * @return Whether the kpiValueRange field is set. */ @java.lang.Override - public int getKpiValueRangeCount() { - return kpiValueRange_.size(); + public boolean hasKpiValueRange() { + return kpiValueRange_ != null; } /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> + * @return The kpiValueRange. */ @java.lang.Override - public monitoring.Monitoring.KpiValueRange getKpiValueRange(int index) { - return kpiValueRange_.get(index); + public monitoring.Monitoring.KpiValueRange getKpiValueRange() { + return kpiValueRange_ == null ? monitoring.Monitoring.KpiValueRange.getDefaultInstance() : kpiValueRange_; } /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> */ @java.lang.Override - public monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder( - int index) { - return kpiValueRange_.get(index); + public monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder() { + return getKpiValueRange(); } public static final int TIMESTAMP_FIELD_NUMBER = 6; @@ -14448,11 +16997,11 @@ public final class Monitoring { if (!getNameBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_); } - for (int i = 0; i < kpiId_.size(); i++) { - output.writeMessage(4, kpiId_.get(i)); + if (kpiId_ != null) { + output.writeMessage(4, getKpiId()); } - for (int i = 0; i < kpiValueRange_.size(); i++) { - output.writeMessage(5, kpiValueRange_.get(i)); + if (kpiValueRange_ != null) { + output.writeMessage(5, getKpiValueRange()); } if (timestamp_ != null) { output.writeMessage(6, getTimestamp()); @@ -14476,13 +17025,13 @@ public final class Monitoring { if (!getNameBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_); } - for (int i = 0; i < kpiId_.size(); i++) { + if (kpiId_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, kpiId_.get(i)); + .computeMessageSize(4, getKpiId()); } - for (int i = 0; i < kpiValueRange_.size(); i++) { + if (kpiValueRange_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, kpiValueRange_.get(i)); + .computeMessageSize(5, getKpiValueRange()); } if (timestamp_ != null) { size += com.google.protobuf.CodedOutputStream @@ -14512,10 +17061,16 @@ public final class Monitoring { .equals(other.getAlarmDescription())) return false; if (!getName() .equals(other.getName())) return false; - if (!getKpiIdList() - .equals(other.getKpiIdList())) return false; - if (!getKpiValueRangeList() - .equals(other.getKpiValueRangeList())) return false; + if (hasKpiId() != other.hasKpiId()) return false; + if (hasKpiId()) { + if (!getKpiId() + .equals(other.getKpiId())) return false; + } + if (hasKpiValueRange() != other.hasKpiValueRange()) return false; + if (hasKpiValueRange()) { + if (!getKpiValueRange() + .equals(other.getKpiValueRange())) return false; + } if (hasTimestamp() != other.hasTimestamp()) return false; if (hasTimestamp()) { if (!getTimestamp() @@ -14540,13 +17095,13 @@ public final class Monitoring { hash = (53 * hash) + getAlarmDescription().hashCode(); hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); - if (getKpiIdCount() > 0) { + if (hasKpiId()) { hash = (37 * hash) + KPI_ID_FIELD_NUMBER; - hash = (53 * hash) + getKpiIdList().hashCode(); + hash = (53 * hash) + getKpiId().hashCode(); } - if (getKpiValueRangeCount() > 0) { + if (hasKpiValueRange()) { hash = (37 * hash) + KPI_VALUE_RANGE_FIELD_NUMBER; - hash = (53 * hash) + getKpiValueRangeList().hashCode(); + hash = (53 * hash) + getKpiValueRange().hashCode(); } if (hasTimestamp()) { hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; @@ -14680,8 +17235,6 @@ public final class Monitoring { private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { - getKpiIdFieldBuilder(); - getKpiValueRangeFieldBuilder(); } } @java.lang.Override @@ -14698,16 +17251,16 @@ public final class Monitoring { name_ = ""; if (kpiIdBuilder_ == null) { - kpiId_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + kpiId_ = null; } else { - kpiIdBuilder_.clear(); + kpiId_ = null; + kpiIdBuilder_ = null; } if (kpiValueRangeBuilder_ == null) { - kpiValueRange_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + kpiValueRange_ = null; } else { - kpiValueRangeBuilder_.clear(); + kpiValueRange_ = null; + kpiValueRangeBuilder_ = null; } if (timestampBuilder_ == null) { timestamp_ = null; @@ -14741,7 +17294,6 @@ public final class Monitoring { @java.lang.Override public monitoring.Monitoring.AlarmDescriptor buildPartial() { monitoring.Monitoring.AlarmDescriptor result = new monitoring.Monitoring.AlarmDescriptor(this); - int from_bitField0_ = bitField0_; if (alarmIdBuilder_ == null) { result.alarmId_ = alarmId_; } else { @@ -14750,19 +17302,11 @@ public final class Monitoring { result.alarmDescription_ = alarmDescription_; result.name_ = name_; if (kpiIdBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - kpiId_ = java.util.Collections.unmodifiableList(kpiId_); - bitField0_ = (bitField0_ & ~0x00000001); - } result.kpiId_ = kpiId_; } else { result.kpiId_ = kpiIdBuilder_.build(); } if (kpiValueRangeBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { - kpiValueRange_ = java.util.Collections.unmodifiableList(kpiValueRange_); - bitField0_ = (bitField0_ & ~0x00000002); - } result.kpiValueRange_ = kpiValueRange_; } else { result.kpiValueRange_ = kpiValueRangeBuilder_.build(); @@ -14831,57 +17375,11 @@ public final class Monitoring { name_ = other.name_; onChanged(); } - if (kpiIdBuilder_ == null) { - if (!other.kpiId_.isEmpty()) { - if (kpiId_.isEmpty()) { - kpiId_ = other.kpiId_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureKpiIdIsMutable(); - kpiId_.addAll(other.kpiId_); - } - onChanged(); - } - } else { - if (!other.kpiId_.isEmpty()) { - if (kpiIdBuilder_.isEmpty()) { - kpiIdBuilder_.dispose(); - kpiIdBuilder_ = null; - kpiId_ = other.kpiId_; - bitField0_ = (bitField0_ & ~0x00000001); - kpiIdBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getKpiIdFieldBuilder() : null; - } else { - kpiIdBuilder_.addAllMessages(other.kpiId_); - } - } + if (other.hasKpiId()) { + mergeKpiId(other.getKpiId()); } - if (kpiValueRangeBuilder_ == null) { - if (!other.kpiValueRange_.isEmpty()) { - if (kpiValueRange_.isEmpty()) { - kpiValueRange_ = other.kpiValueRange_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureKpiValueRangeIsMutable(); - kpiValueRange_.addAll(other.kpiValueRange_); - } - onChanged(); - } - } else { - if (!other.kpiValueRange_.isEmpty()) { - if (kpiValueRangeBuilder_.isEmpty()) { - kpiValueRangeBuilder_.dispose(); - kpiValueRangeBuilder_ = null; - kpiValueRange_ = other.kpiValueRange_; - bitField0_ = (bitField0_ & ~0x00000002); - kpiValueRangeBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getKpiValueRangeFieldBuilder() : null; - } else { - kpiValueRangeBuilder_.addAllMessages(other.kpiValueRange_); - } - } + if (other.hasKpiValueRange()) { + mergeKpiValueRange(other.getKpiValueRange()); } if (other.hasTimestamp()) { mergeTimestamp(other.getTimestamp()); @@ -14914,7 +17412,6 @@ public final class Monitoring { } return this; } - private int bitField0_; private monitoring.Monitoring.AlarmID alarmId_; private com.google.protobuf.SingleFieldBuilderV3< @@ -15187,239 +17684,118 @@ public final class Monitoring { return this; } - private java.util.List<monitoring.Monitoring.KpiId> kpiId_ = - java.util.Collections.emptyList(); - private void ensureKpiIdIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - kpiId_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>(kpiId_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< + private monitoring.Monitoring.KpiId kpiId_; + private com.google.protobuf.SingleFieldBuilderV3< monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_; - - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - public java.util.List<monitoring.Monitoring.KpiId> getKpiIdList() { - if (kpiIdBuilder_ == null) { - return java.util.Collections.unmodifiableList(kpiId_); - } else { - return kpiIdBuilder_.getMessageList(); - } - } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> + * @return Whether the kpiId field is set. */ - public int getKpiIdCount() { - if (kpiIdBuilder_ == null) { - return kpiId_.size(); - } else { - return kpiIdBuilder_.getCount(); - } + public boolean hasKpiId() { + return kpiIdBuilder_ != null || kpiId_ != null; } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> + * @return The kpiId. */ - public monitoring.Monitoring.KpiId getKpiId(int index) { + public monitoring.Monitoring.KpiId getKpiId() { if (kpiIdBuilder_ == null) { - return kpiId_.get(index); + return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; } else { - return kpiIdBuilder_.getMessage(index); + return kpiIdBuilder_.getMessage(); } } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> */ - public Builder setKpiId( - int index, monitoring.Monitoring.KpiId value) { + public Builder setKpiId(monitoring.Monitoring.KpiId value) { if (kpiIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureKpiIdIsMutable(); - kpiId_.set(index, value); + kpiId_ = value; onChanged(); } else { - kpiIdBuilder_.setMessage(index, value); + kpiIdBuilder_.setMessage(value); } + return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> */ public Builder setKpiId( - int index, monitoring.Monitoring.KpiId.Builder builderForValue) { - if (kpiIdBuilder_ == null) { - ensureKpiIdIsMutable(); - kpiId_.set(index, builderForValue.build()); - onChanged(); - } else { - kpiIdBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - public Builder addKpiId(monitoring.Monitoring.KpiId value) { - if (kpiIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureKpiIdIsMutable(); - kpiId_.add(value); - onChanged(); - } else { - kpiIdBuilder_.addMessage(value); - } - return this; - } - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - public Builder addKpiId( - int index, monitoring.Monitoring.KpiId value) { - if (kpiIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureKpiIdIsMutable(); - kpiId_.add(index, value); - onChanged(); - } else { - kpiIdBuilder_.addMessage(index, value); - } - return this; - } - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - public Builder addKpiId( monitoring.Monitoring.KpiId.Builder builderForValue) { if (kpiIdBuilder_ == null) { - ensureKpiIdIsMutable(); - kpiId_.add(builderForValue.build()); - onChanged(); - } else { - kpiIdBuilder_.addMessage(builderForValue.build()); - } - return this; - } - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - public Builder addKpiId( - int index, monitoring.Monitoring.KpiId.Builder builderForValue) { - if (kpiIdBuilder_ == null) { - ensureKpiIdIsMutable(); - kpiId_.add(index, builderForValue.build()); + kpiId_ = builderForValue.build(); onChanged(); } else { - kpiIdBuilder_.addMessage(index, builderForValue.build()); + kpiIdBuilder_.setMessage(builderForValue.build()); } + return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> */ - public Builder addAllKpiId( - java.lang.Iterable<? extends monitoring.Monitoring.KpiId> values) { + public Builder mergeKpiId(monitoring.Monitoring.KpiId value) { if (kpiIdBuilder_ == null) { - ensureKpiIdIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, kpiId_); + if (kpiId_ != null) { + kpiId_ = + monitoring.Monitoring.KpiId.newBuilder(kpiId_).mergeFrom(value).buildPartial(); + } else { + kpiId_ = value; + } onChanged(); } else { - kpiIdBuilder_.addAllMessages(values); + kpiIdBuilder_.mergeFrom(value); } + return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> */ public Builder clearKpiId() { if (kpiIdBuilder_ == null) { - kpiId_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - kpiIdBuilder_.clear(); - } - return this; - } - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - public Builder removeKpiId(int index) { - if (kpiIdBuilder_ == null) { - ensureKpiIdIsMutable(); - kpiId_.remove(index); + kpiId_ = null; onChanged(); } else { - kpiIdBuilder_.remove(index); + kpiId_ = null; + kpiIdBuilder_ = null; } + return this; } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder( - int index) { - return getKpiIdFieldBuilder().getBuilder(index); - } - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> */ - public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder( - int index) { - if (kpiIdBuilder_ == null) { - return kpiId_.get(index); } else { - return kpiIdBuilder_.getMessageOrBuilder(index); - } + public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() { + + onChanged(); + return getKpiIdFieldBuilder().getBuilder(); } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> */ - public java.util.List<? extends monitoring.Monitoring.KpiIdOrBuilder> - getKpiIdOrBuilderList() { + public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() { if (kpiIdBuilder_ != null) { - return kpiIdBuilder_.getMessageOrBuilderList(); + return kpiIdBuilder_.getMessageOrBuilder(); } else { - return java.util.Collections.unmodifiableList(kpiId_); + return kpiId_ == null ? + monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; } } /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - public monitoring.Monitoring.KpiId.Builder addKpiIdBuilder() { - return getKpiIdFieldBuilder().addBuilder( - monitoring.Monitoring.KpiId.getDefaultInstance()); - } - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> - */ - public monitoring.Monitoring.KpiId.Builder addKpiIdBuilder( - int index) { - return getKpiIdFieldBuilder().addBuilder( - index, monitoring.Monitoring.KpiId.getDefaultInstance()); - } - /** - * <code>repeated .monitoring.KpiId kpi_id = 4;</code> + * <code>.monitoring.KpiId kpi_id = 4;</code> */ - public java.util.List<monitoring.Monitoring.KpiId.Builder> - getKpiIdBuilderList() { - return getKpiIdFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< + private com.google.protobuf.SingleFieldBuilderV3< monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdFieldBuilder() { if (kpiIdBuilder_ == null) { - kpiIdBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + kpiIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder>( - kpiId_, - ((bitField0_ & 0x00000001) != 0), + getKpiId(), getParentForChildren(), isClean()); kpiId_ = null; @@ -15427,239 +17803,118 @@ public final class Monitoring { return kpiIdBuilder_; } - private java.util.List<monitoring.Monitoring.KpiValueRange> kpiValueRange_ = - java.util.Collections.emptyList(); - private void ensureKpiValueRangeIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - kpiValueRange_ = new java.util.ArrayList<monitoring.Monitoring.KpiValueRange>(kpiValueRange_); - bitField0_ |= 0x00000002; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - monitoring.Monitoring.KpiValueRange, monitoring.Monitoring.KpiValueRange.Builder, monitoring.Monitoring.KpiValueRangeOrBuilder> kpiValueRangeBuilder_; - - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - public java.util.List<monitoring.Monitoring.KpiValueRange> getKpiValueRangeList() { - if (kpiValueRangeBuilder_ == null) { - return java.util.Collections.unmodifiableList(kpiValueRange_); - } else { - return kpiValueRangeBuilder_.getMessageList(); - } - } - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - public int getKpiValueRangeCount() { - if (kpiValueRangeBuilder_ == null) { - return kpiValueRange_.size(); - } else { - return kpiValueRangeBuilder_.getCount(); - } - } - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - public monitoring.Monitoring.KpiValueRange getKpiValueRange(int index) { - if (kpiValueRangeBuilder_ == null) { - return kpiValueRange_.get(index); - } else { - return kpiValueRangeBuilder_.getMessage(index); - } - } - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - public Builder setKpiValueRange( - int index, monitoring.Monitoring.KpiValueRange value) { - if (kpiValueRangeBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureKpiValueRangeIsMutable(); - kpiValueRange_.set(index, value); - onChanged(); - } else { - kpiValueRangeBuilder_.setMessage(index, value); - } - return this; - } - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - public Builder setKpiValueRange( - int index, monitoring.Monitoring.KpiValueRange.Builder builderForValue) { - if (kpiValueRangeBuilder_ == null) { - ensureKpiValueRangeIsMutable(); - kpiValueRange_.set(index, builderForValue.build()); - onChanged(); - } else { - kpiValueRangeBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - public Builder addKpiValueRange(monitoring.Monitoring.KpiValueRange value) { - if (kpiValueRangeBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureKpiValueRangeIsMutable(); - kpiValueRange_.add(value); - onChanged(); - } else { - kpiValueRangeBuilder_.addMessage(value); - } - return this; - } + private monitoring.Monitoring.KpiValueRange kpiValueRange_; + private com.google.protobuf.SingleFieldBuilderV3< + monitoring.Monitoring.KpiValueRange, monitoring.Monitoring.KpiValueRange.Builder, monitoring.Monitoring.KpiValueRangeOrBuilder> kpiValueRangeBuilder_; /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> + * @return Whether the kpiValueRange field is set. */ - public Builder addKpiValueRange( - int index, monitoring.Monitoring.KpiValueRange value) { - if (kpiValueRangeBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureKpiValueRangeIsMutable(); - kpiValueRange_.add(index, value); - onChanged(); - } else { - kpiValueRangeBuilder_.addMessage(index, value); - } - return this; + public boolean hasKpiValueRange() { + return kpiValueRangeBuilder_ != null || kpiValueRange_ != null; } /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> + * @return The kpiValueRange. */ - public Builder addKpiValueRange( - monitoring.Monitoring.KpiValueRange.Builder builderForValue) { + public monitoring.Monitoring.KpiValueRange getKpiValueRange() { if (kpiValueRangeBuilder_ == null) { - ensureKpiValueRangeIsMutable(); - kpiValueRange_.add(builderForValue.build()); - onChanged(); + return kpiValueRange_ == null ? monitoring.Monitoring.KpiValueRange.getDefaultInstance() : kpiValueRange_; } else { - kpiValueRangeBuilder_.addMessage(builderForValue.build()); + return kpiValueRangeBuilder_.getMessage(); } - return this; } /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> */ - public Builder addKpiValueRange( - int index, monitoring.Monitoring.KpiValueRange.Builder builderForValue) { + public Builder setKpiValueRange(monitoring.Monitoring.KpiValueRange value) { if (kpiValueRangeBuilder_ == null) { - ensureKpiValueRangeIsMutable(); - kpiValueRange_.add(index, builderForValue.build()); + if (value == null) { + throw new NullPointerException(); + } + kpiValueRange_ = value; onChanged(); } else { - kpiValueRangeBuilder_.addMessage(index, builderForValue.build()); + kpiValueRangeBuilder_.setMessage(value); } + return this; } /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> */ - public Builder addAllKpiValueRange( - java.lang.Iterable<? extends monitoring.Monitoring.KpiValueRange> values) { + public Builder setKpiValueRange( + monitoring.Monitoring.KpiValueRange.Builder builderForValue) { if (kpiValueRangeBuilder_ == null) { - ensureKpiValueRangeIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, kpiValueRange_); + kpiValueRange_ = builderForValue.build(); onChanged(); } else { - kpiValueRangeBuilder_.addAllMessages(values); + kpiValueRangeBuilder_.setMessage(builderForValue.build()); } + return this; } /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> */ - public Builder clearKpiValueRange() { + public Builder mergeKpiValueRange(monitoring.Monitoring.KpiValueRange value) { if (kpiValueRangeBuilder_ == null) { - kpiValueRange_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + if (kpiValueRange_ != null) { + kpiValueRange_ = + monitoring.Monitoring.KpiValueRange.newBuilder(kpiValueRange_).mergeFrom(value).buildPartial(); + } else { + kpiValueRange_ = value; + } onChanged(); } else { - kpiValueRangeBuilder_.clear(); + kpiValueRangeBuilder_.mergeFrom(value); } + return this; } /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> */ - public Builder removeKpiValueRange(int index) { + public Builder clearKpiValueRange() { if (kpiValueRangeBuilder_ == null) { - ensureKpiValueRangeIsMutable(); - kpiValueRange_.remove(index); + kpiValueRange_ = null; onChanged(); } else { - kpiValueRangeBuilder_.remove(index); + kpiValueRange_ = null; + kpiValueRangeBuilder_ = null; } + return this; } /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - public monitoring.Monitoring.KpiValueRange.Builder getKpiValueRangeBuilder( - int index) { - return getKpiValueRangeFieldBuilder().getBuilder(index); - } - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> */ - public monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder( - int index) { - if (kpiValueRangeBuilder_ == null) { - return kpiValueRange_.get(index); } else { - return kpiValueRangeBuilder_.getMessageOrBuilder(index); - } + public monitoring.Monitoring.KpiValueRange.Builder getKpiValueRangeBuilder() { + + onChanged(); + return getKpiValueRangeFieldBuilder().getBuilder(); } /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> */ - public java.util.List<? extends monitoring.Monitoring.KpiValueRangeOrBuilder> - getKpiValueRangeOrBuilderList() { + public monitoring.Monitoring.KpiValueRangeOrBuilder getKpiValueRangeOrBuilder() { if (kpiValueRangeBuilder_ != null) { - return kpiValueRangeBuilder_.getMessageOrBuilderList(); + return kpiValueRangeBuilder_.getMessageOrBuilder(); } else { - return java.util.Collections.unmodifiableList(kpiValueRange_); + return kpiValueRange_ == null ? + monitoring.Monitoring.KpiValueRange.getDefaultInstance() : kpiValueRange_; } } /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - public monitoring.Monitoring.KpiValueRange.Builder addKpiValueRangeBuilder() { - return getKpiValueRangeFieldBuilder().addBuilder( - monitoring.Monitoring.KpiValueRange.getDefaultInstance()); - } - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> + * <code>.monitoring.KpiValueRange kpi_value_range = 5;</code> */ - public monitoring.Monitoring.KpiValueRange.Builder addKpiValueRangeBuilder( - int index) { - return getKpiValueRangeFieldBuilder().addBuilder( - index, monitoring.Monitoring.KpiValueRange.getDefaultInstance()); - } - /** - * <code>repeated .monitoring.KpiValueRange kpi_value_range = 5;</code> - */ - public java.util.List<monitoring.Monitoring.KpiValueRange.Builder> - getKpiValueRangeBuilderList() { - return getKpiValueRangeFieldBuilder().getBuilderList(); - } - private com.google.protobuf.RepeatedFieldBuilderV3< + private com.google.protobuf.SingleFieldBuilderV3< monitoring.Monitoring.KpiValueRange, monitoring.Monitoring.KpiValueRange.Builder, monitoring.Monitoring.KpiValueRangeOrBuilder> getKpiValueRangeFieldBuilder() { if (kpiValueRangeBuilder_ == null) { - kpiValueRangeBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + kpiValueRangeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< monitoring.Monitoring.KpiValueRange, monitoring.Monitoring.KpiValueRange.Builder, monitoring.Monitoring.KpiValueRangeOrBuilder>( - kpiValueRange_, - ((bitField0_ & 0x00000002) != 0), + getKpiValueRange(), getParentForChildren(), isClean()); kpiValueRange_ = null; @@ -16464,19 +18719,19 @@ public final class Monitoring { com.google.protobuf.MessageOrBuilder { /** - * <code>.monitoring.AlarmID alarmID = 1;</code> - * @return Whether the alarmID field is set. + * <code>.monitoring.AlarmID alarm_id = 1;</code> + * @return Whether the alarmId field is set. */ - boolean hasAlarmID(); + boolean hasAlarmId(); /** - * <code>.monitoring.AlarmID alarmID = 1;</code> - * @return The alarmID. + * <code>.monitoring.AlarmID alarm_id = 1;</code> + * @return The alarmId. */ - monitoring.Monitoring.AlarmID getAlarmID(); + monitoring.Monitoring.AlarmID getAlarmId(); /** - * <code>.monitoring.AlarmID alarmID = 1;</code> + * <code>.monitoring.AlarmID alarm_id = 1;</code> */ - monitoring.Monitoring.AlarmIDOrBuilder getAlarmIDOrBuilder(); + monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder(); /** * <code>float subscription_timeout_s = 2;</code> @@ -16537,13 +18792,13 @@ public final class Monitoring { break; case 10: { monitoring.Monitoring.AlarmID.Builder subBuilder = null; - if (alarmID_ != null) { - subBuilder = alarmID_.toBuilder(); + if (alarmId_ != null) { + subBuilder = alarmId_.toBuilder(); } - alarmID_ = input.readMessage(monitoring.Monitoring.AlarmID.parser(), extensionRegistry); + alarmId_ = input.readMessage(monitoring.Monitoring.AlarmID.parser(), extensionRegistry); if (subBuilder != null) { - subBuilder.mergeFrom(alarmID_); - alarmID_ = subBuilder.buildPartial(); + subBuilder.mergeFrom(alarmId_); + alarmId_ = subBuilder.buildPartial(); } break; @@ -16590,30 +18845,30 @@ public final class Monitoring { monitoring.Monitoring.AlarmSubscription.class, monitoring.Monitoring.AlarmSubscription.Builder.class); } - public static final int ALARMID_FIELD_NUMBER = 1; - private monitoring.Monitoring.AlarmID alarmID_; + public static final int ALARM_ID_FIELD_NUMBER = 1; + private monitoring.Monitoring.AlarmID alarmId_; /** - * <code>.monitoring.AlarmID alarmID = 1;</code> - * @return Whether the alarmID field is set. + * <code>.monitoring.AlarmID alarm_id = 1;</code> + * @return Whether the alarmId field is set. */ @java.lang.Override - public boolean hasAlarmID() { - return alarmID_ != null; + public boolean hasAlarmId() { + return alarmId_ != null; } /** - * <code>.monitoring.AlarmID alarmID = 1;</code> - * @return The alarmID. + * <code>.monitoring.AlarmID alarm_id = 1;</code> + * @return The alarmId. */ @java.lang.Override - public monitoring.Monitoring.AlarmID getAlarmID() { - return alarmID_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmID_; + public monitoring.Monitoring.AlarmID getAlarmId() { + return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_; } /** - * <code>.monitoring.AlarmID alarmID = 1;</code> + * <code>.monitoring.AlarmID alarm_id = 1;</code> */ @java.lang.Override - public monitoring.Monitoring.AlarmIDOrBuilder getAlarmIDOrBuilder() { - return getAlarmID(); + public monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder() { + return getAlarmId(); } public static final int SUBSCRIPTION_TIMEOUT_S_FIELD_NUMBER = 2; @@ -16652,8 +18907,8 @@ public final class Monitoring { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (alarmID_ != null) { - output.writeMessage(1, getAlarmID()); + if (alarmId_ != null) { + output.writeMessage(1, getAlarmId()); } if (subscriptionTimeoutS_ != 0F) { output.writeFloat(2, subscriptionTimeoutS_); @@ -16670,9 +18925,9 @@ public final class Monitoring { if (size != -1) return size; size = 0; - if (alarmID_ != null) { + if (alarmId_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getAlarmID()); + .computeMessageSize(1, getAlarmId()); } if (subscriptionTimeoutS_ != 0F) { size += com.google.protobuf.CodedOutputStream @@ -16697,10 +18952,10 @@ public final class Monitoring { } monitoring.Monitoring.AlarmSubscription other = (monitoring.Monitoring.AlarmSubscription) obj; - if (hasAlarmID() != other.hasAlarmID()) return false; - if (hasAlarmID()) { - if (!getAlarmID() - .equals(other.getAlarmID())) return false; + if (hasAlarmId() != other.hasAlarmId()) return false; + if (hasAlarmId()) { + if (!getAlarmId() + .equals(other.getAlarmId())) return false; } if (java.lang.Float.floatToIntBits(getSubscriptionTimeoutS()) != java.lang.Float.floatToIntBits( @@ -16719,9 +18974,9 @@ public final class Monitoring { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (hasAlarmID()) { - hash = (37 * hash) + ALARMID_FIELD_NUMBER; - hash = (53 * hash) + getAlarmID().hashCode(); + if (hasAlarmId()) { + hash = (37 * hash) + ALARM_ID_FIELD_NUMBER; + hash = (53 * hash) + getAlarmId().hashCode(); } hash = (37 * hash) + SUBSCRIPTION_TIMEOUT_S_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits( @@ -16862,11 +19117,11 @@ public final class Monitoring { @java.lang.Override public Builder clear() { super.clear(); - if (alarmIDBuilder_ == null) { - alarmID_ = null; + if (alarmIdBuilder_ == null) { + alarmId_ = null; } else { - alarmID_ = null; - alarmIDBuilder_ = null; + alarmId_ = null; + alarmIdBuilder_ = null; } subscriptionTimeoutS_ = 0F; @@ -16898,10 +19153,10 @@ public final class Monitoring { @java.lang.Override public monitoring.Monitoring.AlarmSubscription buildPartial() { monitoring.Monitoring.AlarmSubscription result = new monitoring.Monitoring.AlarmSubscription(this); - if (alarmIDBuilder_ == null) { - result.alarmID_ = alarmID_; + if (alarmIdBuilder_ == null) { + result.alarmId_ = alarmId_; } else { - result.alarmID_ = alarmIDBuilder_.build(); + result.alarmId_ = alarmIdBuilder_.build(); } result.subscriptionTimeoutS_ = subscriptionTimeoutS_; result.subscriptionFrequencyMs_ = subscriptionFrequencyMs_; @@ -16953,8 +19208,8 @@ public final class Monitoring { public Builder mergeFrom(monitoring.Monitoring.AlarmSubscription other) { if (other == monitoring.Monitoring.AlarmSubscription.getDefaultInstance()) return this; - if (other.hasAlarmID()) { - mergeAlarmID(other.getAlarmID()); + if (other.hasAlarmId()) { + mergeAlarmId(other.getAlarmId()); } if (other.getSubscriptionTimeoutS() != 0F) { setSubscriptionTimeoutS(other.getSubscriptionTimeoutS()); @@ -16991,123 +19246,123 @@ public final class Monitoring { return this; } - private monitoring.Monitoring.AlarmID alarmID_; + private monitoring.Monitoring.AlarmID alarmId_; private com.google.protobuf.SingleFieldBuilderV3< - monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> alarmIDBuilder_; + monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> alarmIdBuilder_; /** - * <code>.monitoring.AlarmID alarmID = 1;</code> - * @return Whether the alarmID field is set. + * <code>.monitoring.AlarmID alarm_id = 1;</code> + * @return Whether the alarmId field is set. */ - public boolean hasAlarmID() { - return alarmIDBuilder_ != null || alarmID_ != null; + public boolean hasAlarmId() { + return alarmIdBuilder_ != null || alarmId_ != null; } /** - * <code>.monitoring.AlarmID alarmID = 1;</code> - * @return The alarmID. + * <code>.monitoring.AlarmID alarm_id = 1;</code> + * @return The alarmId. */ - public monitoring.Monitoring.AlarmID getAlarmID() { - if (alarmIDBuilder_ == null) { - return alarmID_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmID_; + public monitoring.Monitoring.AlarmID getAlarmId() { + if (alarmIdBuilder_ == null) { + return alarmId_ == null ? monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_; } else { - return alarmIDBuilder_.getMessage(); + return alarmIdBuilder_.getMessage(); } } /** - * <code>.monitoring.AlarmID alarmID = 1;</code> + * <code>.monitoring.AlarmID alarm_id = 1;</code> */ - public Builder setAlarmID(monitoring.Monitoring.AlarmID value) { - if (alarmIDBuilder_ == null) { + public Builder setAlarmId(monitoring.Monitoring.AlarmID value) { + if (alarmIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - alarmID_ = value; + alarmId_ = value; onChanged(); } else { - alarmIDBuilder_.setMessage(value); + alarmIdBuilder_.setMessage(value); } return this; } /** - * <code>.monitoring.AlarmID alarmID = 1;</code> + * <code>.monitoring.AlarmID alarm_id = 1;</code> */ - public Builder setAlarmID( + public Builder setAlarmId( monitoring.Monitoring.AlarmID.Builder builderForValue) { - if (alarmIDBuilder_ == null) { - alarmID_ = builderForValue.build(); + if (alarmIdBuilder_ == null) { + alarmId_ = builderForValue.build(); onChanged(); } else { - alarmIDBuilder_.setMessage(builderForValue.build()); + alarmIdBuilder_.setMessage(builderForValue.build()); } return this; } /** - * <code>.monitoring.AlarmID alarmID = 1;</code> + * <code>.monitoring.AlarmID alarm_id = 1;</code> */ - public Builder mergeAlarmID(monitoring.Monitoring.AlarmID value) { - if (alarmIDBuilder_ == null) { - if (alarmID_ != null) { - alarmID_ = - monitoring.Monitoring.AlarmID.newBuilder(alarmID_).mergeFrom(value).buildPartial(); + public Builder mergeAlarmId(monitoring.Monitoring.AlarmID value) { + if (alarmIdBuilder_ == null) { + if (alarmId_ != null) { + alarmId_ = + monitoring.Monitoring.AlarmID.newBuilder(alarmId_).mergeFrom(value).buildPartial(); } else { - alarmID_ = value; + alarmId_ = value; } onChanged(); } else { - alarmIDBuilder_.mergeFrom(value); + alarmIdBuilder_.mergeFrom(value); } return this; } /** - * <code>.monitoring.AlarmID alarmID = 1;</code> + * <code>.monitoring.AlarmID alarm_id = 1;</code> */ - public Builder clearAlarmID() { - if (alarmIDBuilder_ == null) { - alarmID_ = null; + public Builder clearAlarmId() { + if (alarmIdBuilder_ == null) { + alarmId_ = null; onChanged(); } else { - alarmID_ = null; - alarmIDBuilder_ = null; + alarmId_ = null; + alarmIdBuilder_ = null; } return this; } /** - * <code>.monitoring.AlarmID alarmID = 1;</code> + * <code>.monitoring.AlarmID alarm_id = 1;</code> */ - public monitoring.Monitoring.AlarmID.Builder getAlarmIDBuilder() { + public monitoring.Monitoring.AlarmID.Builder getAlarmIdBuilder() { onChanged(); - return getAlarmIDFieldBuilder().getBuilder(); + return getAlarmIdFieldBuilder().getBuilder(); } /** - * <code>.monitoring.AlarmID alarmID = 1;</code> + * <code>.monitoring.AlarmID alarm_id = 1;</code> */ - public monitoring.Monitoring.AlarmIDOrBuilder getAlarmIDOrBuilder() { - if (alarmIDBuilder_ != null) { - return alarmIDBuilder_.getMessageOrBuilder(); + public monitoring.Monitoring.AlarmIDOrBuilder getAlarmIdOrBuilder() { + if (alarmIdBuilder_ != null) { + return alarmIdBuilder_.getMessageOrBuilder(); } else { - return alarmID_ == null ? - monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmID_; + return alarmId_ == null ? + monitoring.Monitoring.AlarmID.getDefaultInstance() : alarmId_; } } /** - * <code>.monitoring.AlarmID alarmID = 1;</code> + * <code>.monitoring.AlarmID alarm_id = 1;</code> */ private com.google.protobuf.SingleFieldBuilderV3< monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> - getAlarmIDFieldBuilder() { - if (alarmIDBuilder_ == null) { - alarmIDBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + getAlarmIdFieldBuilder() { + if (alarmIdBuilder_ == null) { + alarmIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder>( - getAlarmID(), + getAlarmId(), getParentForChildren(), isClean()); - alarmID_ = null; + alarmId_ = null; } - return alarmIDBuilder_; + return alarmIdBuilder_; } private float subscriptionTimeoutS_ ; @@ -17256,34 +19511,19 @@ public final class Monitoring { getTextBytes(); /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - * @return Whether the kpiValue field is set. - */ - boolean hasKpiValue(); - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - * @return The kpiValue. - */ - monitoring.Monitoring.KpiValue getKpiValue(); - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - */ - monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder(); - - /** - * <code>.context.Timestamp timestamp = 4;</code> - * @return Whether the timestamp field is set. + * <code>.monitoring.KpiList kpi_list = 3;</code> + * @return Whether the kpiList field is set. */ - boolean hasTimestamp(); + boolean hasKpiList(); /** - * <code>.context.Timestamp timestamp = 4;</code> - * @return The timestamp. + * <code>.monitoring.KpiList kpi_list = 3;</code> + * @return The kpiList. */ - context.ContextOuterClass.Timestamp getTimestamp(); + monitoring.Monitoring.KpiList getKpiList(); /** - * <code>.context.Timestamp timestamp = 4;</code> + * <code>.monitoring.KpiList kpi_list = 3;</code> */ - context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder(); + monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder(); } /** * Protobuf type {@code monitoring.AlarmResponse} @@ -17351,27 +19591,14 @@ public final class Monitoring { break; } case 26: { - monitoring.Monitoring.KpiValue.Builder subBuilder = null; - if (kpiValue_ != null) { - subBuilder = kpiValue_.toBuilder(); - } - kpiValue_ = input.readMessage(monitoring.Monitoring.KpiValue.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(kpiValue_); - kpiValue_ = subBuilder.buildPartial(); - } - - break; - } - case 34: { - context.ContextOuterClass.Timestamp.Builder subBuilder = null; - if (timestamp_ != null) { - subBuilder = timestamp_.toBuilder(); + monitoring.Monitoring.KpiList.Builder subBuilder = null; + if (kpiList_ != null) { + subBuilder = kpiList_.toBuilder(); } - timestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry); + kpiList_ = input.readMessage(monitoring.Monitoring.KpiList.parser(), extensionRegistry); if (subBuilder != null) { - subBuilder.mergeFrom(timestamp_); - timestamp_ = subBuilder.buildPartial(); + subBuilder.mergeFrom(kpiList_); + kpiList_ = subBuilder.buildPartial(); } break; @@ -17472,56 +19699,30 @@ public final class Monitoring { } } - public static final int KPI_VALUE_FIELD_NUMBER = 3; - private monitoring.Monitoring.KpiValue kpiValue_; - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - * @return Whether the kpiValue field is set. - */ - @java.lang.Override - public boolean hasKpiValue() { - return kpiValue_ != null; - } - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - * @return The kpiValue. - */ - @java.lang.Override - public monitoring.Monitoring.KpiValue getKpiValue() { - return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_; - } - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - */ - @java.lang.Override - public monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder() { - return getKpiValue(); - } - - public static final int TIMESTAMP_FIELD_NUMBER = 4; - private context.ContextOuterClass.Timestamp timestamp_; + public static final int KPI_LIST_FIELD_NUMBER = 3; + private monitoring.Monitoring.KpiList kpiList_; /** - * <code>.context.Timestamp timestamp = 4;</code> - * @return Whether the timestamp field is set. + * <code>.monitoring.KpiList kpi_list = 3;</code> + * @return Whether the kpiList field is set. */ @java.lang.Override - public boolean hasTimestamp() { - return timestamp_ != null; + public boolean hasKpiList() { + return kpiList_ != null; } /** - * <code>.context.Timestamp timestamp = 4;</code> - * @return The timestamp. + * <code>.monitoring.KpiList kpi_list = 3;</code> + * @return The kpiList. */ @java.lang.Override - public context.ContextOuterClass.Timestamp getTimestamp() { - return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + public monitoring.Monitoring.KpiList getKpiList() { + return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_; } /** - * <code>.context.Timestamp timestamp = 4;</code> + * <code>.monitoring.KpiList kpi_list = 3;</code> */ @java.lang.Override - public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { - return getTimestamp(); + public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder() { + return getKpiList(); } private byte memoizedIsInitialized = -1; @@ -17544,11 +19745,8 @@ public final class Monitoring { if (!getTextBytes().isEmpty()) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, text_); } - if (kpiValue_ != null) { - output.writeMessage(3, getKpiValue()); - } - if (timestamp_ != null) { - output.writeMessage(4, getTimestamp()); + if (kpiList_ != null) { + output.writeMessage(3, getKpiList()); } unknownFields.writeTo(output); } @@ -17566,13 +19764,9 @@ public final class Monitoring { if (!getTextBytes().isEmpty()) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, text_); } - if (kpiValue_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, getKpiValue()); - } - if (timestamp_ != null) { + if (kpiList_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, getTimestamp()); + .computeMessageSize(3, getKpiList()); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -17596,15 +19790,10 @@ public final class Monitoring { } if (!getText() .equals(other.getText())) return false; - if (hasKpiValue() != other.hasKpiValue()) return false; - if (hasKpiValue()) { - if (!getKpiValue() - .equals(other.getKpiValue())) return false; - } - if (hasTimestamp() != other.hasTimestamp()) return false; - if (hasTimestamp()) { - if (!getTimestamp() - .equals(other.getTimestamp())) return false; + if (hasKpiList() != other.hasKpiList()) return false; + if (hasKpiList()) { + if (!getKpiList() + .equals(other.getKpiList())) return false; } if (!unknownFields.equals(other.unknownFields)) return false; return true; @@ -17623,13 +19812,9 @@ public final class Monitoring { } hash = (37 * hash) + TEXT_FIELD_NUMBER; hash = (53 * hash) + getText().hashCode(); - if (hasKpiValue()) { - hash = (37 * hash) + KPI_VALUE_FIELD_NUMBER; - hash = (53 * hash) + getKpiValue().hashCode(); - } - if (hasTimestamp()) { - hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + getTimestamp().hashCode(); + if (hasKpiList()) { + hash = (37 * hash) + KPI_LIST_FIELD_NUMBER; + hash = (53 * hash) + getKpiList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; @@ -17766,23 +19951,17 @@ public final class Monitoring { super.clear(); if (alarmIdBuilder_ == null) { alarmId_ = null; - } else { - alarmId_ = null; - alarmIdBuilder_ = null; - } - text_ = ""; - - if (kpiValueBuilder_ == null) { - kpiValue_ = null; - } else { - kpiValue_ = null; - kpiValueBuilder_ = null; + } else { + alarmId_ = null; + alarmIdBuilder_ = null; } - if (timestampBuilder_ == null) { - timestamp_ = null; + text_ = ""; + + if (kpiListBuilder_ == null) { + kpiList_ = null; } else { - timestamp_ = null; - timestampBuilder_ = null; + kpiList_ = null; + kpiListBuilder_ = null; } return this; } @@ -17816,15 +19995,10 @@ public final class Monitoring { result.alarmId_ = alarmIdBuilder_.build(); } result.text_ = text_; - if (kpiValueBuilder_ == null) { - result.kpiValue_ = kpiValue_; - } else { - result.kpiValue_ = kpiValueBuilder_.build(); - } - if (timestampBuilder_ == null) { - result.timestamp_ = timestamp_; + if (kpiListBuilder_ == null) { + result.kpiList_ = kpiList_; } else { - result.timestamp_ = timestampBuilder_.build(); + result.kpiList_ = kpiListBuilder_.build(); } onBuilt(); return result; @@ -17881,11 +20055,8 @@ public final class Monitoring { text_ = other.text_; onChanged(); } - if (other.hasKpiValue()) { - mergeKpiValue(other.getKpiValue()); - } - if (other.hasTimestamp()) { - mergeTimestamp(other.getTimestamp()); + if (other.hasKpiList()) { + mergeKpiList(other.getKpiList()); } this.mergeUnknownFields(other.unknownFields); onChanged(); @@ -18111,242 +20282,123 @@ public final class Monitoring { return this; } - private monitoring.Monitoring.KpiValue kpiValue_; - private com.google.protobuf.SingleFieldBuilderV3< - monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> kpiValueBuilder_; - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - * @return Whether the kpiValue field is set. - */ - public boolean hasKpiValue() { - return kpiValueBuilder_ != null || kpiValue_ != null; - } - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - * @return The kpiValue. - */ - public monitoring.Monitoring.KpiValue getKpiValue() { - if (kpiValueBuilder_ == null) { - return kpiValue_ == null ? monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_; - } else { - return kpiValueBuilder_.getMessage(); - } - } - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - */ - public Builder setKpiValue(monitoring.Monitoring.KpiValue value) { - if (kpiValueBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - kpiValue_ = value; - onChanged(); - } else { - kpiValueBuilder_.setMessage(value); - } - - return this; - } - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - */ - public Builder setKpiValue( - monitoring.Monitoring.KpiValue.Builder builderForValue) { - if (kpiValueBuilder_ == null) { - kpiValue_ = builderForValue.build(); - onChanged(); - } else { - kpiValueBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - */ - public Builder mergeKpiValue(monitoring.Monitoring.KpiValue value) { - if (kpiValueBuilder_ == null) { - if (kpiValue_ != null) { - kpiValue_ = - monitoring.Monitoring.KpiValue.newBuilder(kpiValue_).mergeFrom(value).buildPartial(); - } else { - kpiValue_ = value; - } - onChanged(); - } else { - kpiValueBuilder_.mergeFrom(value); - } - - return this; - } - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - */ - public Builder clearKpiValue() { - if (kpiValueBuilder_ == null) { - kpiValue_ = null; - onChanged(); - } else { - kpiValue_ = null; - kpiValueBuilder_ = null; - } - - return this; - } - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - */ - public monitoring.Monitoring.KpiValue.Builder getKpiValueBuilder() { - - onChanged(); - return getKpiValueFieldBuilder().getBuilder(); - } - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - */ - public monitoring.Monitoring.KpiValueOrBuilder getKpiValueOrBuilder() { - if (kpiValueBuilder_ != null) { - return kpiValueBuilder_.getMessageOrBuilder(); - } else { - return kpiValue_ == null ? - monitoring.Monitoring.KpiValue.getDefaultInstance() : kpiValue_; - } - } - /** - * <code>.monitoring.KpiValue kpi_value = 3;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3< - monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder> - getKpiValueFieldBuilder() { - if (kpiValueBuilder_ == null) { - kpiValueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - monitoring.Monitoring.KpiValue, monitoring.Monitoring.KpiValue.Builder, monitoring.Monitoring.KpiValueOrBuilder>( - getKpiValue(), - getParentForChildren(), - isClean()); - kpiValue_ = null; - } - return kpiValueBuilder_; - } - - private context.ContextOuterClass.Timestamp timestamp_; + private monitoring.Monitoring.KpiList kpiList_; private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> timestampBuilder_; + monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder> kpiListBuilder_; /** - * <code>.context.Timestamp timestamp = 4;</code> - * @return Whether the timestamp field is set. + * <code>.monitoring.KpiList kpi_list = 3;</code> + * @return Whether the kpiList field is set. */ - public boolean hasTimestamp() { - return timestampBuilder_ != null || timestamp_ != null; + public boolean hasKpiList() { + return kpiListBuilder_ != null || kpiList_ != null; } /** - * <code>.context.Timestamp timestamp = 4;</code> - * @return The timestamp. + * <code>.monitoring.KpiList kpi_list = 3;</code> + * @return The kpiList. */ - public context.ContextOuterClass.Timestamp getTimestamp() { - if (timestampBuilder_ == null) { - return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + public monitoring.Monitoring.KpiList getKpiList() { + if (kpiListBuilder_ == null) { + return kpiList_ == null ? monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_; } else { - return timestampBuilder_.getMessage(); + return kpiListBuilder_.getMessage(); } } /** - * <code>.context.Timestamp timestamp = 4;</code> + * <code>.monitoring.KpiList kpi_list = 3;</code> */ - public Builder setTimestamp(context.ContextOuterClass.Timestamp value) { - if (timestampBuilder_ == null) { + public Builder setKpiList(monitoring.Monitoring.KpiList value) { + if (kpiListBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - timestamp_ = value; + kpiList_ = value; onChanged(); } else { - timestampBuilder_.setMessage(value); + kpiListBuilder_.setMessage(value); } return this; } /** - * <code>.context.Timestamp timestamp = 4;</code> + * <code>.monitoring.KpiList kpi_list = 3;</code> */ - public Builder setTimestamp( - context.ContextOuterClass.Timestamp.Builder builderForValue) { - if (timestampBuilder_ == null) { - timestamp_ = builderForValue.build(); + public Builder setKpiList( + monitoring.Monitoring.KpiList.Builder builderForValue) { + if (kpiListBuilder_ == null) { + kpiList_ = builderForValue.build(); onChanged(); } else { - timestampBuilder_.setMessage(builderForValue.build()); + kpiListBuilder_.setMessage(builderForValue.build()); } return this; } /** - * <code>.context.Timestamp timestamp = 4;</code> + * <code>.monitoring.KpiList kpi_list = 3;</code> */ - public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) { - if (timestampBuilder_ == null) { - if (timestamp_ != null) { - timestamp_ = - context.ContextOuterClass.Timestamp.newBuilder(timestamp_).mergeFrom(value).buildPartial(); + public Builder mergeKpiList(monitoring.Monitoring.KpiList value) { + if (kpiListBuilder_ == null) { + if (kpiList_ != null) { + kpiList_ = + monitoring.Monitoring.KpiList.newBuilder(kpiList_).mergeFrom(value).buildPartial(); } else { - timestamp_ = value; + kpiList_ = value; } onChanged(); } else { - timestampBuilder_.mergeFrom(value); + kpiListBuilder_.mergeFrom(value); } return this; } /** - * <code>.context.Timestamp timestamp = 4;</code> + * <code>.monitoring.KpiList kpi_list = 3;</code> */ - public Builder clearTimestamp() { - if (timestampBuilder_ == null) { - timestamp_ = null; + public Builder clearKpiList() { + if (kpiListBuilder_ == null) { + kpiList_ = null; onChanged(); } else { - timestamp_ = null; - timestampBuilder_ = null; + kpiList_ = null; + kpiListBuilder_ = null; } return this; } /** - * <code>.context.Timestamp timestamp = 4;</code> + * <code>.monitoring.KpiList kpi_list = 3;</code> */ - public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() { + public monitoring.Monitoring.KpiList.Builder getKpiListBuilder() { onChanged(); - return getTimestampFieldBuilder().getBuilder(); + return getKpiListFieldBuilder().getBuilder(); } /** - * <code>.context.Timestamp timestamp = 4;</code> + * <code>.monitoring.KpiList kpi_list = 3;</code> */ - public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { - if (timestampBuilder_ != null) { - return timestampBuilder_.getMessageOrBuilder(); + public monitoring.Monitoring.KpiListOrBuilder getKpiListOrBuilder() { + if (kpiListBuilder_ != null) { + return kpiListBuilder_.getMessageOrBuilder(); } else { - return timestamp_ == null ? - context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; + return kpiList_ == null ? + monitoring.Monitoring.KpiList.getDefaultInstance() : kpiList_; } } /** - * <code>.context.Timestamp timestamp = 4;</code> + * <code>.monitoring.KpiList kpi_list = 3;</code> */ private com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> - getTimestampFieldBuilder() { - if (timestampBuilder_ == null) { - timestampBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder>( - getTimestamp(), + monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder> + getKpiListFieldBuilder() { + if (kpiListBuilder_ == null) { + kpiListBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + monitoring.Monitoring.KpiList, monitoring.Monitoring.KpiList.Builder, monitoring.Monitoring.KpiListOrBuilder>( + getKpiList(), getParentForChildren(), isClean()); - timestamp_ = null; + kpiList_ = null; } - return timestampBuilder_; + return kpiListBuilder_; } @java.lang.Override public final Builder setUnknownFields( @@ -18401,55 +20453,55 @@ public final class Monitoring { } - public interface AlarmIDListOrBuilder extends - // @@protoc_insertion_point(interface_extends:monitoring.AlarmIDList) + public interface AlarmListOrBuilder extends + // @@protoc_insertion_point(interface_extends:monitoring.AlarmList) com.google.protobuf.MessageOrBuilder { /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - java.util.List<monitoring.Monitoring.AlarmID> - getAlarmListList(); + java.util.List<monitoring.Monitoring.AlarmDescriptor> + getAlarmDescriptorList(); /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - monitoring.Monitoring.AlarmID getAlarmList(int index); + monitoring.Monitoring.AlarmDescriptor getAlarmDescriptor(int index); /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - int getAlarmListCount(); + int getAlarmDescriptorCount(); /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - java.util.List<? extends monitoring.Monitoring.AlarmIDOrBuilder> - getAlarmListOrBuilderList(); + java.util.List<? extends monitoring.Monitoring.AlarmDescriptorOrBuilder> + getAlarmDescriptorOrBuilderList(); /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - monitoring.Monitoring.AlarmIDOrBuilder getAlarmListOrBuilder( + monitoring.Monitoring.AlarmDescriptorOrBuilder getAlarmDescriptorOrBuilder( int index); } /** - * Protobuf type {@code monitoring.AlarmIDList} + * Protobuf type {@code monitoring.AlarmList} */ - public static final class AlarmIDList extends + public static final class AlarmList extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:monitoring.AlarmIDList) - AlarmIDListOrBuilder { + // @@protoc_insertion_point(message_implements:monitoring.AlarmList) + AlarmListOrBuilder { private static final long serialVersionUID = 0L; - // Use AlarmIDList.newBuilder() to construct. - private AlarmIDList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use AlarmList.newBuilder() to construct. + private AlarmList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private AlarmIDList() { - alarmList_ = java.util.Collections.emptyList(); + private AlarmList() { + alarmDescriptor_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { - return new AlarmIDList(); + return new AlarmList(); } @java.lang.Override @@ -18457,7 +20509,7 @@ public final class Monitoring { getUnknownFields() { return this.unknownFields; } - private AlarmIDList( + private AlarmList( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { @@ -18478,11 +20530,11 @@ public final class Monitoring { break; case 10: { if (!((mutable_bitField0_ & 0x00000001) != 0)) { - alarmList_ = new java.util.ArrayList<monitoring.Monitoring.AlarmID>(); + alarmDescriptor_ = new java.util.ArrayList<monitoring.Monitoring.AlarmDescriptor>(); mutable_bitField0_ |= 0x00000001; } - alarmList_.add( - input.readMessage(monitoring.Monitoring.AlarmID.parser(), extensionRegistry)); + alarmDescriptor_.add( + input.readMessage(monitoring.Monitoring.AlarmDescriptor.parser(), extensionRegistry)); break; } default: { @@ -18501,7 +20553,7 @@ public final class Monitoring { e).setUnfinishedMessage(this); } finally { if (((mutable_bitField0_ & 0x00000001) != 0)) { - alarmList_ = java.util.Collections.unmodifiableList(alarmList_); + alarmDescriptor_ = java.util.Collections.unmodifiableList(alarmDescriptor_); } this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); @@ -18509,55 +20561,55 @@ public final class Monitoring { } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return monitoring.Monitoring.internal_static_monitoring_AlarmIDList_descriptor; + return monitoring.Monitoring.internal_static_monitoring_AlarmList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return monitoring.Monitoring.internal_static_monitoring_AlarmIDList_fieldAccessorTable + return monitoring.Monitoring.internal_static_monitoring_AlarmList_fieldAccessorTable .ensureFieldAccessorsInitialized( - monitoring.Monitoring.AlarmIDList.class, monitoring.Monitoring.AlarmIDList.Builder.class); + monitoring.Monitoring.AlarmList.class, monitoring.Monitoring.AlarmList.Builder.class); } - public static final int ALARM_LIST_FIELD_NUMBER = 1; - private java.util.List<monitoring.Monitoring.AlarmID> alarmList_; + public static final int ALARM_DESCRIPTOR_FIELD_NUMBER = 1; + private java.util.List<monitoring.Monitoring.AlarmDescriptor> alarmDescriptor_; /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ @java.lang.Override - public java.util.List<monitoring.Monitoring.AlarmID> getAlarmListList() { - return alarmList_; + public java.util.List<monitoring.Monitoring.AlarmDescriptor> getAlarmDescriptorList() { + return alarmDescriptor_; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ @java.lang.Override - public java.util.List<? extends monitoring.Monitoring.AlarmIDOrBuilder> - getAlarmListOrBuilderList() { - return alarmList_; + public java.util.List<? extends monitoring.Monitoring.AlarmDescriptorOrBuilder> + getAlarmDescriptorOrBuilderList() { + return alarmDescriptor_; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ @java.lang.Override - public int getAlarmListCount() { - return alarmList_.size(); + public int getAlarmDescriptorCount() { + return alarmDescriptor_.size(); } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ @java.lang.Override - public monitoring.Monitoring.AlarmID getAlarmList(int index) { - return alarmList_.get(index); + public monitoring.Monitoring.AlarmDescriptor getAlarmDescriptor(int index) { + return alarmDescriptor_.get(index); } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ @java.lang.Override - public monitoring.Monitoring.AlarmIDOrBuilder getAlarmListOrBuilder( + public monitoring.Monitoring.AlarmDescriptorOrBuilder getAlarmDescriptorOrBuilder( int index) { - return alarmList_.get(index); + return alarmDescriptor_.get(index); } private byte memoizedIsInitialized = -1; @@ -18574,8 +20626,8 @@ public final class Monitoring { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - for (int i = 0; i < alarmList_.size(); i++) { - output.writeMessage(1, alarmList_.get(i)); + for (int i = 0; i < alarmDescriptor_.size(); i++) { + output.writeMessage(1, alarmDescriptor_.get(i)); } unknownFields.writeTo(output); } @@ -18586,9 +20638,9 @@ public final class Monitoring { if (size != -1) return size; size = 0; - for (int i = 0; i < alarmList_.size(); i++) { + for (int i = 0; i < alarmDescriptor_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, alarmList_.get(i)); + .computeMessageSize(1, alarmDescriptor_.get(i)); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -18600,13 +20652,13 @@ public final class Monitoring { if (obj == this) { return true; } - if (!(obj instanceof monitoring.Monitoring.AlarmIDList)) { + if (!(obj instanceof monitoring.Monitoring.AlarmList)) { return super.equals(obj); } - monitoring.Monitoring.AlarmIDList other = (monitoring.Monitoring.AlarmIDList) obj; + monitoring.Monitoring.AlarmList other = (monitoring.Monitoring.AlarmList) obj; - if (!getAlarmListList() - .equals(other.getAlarmListList())) return false; + if (!getAlarmDescriptorList() + .equals(other.getAlarmDescriptorList())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -18618,78 +20670,78 @@ public final class Monitoring { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (getAlarmListCount() > 0) { - hash = (37 * hash) + ALARM_LIST_FIELD_NUMBER; - hash = (53 * hash) + getAlarmListList().hashCode(); + if (getAlarmDescriptorCount() > 0) { + hash = (37 * hash) + ALARM_DESCRIPTOR_FIELD_NUMBER; + hash = (53 * hash) + getAlarmDescriptorList().hashCode(); } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static monitoring.Monitoring.AlarmIDList parseFrom( + public static monitoring.Monitoring.AlarmList parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static monitoring.Monitoring.AlarmIDList parseFrom( + public static monitoring.Monitoring.AlarmList parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static monitoring.Monitoring.AlarmIDList parseFrom( + public static monitoring.Monitoring.AlarmList parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static monitoring.Monitoring.AlarmIDList parseFrom( + public static monitoring.Monitoring.AlarmList parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static monitoring.Monitoring.AlarmIDList parseFrom(byte[] data) + public static monitoring.Monitoring.AlarmList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static monitoring.Monitoring.AlarmIDList parseFrom( + public static monitoring.Monitoring.AlarmList parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static monitoring.Monitoring.AlarmIDList parseFrom(java.io.InputStream input) + public static monitoring.Monitoring.AlarmList parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static monitoring.Monitoring.AlarmIDList parseFrom( + public static monitoring.Monitoring.AlarmList parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static monitoring.Monitoring.AlarmIDList parseDelimitedFrom(java.io.InputStream input) + public static monitoring.Monitoring.AlarmList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static monitoring.Monitoring.AlarmIDList parseDelimitedFrom( + public static monitoring.Monitoring.AlarmList parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static monitoring.Monitoring.AlarmIDList parseFrom( + public static monitoring.Monitoring.AlarmList parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static monitoring.Monitoring.AlarmIDList parseFrom( + public static monitoring.Monitoring.AlarmList parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -18702,7 +20754,7 @@ public final class Monitoring { public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(monitoring.Monitoring.AlarmIDList prototype) { + public static Builder newBuilder(monitoring.Monitoring.AlarmList prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override @@ -18718,26 +20770,26 @@ public final class Monitoring { return builder; } /** - * Protobuf type {@code monitoring.AlarmIDList} + * Protobuf type {@code monitoring.AlarmList} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements - // @@protoc_insertion_point(builder_implements:monitoring.AlarmIDList) - monitoring.Monitoring.AlarmIDListOrBuilder { + // @@protoc_insertion_point(builder_implements:monitoring.AlarmList) + monitoring.Monitoring.AlarmListOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return monitoring.Monitoring.internal_static_monitoring_AlarmIDList_descriptor; + return monitoring.Monitoring.internal_static_monitoring_AlarmList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return monitoring.Monitoring.internal_static_monitoring_AlarmIDList_fieldAccessorTable + return monitoring.Monitoring.internal_static_monitoring_AlarmList_fieldAccessorTable .ensureFieldAccessorsInitialized( - monitoring.Monitoring.AlarmIDList.class, monitoring.Monitoring.AlarmIDList.Builder.class); + monitoring.Monitoring.AlarmList.class, monitoring.Monitoring.AlarmList.Builder.class); } - // Construct using monitoring.Monitoring.AlarmIDList.newBuilder() + // Construct using monitoring.Monitoring.AlarmList.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -18750,17 +20802,17 @@ public final class Monitoring { private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { - getAlarmListFieldBuilder(); + getAlarmDescriptorFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); - if (alarmListBuilder_ == null) { - alarmList_ = java.util.Collections.emptyList(); + if (alarmDescriptorBuilder_ == null) { + alarmDescriptor_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); } else { - alarmListBuilder_.clear(); + alarmDescriptorBuilder_.clear(); } return this; } @@ -18768,17 +20820,17 @@ public final class Monitoring { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return monitoring.Monitoring.internal_static_monitoring_AlarmIDList_descriptor; + return monitoring.Monitoring.internal_static_monitoring_AlarmList_descriptor; } @java.lang.Override - public monitoring.Monitoring.AlarmIDList getDefaultInstanceForType() { - return monitoring.Monitoring.AlarmIDList.getDefaultInstance(); + public monitoring.Monitoring.AlarmList getDefaultInstanceForType() { + return monitoring.Monitoring.AlarmList.getDefaultInstance(); } @java.lang.Override - public monitoring.Monitoring.AlarmIDList build() { - monitoring.Monitoring.AlarmIDList result = buildPartial(); + public monitoring.Monitoring.AlarmList build() { + monitoring.Monitoring.AlarmList result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -18786,17 +20838,17 @@ public final class Monitoring { } @java.lang.Override - public monitoring.Monitoring.AlarmIDList buildPartial() { - monitoring.Monitoring.AlarmIDList result = new monitoring.Monitoring.AlarmIDList(this); + public monitoring.Monitoring.AlarmList buildPartial() { + monitoring.Monitoring.AlarmList result = new monitoring.Monitoring.AlarmList(this); int from_bitField0_ = bitField0_; - if (alarmListBuilder_ == null) { + if (alarmDescriptorBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { - alarmList_ = java.util.Collections.unmodifiableList(alarmList_); + alarmDescriptor_ = java.util.Collections.unmodifiableList(alarmDescriptor_); bitField0_ = (bitField0_ & ~0x00000001); } - result.alarmList_ = alarmList_; + result.alarmDescriptor_ = alarmDescriptor_; } else { - result.alarmList_ = alarmListBuilder_.build(); + result.alarmDescriptor_ = alarmDescriptorBuilder_.build(); } onBuilt(); return result; @@ -18836,39 +20888,39 @@ public final class Monitoring { } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof monitoring.Monitoring.AlarmIDList) { - return mergeFrom((monitoring.Monitoring.AlarmIDList)other); + if (other instanceof monitoring.Monitoring.AlarmList) { + return mergeFrom((monitoring.Monitoring.AlarmList)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(monitoring.Monitoring.AlarmIDList other) { - if (other == monitoring.Monitoring.AlarmIDList.getDefaultInstance()) return this; - if (alarmListBuilder_ == null) { - if (!other.alarmList_.isEmpty()) { - if (alarmList_.isEmpty()) { - alarmList_ = other.alarmList_; + public Builder mergeFrom(monitoring.Monitoring.AlarmList other) { + if (other == monitoring.Monitoring.AlarmList.getDefaultInstance()) return this; + if (alarmDescriptorBuilder_ == null) { + if (!other.alarmDescriptor_.isEmpty()) { + if (alarmDescriptor_.isEmpty()) { + alarmDescriptor_ = other.alarmDescriptor_; bitField0_ = (bitField0_ & ~0x00000001); } else { - ensureAlarmListIsMutable(); - alarmList_.addAll(other.alarmList_); + ensureAlarmDescriptorIsMutable(); + alarmDescriptor_.addAll(other.alarmDescriptor_); } onChanged(); } } else { - if (!other.alarmList_.isEmpty()) { - if (alarmListBuilder_.isEmpty()) { - alarmListBuilder_.dispose(); - alarmListBuilder_ = null; - alarmList_ = other.alarmList_; + if (!other.alarmDescriptor_.isEmpty()) { + if (alarmDescriptorBuilder_.isEmpty()) { + alarmDescriptorBuilder_.dispose(); + alarmDescriptorBuilder_ = null; + alarmDescriptor_ = other.alarmDescriptor_; bitField0_ = (bitField0_ & ~0x00000001); - alarmListBuilder_ = + alarmDescriptorBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getAlarmListFieldBuilder() : null; + getAlarmDescriptorFieldBuilder() : null; } else { - alarmListBuilder_.addAllMessages(other.alarmList_); + alarmDescriptorBuilder_.addAllMessages(other.alarmDescriptor_); } } } @@ -18887,11 +20939,11 @@ public final class Monitoring { com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - monitoring.Monitoring.AlarmIDList parsedMessage = null; + monitoring.Monitoring.AlarmList parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (monitoring.Monitoring.AlarmIDList) e.getUnfinishedMessage(); + parsedMessage = (monitoring.Monitoring.AlarmList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -18902,244 +20954,244 @@ public final class Monitoring { } private int bitField0_; - private java.util.List<monitoring.Monitoring.AlarmID> alarmList_ = + private java.util.List<monitoring.Monitoring.AlarmDescriptor> alarmDescriptor_ = java.util.Collections.emptyList(); - private void ensureAlarmListIsMutable() { + private void ensureAlarmDescriptorIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { - alarmList_ = new java.util.ArrayList<monitoring.Monitoring.AlarmID>(alarmList_); + alarmDescriptor_ = new java.util.ArrayList<monitoring.Monitoring.AlarmDescriptor>(alarmDescriptor_); bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< - monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> alarmListBuilder_; + monitoring.Monitoring.AlarmDescriptor, monitoring.Monitoring.AlarmDescriptor.Builder, monitoring.Monitoring.AlarmDescriptorOrBuilder> alarmDescriptorBuilder_; /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public java.util.List<monitoring.Monitoring.AlarmID> getAlarmListList() { - if (alarmListBuilder_ == null) { - return java.util.Collections.unmodifiableList(alarmList_); + public java.util.List<monitoring.Monitoring.AlarmDescriptor> getAlarmDescriptorList() { + if (alarmDescriptorBuilder_ == null) { + return java.util.Collections.unmodifiableList(alarmDescriptor_); } else { - return alarmListBuilder_.getMessageList(); + return alarmDescriptorBuilder_.getMessageList(); } } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public int getAlarmListCount() { - if (alarmListBuilder_ == null) { - return alarmList_.size(); + public int getAlarmDescriptorCount() { + if (alarmDescriptorBuilder_ == null) { + return alarmDescriptor_.size(); } else { - return alarmListBuilder_.getCount(); + return alarmDescriptorBuilder_.getCount(); } } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public monitoring.Monitoring.AlarmID getAlarmList(int index) { - if (alarmListBuilder_ == null) { - return alarmList_.get(index); + public monitoring.Monitoring.AlarmDescriptor getAlarmDescriptor(int index) { + if (alarmDescriptorBuilder_ == null) { + return alarmDescriptor_.get(index); } else { - return alarmListBuilder_.getMessage(index); + return alarmDescriptorBuilder_.getMessage(index); } } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public Builder setAlarmList( - int index, monitoring.Monitoring.AlarmID value) { - if (alarmListBuilder_ == null) { + public Builder setAlarmDescriptor( + int index, monitoring.Monitoring.AlarmDescriptor value) { + if (alarmDescriptorBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureAlarmListIsMutable(); - alarmList_.set(index, value); + ensureAlarmDescriptorIsMutable(); + alarmDescriptor_.set(index, value); onChanged(); } else { - alarmListBuilder_.setMessage(index, value); + alarmDescriptorBuilder_.setMessage(index, value); } return this; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public Builder setAlarmList( - int index, monitoring.Monitoring.AlarmID.Builder builderForValue) { - if (alarmListBuilder_ == null) { - ensureAlarmListIsMutable(); - alarmList_.set(index, builderForValue.build()); + public Builder setAlarmDescriptor( + int index, monitoring.Monitoring.AlarmDescriptor.Builder builderForValue) { + if (alarmDescriptorBuilder_ == null) { + ensureAlarmDescriptorIsMutable(); + alarmDescriptor_.set(index, builderForValue.build()); onChanged(); } else { - alarmListBuilder_.setMessage(index, builderForValue.build()); + alarmDescriptorBuilder_.setMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public Builder addAlarmList(monitoring.Monitoring.AlarmID value) { - if (alarmListBuilder_ == null) { + public Builder addAlarmDescriptor(monitoring.Monitoring.AlarmDescriptor value) { + if (alarmDescriptorBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureAlarmListIsMutable(); - alarmList_.add(value); + ensureAlarmDescriptorIsMutable(); + alarmDescriptor_.add(value); onChanged(); } else { - alarmListBuilder_.addMessage(value); + alarmDescriptorBuilder_.addMessage(value); } return this; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public Builder addAlarmList( - int index, monitoring.Monitoring.AlarmID value) { - if (alarmListBuilder_ == null) { + public Builder addAlarmDescriptor( + int index, monitoring.Monitoring.AlarmDescriptor value) { + if (alarmDescriptorBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureAlarmListIsMutable(); - alarmList_.add(index, value); + ensureAlarmDescriptorIsMutable(); + alarmDescriptor_.add(index, value); onChanged(); } else { - alarmListBuilder_.addMessage(index, value); + alarmDescriptorBuilder_.addMessage(index, value); } return this; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public Builder addAlarmList( - monitoring.Monitoring.AlarmID.Builder builderForValue) { - if (alarmListBuilder_ == null) { - ensureAlarmListIsMutable(); - alarmList_.add(builderForValue.build()); + public Builder addAlarmDescriptor( + monitoring.Monitoring.AlarmDescriptor.Builder builderForValue) { + if (alarmDescriptorBuilder_ == null) { + ensureAlarmDescriptorIsMutable(); + alarmDescriptor_.add(builderForValue.build()); onChanged(); } else { - alarmListBuilder_.addMessage(builderForValue.build()); + alarmDescriptorBuilder_.addMessage(builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public Builder addAlarmList( - int index, monitoring.Monitoring.AlarmID.Builder builderForValue) { - if (alarmListBuilder_ == null) { - ensureAlarmListIsMutable(); - alarmList_.add(index, builderForValue.build()); + public Builder addAlarmDescriptor( + int index, monitoring.Monitoring.AlarmDescriptor.Builder builderForValue) { + if (alarmDescriptorBuilder_ == null) { + ensureAlarmDescriptorIsMutable(); + alarmDescriptor_.add(index, builderForValue.build()); onChanged(); } else { - alarmListBuilder_.addMessage(index, builderForValue.build()); + alarmDescriptorBuilder_.addMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public Builder addAllAlarmList( - java.lang.Iterable<? extends monitoring.Monitoring.AlarmID> values) { - if (alarmListBuilder_ == null) { - ensureAlarmListIsMutable(); + public Builder addAllAlarmDescriptor( + java.lang.Iterable<? extends monitoring.Monitoring.AlarmDescriptor> values) { + if (alarmDescriptorBuilder_ == null) { + ensureAlarmDescriptorIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, alarmList_); + values, alarmDescriptor_); onChanged(); } else { - alarmListBuilder_.addAllMessages(values); + alarmDescriptorBuilder_.addAllMessages(values); } return this; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public Builder clearAlarmList() { - if (alarmListBuilder_ == null) { - alarmList_ = java.util.Collections.emptyList(); + public Builder clearAlarmDescriptor() { + if (alarmDescriptorBuilder_ == null) { + alarmDescriptor_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { - alarmListBuilder_.clear(); + alarmDescriptorBuilder_.clear(); } return this; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public Builder removeAlarmList(int index) { - if (alarmListBuilder_ == null) { - ensureAlarmListIsMutable(); - alarmList_.remove(index); + public Builder removeAlarmDescriptor(int index) { + if (alarmDescriptorBuilder_ == null) { + ensureAlarmDescriptorIsMutable(); + alarmDescriptor_.remove(index); onChanged(); } else { - alarmListBuilder_.remove(index); + alarmDescriptorBuilder_.remove(index); } return this; } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public monitoring.Monitoring.AlarmID.Builder getAlarmListBuilder( + public monitoring.Monitoring.AlarmDescriptor.Builder getAlarmDescriptorBuilder( int index) { - return getAlarmListFieldBuilder().getBuilder(index); + return getAlarmDescriptorFieldBuilder().getBuilder(index); } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public monitoring.Monitoring.AlarmIDOrBuilder getAlarmListOrBuilder( + public monitoring.Monitoring.AlarmDescriptorOrBuilder getAlarmDescriptorOrBuilder( int index) { - if (alarmListBuilder_ == null) { - return alarmList_.get(index); } else { - return alarmListBuilder_.getMessageOrBuilder(index); + if (alarmDescriptorBuilder_ == null) { + return alarmDescriptor_.get(index); } else { + return alarmDescriptorBuilder_.getMessageOrBuilder(index); } } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public java.util.List<? extends monitoring.Monitoring.AlarmIDOrBuilder> - getAlarmListOrBuilderList() { - if (alarmListBuilder_ != null) { - return alarmListBuilder_.getMessageOrBuilderList(); + public java.util.List<? extends monitoring.Monitoring.AlarmDescriptorOrBuilder> + getAlarmDescriptorOrBuilderList() { + if (alarmDescriptorBuilder_ != null) { + return alarmDescriptorBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(alarmList_); + return java.util.Collections.unmodifiableList(alarmDescriptor_); } } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public monitoring.Monitoring.AlarmID.Builder addAlarmListBuilder() { - return getAlarmListFieldBuilder().addBuilder( - monitoring.Monitoring.AlarmID.getDefaultInstance()); + public monitoring.Monitoring.AlarmDescriptor.Builder addAlarmDescriptorBuilder() { + return getAlarmDescriptorFieldBuilder().addBuilder( + monitoring.Monitoring.AlarmDescriptor.getDefaultInstance()); } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public monitoring.Monitoring.AlarmID.Builder addAlarmListBuilder( + public monitoring.Monitoring.AlarmDescriptor.Builder addAlarmDescriptorBuilder( int index) { - return getAlarmListFieldBuilder().addBuilder( - index, monitoring.Monitoring.AlarmID.getDefaultInstance()); + return getAlarmDescriptorFieldBuilder().addBuilder( + index, monitoring.Monitoring.AlarmDescriptor.getDefaultInstance()); } /** - * <code>repeated .monitoring.AlarmID alarm_list = 1;</code> + * <code>repeated .monitoring.AlarmDescriptor alarm_descriptor = 1;</code> */ - public java.util.List<monitoring.Monitoring.AlarmID.Builder> - getAlarmListBuilderList() { - return getAlarmListFieldBuilder().getBuilderList(); + public java.util.List<monitoring.Monitoring.AlarmDescriptor.Builder> + getAlarmDescriptorBuilderList() { + return getAlarmDescriptorFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder> - getAlarmListFieldBuilder() { - if (alarmListBuilder_ == null) { - alarmListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - monitoring.Monitoring.AlarmID, monitoring.Monitoring.AlarmID.Builder, monitoring.Monitoring.AlarmIDOrBuilder>( - alarmList_, + monitoring.Monitoring.AlarmDescriptor, monitoring.Monitoring.AlarmDescriptor.Builder, monitoring.Monitoring.AlarmDescriptorOrBuilder> + getAlarmDescriptorFieldBuilder() { + if (alarmDescriptorBuilder_ == null) { + alarmDescriptorBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + monitoring.Monitoring.AlarmDescriptor, monitoring.Monitoring.AlarmDescriptor.Builder, monitoring.Monitoring.AlarmDescriptorOrBuilder>( + alarmDescriptor_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); - alarmList_ = null; + alarmDescriptor_ = null; } - return alarmListBuilder_; + return alarmDescriptorBuilder_; } @java.lang.Override public final Builder setUnknownFields( @@ -19154,41 +21206,41 @@ public final class Monitoring { } - // @@protoc_insertion_point(builder_scope:monitoring.AlarmIDList) + // @@protoc_insertion_point(builder_scope:monitoring.AlarmList) } - // @@protoc_insertion_point(class_scope:monitoring.AlarmIDList) - private static final monitoring.Monitoring.AlarmIDList DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:monitoring.AlarmList) + private static final monitoring.Monitoring.AlarmList DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new monitoring.Monitoring.AlarmIDList(); + DEFAULT_INSTANCE = new monitoring.Monitoring.AlarmList(); } - public static monitoring.Monitoring.AlarmIDList getDefaultInstance() { + public static monitoring.Monitoring.AlarmList getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<AlarmIDList> - PARSER = new com.google.protobuf.AbstractParser<AlarmIDList>() { + private static final com.google.protobuf.Parser<AlarmList> + PARSER = new com.google.protobuf.AbstractParser<AlarmList>() { @java.lang.Override - public AlarmIDList parsePartialFrom( + public AlarmList parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new AlarmIDList(input, extensionRegistry); + return new AlarmList(input, extensionRegistry); } }; - public static com.google.protobuf.Parser<AlarmIDList> parser() { + public static com.google.protobuf.Parser<AlarmList> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<AlarmIDList> getParserForType() { + public com.google.protobuf.Parser<AlarmList> getParserForType() { return PARSER; } @java.lang.Override - public monitoring.Monitoring.AlarmIDList getDefaultInstanceForType() { + public monitoring.Monitoring.AlarmList getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -19209,6 +21261,21 @@ public final class Monitoring { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_monitoring_KpiQuery_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_monitoring_RawKpi_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_monitoring_RawKpi_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_monitoring_RawKpiList_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_monitoring_RawKpiList_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_monitoring_RawKpiTable_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_monitoring_RawKpiTable_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_monitoring_KpiId_descriptor; private static final @@ -19255,10 +21322,10 @@ public final class Monitoring { com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_monitoring_SubsResponse_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_monitoring_SubsIDList_descriptor; + internal_static_monitoring_SubsList_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_monitoring_SubsIDList_fieldAccessorTable; + internal_static_monitoring_SubsList_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_monitoring_AlarmDescriptor_descriptor; private static final @@ -19280,10 +21347,10 @@ public final class Monitoring { com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_monitoring_AlarmResponse_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_monitoring_AlarmIDList_descriptor; + internal_static_monitoring_AlarmList_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_monitoring_AlarmIDList_fieldAccessorTable; + internal_static_monitoring_AlarmList_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -19294,7 +21361,7 @@ public final class Monitoring { static { java.lang.String[] descriptorData = { "\n\020monitoring.proto\022\nmonitoring\032\rcontext." + - "proto\032\026kpi_sample_types.proto\"\311\002\n\rKpiDes" + + "proto\032\026kpi_sample_types.proto\"\367\002\n\rKpiDes" + "criptor\022!\n\006kpi_id\030\001 \001(\0132\021.monitoring.Kpi" + "Id\022\027\n\017kpi_description\030\002 \001(\t\022&\n\013kpi_id_li" + "st\030\003 \003(\0132\021.monitoring.KpiId\0228\n\017kpi_sampl" + @@ -19303,86 +21370,92 @@ public final class Monitoring { "eId\022(\n\013endpoint_id\030\006 \001(\0132\023.context.EndPo" + "intId\022&\n\nservice_id\030\007 \001(\0132\022.context.Serv" + "iceId\022\"\n\010slice_id\030\010 \001(\0132\020.context.SliceI" + - "d\"l\n\021MonitorKpiRequest\022!\n\006kpi_id\030\001 \001(\0132\021" + - ".monitoring.KpiId\022\033\n\023monitoring_window_s" + - "\030\002 \001(\002\022\027\n\017sampling_rate_s\030\003 \001(\002\"\323\001\n\010KpiQ" + - "uery\022!\n\006kpi_id\030\001 \003(\0132\021.monitoring.KpiId\022" + - "\033\n\023monitoring_window_s\030\002 \001(\002\022\027\n\017sampling" + - "_rate_s\030\003 \001(\002\022\026\n\016last_n_samples\030\004 \001(\r\022+\n" + - "\017start_timestamp\030\005 \001(\0132\022.context.Timesta" + - "mp\022)\n\rend_timestamp\030\006 \001(\0132\022.context.Time" + - "stamp\"&\n\005KpiId\022\035\n\006kpi_id\030\001 \001(\0132\r.context" + - ".Uuid\"x\n\003Kpi\022!\n\006kpi_id\030\001 \001(\0132\021.monitorin" + - "g.KpiId\022%\n\ttimestamp\030\002 \001(\0132\022.context.Tim" + - "estamp\022\'\n\tkpi_value\030\003 \001(\0132\024.monitoring.K" + - "piValue\"\250\001\n\rKpiValueRange\022)\n\013kpiMinValue" + - "\030\001 \001(\0132\024.monitoring.KpiValue\022)\n\013kpiMaxVa" + - "lue\030\002 \001(\0132\024.monitoring.KpiValue\022\017\n\007inRan" + - "ge\030\003 \001(\010\022\027\n\017includeMinValue\030\004 \001(\010\022\027\n\017inc" + - "ludeMaxValue\030\005 \001(\010\"\241\001\n\010KpiValue\022\022\n\010int32" + - "Val\030\001 \001(\005H\000\022\023\n\tuint32Val\030\002 \001(\rH\000\022\022\n\010int6" + - "4Val\030\003 \001(\003H\000\022\023\n\tuint64Val\030\004 \001(\004H\000\022\022\n\010flo" + - "atVal\030\005 \001(\002H\000\022\023\n\tstringVal\030\006 \001(\tH\000\022\021\n\007bo" + - "olVal\030\007 \001(\010H\000B\007\n\005value\",\n\007KpiList\022!\n\010kpi" + - "_list\030\001 \003(\0132\017.monitoring.Kpi\"K\n\021KpiDescr" + - "iptorList\0226\n\023kpi_descriptor_list\030\001 \003(\0132\031" + - ".monitoring.KpiDescriptor\"\362\001\n\016SubsDescri" + - "ptor\022+\n\007subs_id\030\001 \001(\0132\032.monitoring.Subsc" + - "riptionID\022!\n\006kpi_id\030\002 \001(\0132\021.monitoring.K" + - "piId\022\033\n\023sampling_duration_s\030\003 \001(\002\022\033\n\023sam" + - "pling_interval_s\030\004 \001(\002\022+\n\017start_timestam" + - "p\030\005 \001(\0132\022.context.Timestamp\022)\n\rend_times" + - "tamp\030\006 \001(\0132\022.context.Timestamp\"0\n\016Subscr" + - "iptionID\022\036\n\007subs_id\030\001 \001(\0132\r.context.Uuid" + - "\"b\n\014SubsResponse\022+\n\007subs_id\030\001 \001(\0132\032.moni" + - "toring.SubscriptionID\022%\n\010kpi_list\030\002 \003(\0132" + - "\023.monitoring.KpiList\";\n\nSubsIDList\022-\n\tsu" + - "bs_list\030\001 \003(\0132\032.monitoring.SubscriptionI" + - "D\"\337\001\n\017AlarmDescriptor\022%\n\010alarm_id\030\001 \001(\0132" + - "\023.monitoring.AlarmID\022\031\n\021alarm_descriptio" + - "n\030\002 \001(\t\022\014\n\004name\030\003 \001(\t\022!\n\006kpi_id\030\004 \003(\0132\021." + - "monitoring.KpiId\0222\n\017kpi_value_range\030\005 \003(" + - "\0132\031.monitoring.KpiValueRange\022%\n\ttimestam" + - "p\030\006 \001(\0132\022.context.Timestamp\"*\n\007AlarmID\022\037" + - "\n\010alarm_id\030\001 \001(\0132\r.context.Uuid\"|\n\021Alarm" + - "Subscription\022$\n\007alarmID\030\001 \001(\0132\023.monitori" + - "ng.AlarmID\022\036\n\026subscription_timeout_s\030\002 \001" + - "(\002\022!\n\031subscription_frequency_ms\030\003 \001(\002\"\224\001" + - "\n\rAlarmResponse\022%\n\010alarm_id\030\001 \001(\0132\023.moni" + - "toring.AlarmID\022\014\n\004text\030\002 \001(\t\022\'\n\tkpi_valu" + - "e\030\003 \001(\0132\024.monitoring.KpiValue\022%\n\ttimesta" + - "mp\030\004 \001(\0132\022.context.Timestamp\"6\n\013AlarmIDL" + - "ist\022\'\n\nalarm_list\030\001 \003(\0132\023.monitoring.Ala" + - "rmID2\233\t\n\021MonitoringService\0228\n\006SetKpi\022\031.m" + - "onitoring.KpiDescriptor\032\021.monitoring.Kpi" + - "Id\"\000\0220\n\tDeleteKpi\022\021.monitoring.KpiId\032\016.c" + - "ontext.Empty\"\000\022B\n\020GetKpiDescriptor\022\021.mon" + - "itoring.KpiId\032\031.monitoring.KpiDescriptor" + - "\"\000\022G\n\024GetKpiDescriptorList\022\016.context.Emp" + - "ty\032\035.monitoring.KpiDescriptorList\"\000\022/\n\nI" + - "ncludeKpi\022\017.monitoring.Kpi\032\016.context.Emp" + - "ty\"\000\022=\n\nMonitorKpi\022\035.monitoring.MonitorK" + - "piRequest\032\016.context.Empty\"\000\022;\n\014QueryKpiD" + - "ata\022\024.monitoring.KpiQuery\032\023.monitoring.K" + - "piList\"\000\022I\n\022SetKpiSubscription\022\032.monitor" + - "ing.SubsDescriptor\032\023.monitoring.KpiList\"" + + "d\022,\n\rconnection_id\030\t \001(\0132\025.context.Conne" + + "ctionId\"l\n\021MonitorKpiRequest\022!\n\006kpi_id\030\001" + + " \001(\0132\021.monitoring.KpiId\022\033\n\023monitoring_wi" + + "ndow_s\030\002 \001(\002\022\027\n\017sampling_rate_s\030\003 \001(\002\"\273\001" + + "\n\010KpiQuery\022\"\n\007kpi_ids\030\001 \003(\0132\021.monitoring" + + ".KpiId\022\033\n\023monitoring_window_s\030\002 \001(\002\022\026\n\016l" + + "ast_n_samples\030\003 \001(\r\022+\n\017start_timestamp\030\004" + + " \001(\0132\022.context.Timestamp\022)\n\rend_timestam" + + "p\030\005 \001(\0132\022.context.Timestamp\"X\n\006RawKpi\022%\n" + + "\ttimestamp\030\001 \001(\0132\022.context.Timestamp\022\'\n\t" + + "kpi_value\030\002 \001(\0132\024.monitoring.KpiValue\"U\n" + + "\nRawKpiList\022!\n\006kpi_id\030\001 \001(\0132\021.monitoring" + + ".KpiId\022$\n\010raw_kpis\030\002 \003(\0132\022.monitoring.Ra" + + "wKpi\"<\n\013RawKpiTable\022-\n\rraw_kpi_lists\030\001 \003" + + "(\0132\026.monitoring.RawKpiList\"&\n\005KpiId\022\035\n\006k" + + "pi_id\030\001 \001(\0132\r.context.Uuid\"x\n\003Kpi\022!\n\006kpi" + + "_id\030\001 \001(\0132\021.monitoring.KpiId\022%\n\ttimestam" + + "p\030\002 \001(\0132\022.context.Timestamp\022\'\n\tkpi_value" + + "\030\003 \001(\0132\024.monitoring.KpiValue\"\250\001\n\rKpiValu" + + "eRange\022)\n\013kpiMinValue\030\001 \001(\0132\024.monitoring" + + ".KpiValue\022)\n\013kpiMaxValue\030\002 \001(\0132\024.monitor" + + "ing.KpiValue\022\017\n\007inRange\030\003 \001(\010\022\027\n\017include" + + "MinValue\030\004 \001(\010\022\027\n\017includeMaxValue\030\005 \001(\010\"" + + "\241\001\n\010KpiValue\022\022\n\010int32Val\030\001 \001(\005H\000\022\023\n\tuint" + + "32Val\030\002 \001(\rH\000\022\022\n\010int64Val\030\003 \001(\003H\000\022\023\n\tuin" + + "t64Val\030\004 \001(\004H\000\022\022\n\010floatVal\030\005 \001(\002H\000\022\023\n\tst" + + "ringVal\030\006 \001(\tH\000\022\021\n\007boolVal\030\007 \001(\010H\000B\007\n\005va" + + "lue\"\'\n\007KpiList\022\034\n\003kpi\030\001 \003(\0132\017.monitoring" + + ".Kpi\"K\n\021KpiDescriptorList\0226\n\023kpi_descrip" + + "tor_list\030\001 \003(\0132\031.monitoring.KpiDescripto" + + "r\"\362\001\n\016SubsDescriptor\022+\n\007subs_id\030\001 \001(\0132\032." + + "monitoring.SubscriptionID\022!\n\006kpi_id\030\002 \001(" + + "\0132\021.monitoring.KpiId\022\033\n\023sampling_duratio" + + "n_s\030\003 \001(\002\022\033\n\023sampling_interval_s\030\004 \001(\002\022+" + + "\n\017start_timestamp\030\005 \001(\0132\022.context.Timest" + + "amp\022)\n\rend_timestamp\030\006 \001(\0132\022.context.Tim" + + "estamp\"0\n\016SubscriptionID\022\036\n\007subs_id\030\001 \001(" + + "\0132\r.context.Uuid\"b\n\014SubsResponse\022+\n\007subs" + + "_id\030\001 \001(\0132\032.monitoring.SubscriptionID\022%\n" + + "\010kpi_list\030\002 \001(\0132\023.monitoring.KpiList\"?\n\010" + + "SubsList\0223\n\017subs_descriptor\030\001 \003(\0132\032.moni" + + "toring.SubsDescriptor\"\337\001\n\017AlarmDescripto" + + "r\022%\n\010alarm_id\030\001 \001(\0132\023.monitoring.AlarmID" + + "\022\031\n\021alarm_description\030\002 \001(\t\022\014\n\004name\030\003 \001(" + + "\t\022!\n\006kpi_id\030\004 \001(\0132\021.monitoring.KpiId\0222\n\017" + + "kpi_value_range\030\005 \001(\0132\031.monitoring.KpiVa" + + "lueRange\022%\n\ttimestamp\030\006 \001(\0132\022.context.Ti" + + "mestamp\"*\n\007AlarmID\022\037\n\010alarm_id\030\001 \001(\0132\r.c" + + "ontext.Uuid\"}\n\021AlarmSubscription\022%\n\010alar" + + "m_id\030\001 \001(\0132\023.monitoring.AlarmID\022\036\n\026subsc" + + "ription_timeout_s\030\002 \001(\002\022!\n\031subscription_" + + "frequency_ms\030\003 \001(\002\"k\n\rAlarmResponse\022%\n\010a" + + "larm_id\030\001 \001(\0132\023.monitoring.AlarmID\022\014\n\004te" + + "xt\030\002 \001(\t\022%\n\010kpi_list\030\003 \001(\0132\023.monitoring." + + "KpiList\"B\n\tAlarmList\0225\n\020alarm_descriptor" + + "\030\001 \003(\0132\033.monitoring.AlarmDescriptor2\234\t\n\021" + + "MonitoringService\0228\n\006SetKpi\022\031.monitoring" + + ".KpiDescriptor\032\021.monitoring.KpiId\"\000\0220\n\tD" + + "eleteKpi\022\021.monitoring.KpiId\032\016.context.Em" + + "pty\"\000\022B\n\020GetKpiDescriptor\022\021.monitoring.K" + + "piId\032\031.monitoring.KpiDescriptor\"\000\022G\n\024Get" + + "KpiDescriptorList\022\016.context.Empty\032\035.moni" + + "toring.KpiDescriptorList\"\000\022/\n\nIncludeKpi" + + "\022\017.monitoring.Kpi\032\016.context.Empty\"\000\022=\n\nM" + + "onitorKpi\022\035.monitoring.MonitorKpiRequest" + + "\032\016.context.Empty\"\000\022?\n\014QueryKpiData\022\024.mon" + + "itoring.KpiQuery\032\027.monitoring.RawKpiTabl" + + "e\"\000\022N\n\022SetKpiSubscription\022\032.monitoring.S" + + "ubsDescriptor\032\030.monitoring.SubsResponse\"" + "\0000\001\022M\n\021GetSubsDescriptor\022\032.monitoring.Su" + "bscriptionID\032\032.monitoring.SubsDescriptor" + - "\"\000\022<\n\020GetSubscriptions\022\016.context.Empty\032\026" + - ".monitoring.SubsIDList\"\000\022B\n\022DeleteSubscr" + - "iption\022\032.monitoring.SubscriptionID\032\016.con" + - "text.Empty\"\000\022A\n\013SetKpiAlarm\022\033.monitoring" + - ".AlarmDescriptor\032\023.monitoring.AlarmID\"\000\022" + - "6\n\tGetAlarms\022\016.context.Empty\032\027.monitorin" + - "g.AlarmIDList\"\000\022H\n\022GetAlarmDescriptor\022\023." + - "monitoring.AlarmID\032\033.monitoring.AlarmDes" + - "criptor\"\000\022V\n\026GetAlarmResponseStream\022\035.mo" + - "nitoring.AlarmSubscription\032\031.monitoring." + - "AlarmResponse\"\0000\001\0224\n\013DeleteAlarm\022\023.monit" + - "oring.AlarmID\032\016.context.Empty\"\000\0226\n\014GetSt" + - "reamKpi\022\021.monitoring.KpiId\032\017.monitoring." + - "Kpi\"\0000\001\0229\n\rGetInstantKpi\022\021.monitoring.Kp" + - "iId\032\023.monitoring.KpiList\"\000b\006proto3" + "\"\000\022:\n\020GetSubscriptions\022\016.context.Empty\032\024" + + ".monitoring.SubsList\"\000\022B\n\022DeleteSubscrip" + + "tion\022\032.monitoring.SubscriptionID\032\016.conte" + + "xt.Empty\"\000\022A\n\013SetKpiAlarm\022\033.monitoring.A" + + "larmDescriptor\032\023.monitoring.AlarmID\"\000\0224\n" + + "\tGetAlarms\022\016.context.Empty\032\025.monitoring." + + "AlarmList\"\000\022H\n\022GetAlarmDescriptor\022\023.moni" + + "toring.AlarmID\032\033.monitoring.AlarmDescrip" + + "tor\"\000\022V\n\026GetAlarmResponseStream\022\035.monito" + + "ring.AlarmSubscription\032\031.monitoring.Alar" + + "mResponse\"\0000\001\0224\n\013DeleteAlarm\022\023.monitorin" + + "g.AlarmID\032\016.context.Empty\"\000\0226\n\014GetStream" + + "Kpi\022\021.monitoring.KpiId\032\017.monitoring.Kpi\"" + + "\0000\001\0225\n\rGetInstantKpi\022\021.monitoring.KpiId\032" + + "\017.monitoring.Kpi\"\000b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -19395,7 +21468,7 @@ public final class Monitoring { internal_static_monitoring_KpiDescriptor_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_KpiDescriptor_descriptor, - new java.lang.String[] { "KpiId", "KpiDescription", "KpiIdList", "KpiSampleType", "DeviceId", "EndpointId", "ServiceId", "SliceId", }); + new java.lang.String[] { "KpiId", "KpiDescription", "KpiIdList", "KpiSampleType", "DeviceId", "EndpointId", "ServiceId", "SliceId", "ConnectionId", }); internal_static_monitoring_MonitorKpiRequest_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_monitoring_MonitorKpiRequest_fieldAccessorTable = new @@ -19407,97 +21480,115 @@ public final class Monitoring { internal_static_monitoring_KpiQuery_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_KpiQuery_descriptor, - new java.lang.String[] { "KpiId", "MonitoringWindowS", "SamplingRateS", "LastNSamples", "StartTimestamp", "EndTimestamp", }); - internal_static_monitoring_KpiId_descriptor = + new java.lang.String[] { "KpiIds", "MonitoringWindowS", "LastNSamples", "StartTimestamp", "EndTimestamp", }); + internal_static_monitoring_RawKpi_descriptor = getDescriptor().getMessageTypes().get(3); + internal_static_monitoring_RawKpi_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_monitoring_RawKpi_descriptor, + new java.lang.String[] { "Timestamp", "KpiValue", }); + internal_static_monitoring_RawKpiList_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_monitoring_RawKpiList_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_monitoring_RawKpiList_descriptor, + new java.lang.String[] { "KpiId", "RawKpis", }); + internal_static_monitoring_RawKpiTable_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_monitoring_RawKpiTable_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_monitoring_RawKpiTable_descriptor, + new java.lang.String[] { "RawKpiLists", }); + internal_static_monitoring_KpiId_descriptor = + getDescriptor().getMessageTypes().get(6); internal_static_monitoring_KpiId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_KpiId_descriptor, new java.lang.String[] { "KpiId", }); internal_static_monitoring_Kpi_descriptor = - getDescriptor().getMessageTypes().get(4); + getDescriptor().getMessageTypes().get(7); internal_static_monitoring_Kpi_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_Kpi_descriptor, new java.lang.String[] { "KpiId", "Timestamp", "KpiValue", }); internal_static_monitoring_KpiValueRange_descriptor = - getDescriptor().getMessageTypes().get(5); + getDescriptor().getMessageTypes().get(8); internal_static_monitoring_KpiValueRange_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_KpiValueRange_descriptor, new java.lang.String[] { "KpiMinValue", "KpiMaxValue", "InRange", "IncludeMinValue", "IncludeMaxValue", }); internal_static_monitoring_KpiValue_descriptor = - getDescriptor().getMessageTypes().get(6); + getDescriptor().getMessageTypes().get(9); internal_static_monitoring_KpiValue_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_KpiValue_descriptor, new java.lang.String[] { "Int32Val", "Uint32Val", "Int64Val", "Uint64Val", "FloatVal", "StringVal", "BoolVal", "Value", }); internal_static_monitoring_KpiList_descriptor = - getDescriptor().getMessageTypes().get(7); + getDescriptor().getMessageTypes().get(10); internal_static_monitoring_KpiList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_KpiList_descriptor, - new java.lang.String[] { "KpiList", }); + new java.lang.String[] { "Kpi", }); internal_static_monitoring_KpiDescriptorList_descriptor = - getDescriptor().getMessageTypes().get(8); + getDescriptor().getMessageTypes().get(11); internal_static_monitoring_KpiDescriptorList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_KpiDescriptorList_descriptor, new java.lang.String[] { "KpiDescriptorList", }); internal_static_monitoring_SubsDescriptor_descriptor = - getDescriptor().getMessageTypes().get(9); + getDescriptor().getMessageTypes().get(12); internal_static_monitoring_SubsDescriptor_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_SubsDescriptor_descriptor, new java.lang.String[] { "SubsId", "KpiId", "SamplingDurationS", "SamplingIntervalS", "StartTimestamp", "EndTimestamp", }); internal_static_monitoring_SubscriptionID_descriptor = - getDescriptor().getMessageTypes().get(10); + getDescriptor().getMessageTypes().get(13); internal_static_monitoring_SubscriptionID_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_SubscriptionID_descriptor, new java.lang.String[] { "SubsId", }); internal_static_monitoring_SubsResponse_descriptor = - getDescriptor().getMessageTypes().get(11); + getDescriptor().getMessageTypes().get(14); internal_static_monitoring_SubsResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_SubsResponse_descriptor, new java.lang.String[] { "SubsId", "KpiList", }); - internal_static_monitoring_SubsIDList_descriptor = - getDescriptor().getMessageTypes().get(12); - internal_static_monitoring_SubsIDList_fieldAccessorTable = new + internal_static_monitoring_SubsList_descriptor = + getDescriptor().getMessageTypes().get(15); + internal_static_monitoring_SubsList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_monitoring_SubsIDList_descriptor, - new java.lang.String[] { "SubsList", }); + internal_static_monitoring_SubsList_descriptor, + new java.lang.String[] { "SubsDescriptor", }); internal_static_monitoring_AlarmDescriptor_descriptor = - getDescriptor().getMessageTypes().get(13); + getDescriptor().getMessageTypes().get(16); internal_static_monitoring_AlarmDescriptor_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_AlarmDescriptor_descriptor, new java.lang.String[] { "AlarmId", "AlarmDescription", "Name", "KpiId", "KpiValueRange", "Timestamp", }); internal_static_monitoring_AlarmID_descriptor = - getDescriptor().getMessageTypes().get(14); + getDescriptor().getMessageTypes().get(17); internal_static_monitoring_AlarmID_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_AlarmID_descriptor, new java.lang.String[] { "AlarmId", }); internal_static_monitoring_AlarmSubscription_descriptor = - getDescriptor().getMessageTypes().get(15); + getDescriptor().getMessageTypes().get(18); internal_static_monitoring_AlarmSubscription_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_AlarmSubscription_descriptor, - new java.lang.String[] { "AlarmID", "SubscriptionTimeoutS", "SubscriptionFrequencyMs", }); + new java.lang.String[] { "AlarmId", "SubscriptionTimeoutS", "SubscriptionFrequencyMs", }); internal_static_monitoring_AlarmResponse_descriptor = - getDescriptor().getMessageTypes().get(16); + getDescriptor().getMessageTypes().get(19); internal_static_monitoring_AlarmResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_monitoring_AlarmResponse_descriptor, - new java.lang.String[] { "AlarmId", "Text", "KpiValue", "Timestamp", }); - internal_static_monitoring_AlarmIDList_descriptor = - getDescriptor().getMessageTypes().get(17); - internal_static_monitoring_AlarmIDList_fieldAccessorTable = new + new java.lang.String[] { "AlarmId", "Text", "KpiList", }); + internal_static_monitoring_AlarmList_descriptor = + getDescriptor().getMessageTypes().get(20); + internal_static_monitoring_AlarmList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_monitoring_AlarmIDList_descriptor, - new java.lang.String[] { "AlarmList", }); + internal_static_monitoring_AlarmList_descriptor, + new java.lang.String[] { "AlarmDescriptor", }); context.ContextOuterClass.getDescriptor(); kpi_sample_types.KpiSampleTypes.getDescriptor(); } diff --git a/src/automation/target/generated-sources/grpc/monitoring/MonitoringService.java b/src/automation/target/generated-sources/grpc/monitoring/MonitoringService.java index 6372600680d57d0b351e7dd67b88c84f9d8e8cff..0ce30559b2c0a1bb6236431482d6b99b82cf0842 100644 --- a/src/automation/target/generated-sources/grpc/monitoring/MonitoringService.java +++ b/src/automation/target/generated-sources/grpc/monitoring/MonitoringService.java @@ -20,26 +20,26 @@ public interface MonitoringService extends MutinyService { io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> monitorKpi(monitoring.Monitoring.MonitorKpiRequest request); - io.smallrye.mutiny.Uni<monitoring.Monitoring.KpiList> queryKpiData(monitoring.Monitoring.KpiQuery request); + io.smallrye.mutiny.Uni<monitoring.Monitoring.RawKpiTable> queryKpiData(monitoring.Monitoring.KpiQuery request); io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsDescriptor> getSubsDescriptor(monitoring.Monitoring.SubscriptionID request); - io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsIDList> getSubscriptions(context.ContextOuterClass.Empty request); + io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsList> getSubscriptions(context.ContextOuterClass.Empty request); io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteSubscription(monitoring.Monitoring.SubscriptionID request); io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmID> setKpiAlarm(monitoring.Monitoring.AlarmDescriptor request); - io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmIDList> getAlarms(context.ContextOuterClass.Empty request); + io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmList> getAlarms(context.ContextOuterClass.Empty request); io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmDescriptor> getAlarmDescriptor(monitoring.Monitoring.AlarmID request); io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteAlarm(monitoring.Monitoring.AlarmID request); - io.smallrye.mutiny.Uni<monitoring.Monitoring.KpiList> getInstantKpi(monitoring.Monitoring.KpiId request); + io.smallrye.mutiny.Uni<monitoring.Monitoring.Kpi> getInstantKpi(monitoring.Monitoring.KpiId request); - io.smallrye.mutiny.Multi<monitoring.Monitoring.KpiList> setKpiSubscription(monitoring.Monitoring.SubsDescriptor request); + io.smallrye.mutiny.Multi<monitoring.Monitoring.SubsResponse> setKpiSubscription(monitoring.Monitoring.SubsDescriptor request); io.smallrye.mutiny.Multi<monitoring.Monitoring.AlarmResponse> getAlarmResponseStream(monitoring.Monitoring.AlarmSubscription request); diff --git a/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceBean.java b/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceBean.java index 21f7f48acd6b6870584133dc3d665f681e78cf5e..cbc984e7132bdbf22c9b99a510106c5c6f4cbda7 100644 --- a/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceBean.java +++ b/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceBean.java @@ -64,7 +64,7 @@ public class MonitoringServiceBean extends MutinyMonitoringServiceGrpc.Monitorin } } @Override - public io.smallrye.mutiny.Uni<monitoring.Monitoring.KpiList> queryKpiData(monitoring.Monitoring.KpiQuery request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.RawKpiTable> queryKpiData(monitoring.Monitoring.KpiQuery request) { try { return delegate.queryKpiData(request); } catch (UnsupportedOperationException e) { @@ -80,7 +80,7 @@ public class MonitoringServiceBean extends MutinyMonitoringServiceGrpc.Monitorin } } @Override - public io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsIDList> getSubscriptions(context.ContextOuterClass.Empty request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsList> getSubscriptions(context.ContextOuterClass.Empty request) { try { return delegate.getSubscriptions(request); } catch (UnsupportedOperationException e) { @@ -104,7 +104,7 @@ public class MonitoringServiceBean extends MutinyMonitoringServiceGrpc.Monitorin } } @Override - public io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmIDList> getAlarms(context.ContextOuterClass.Empty request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmList> getAlarms(context.ContextOuterClass.Empty request) { try { return delegate.getAlarms(request); } catch (UnsupportedOperationException e) { @@ -128,7 +128,7 @@ public class MonitoringServiceBean extends MutinyMonitoringServiceGrpc.Monitorin } } @Override - public io.smallrye.mutiny.Uni<monitoring.Monitoring.KpiList> getInstantKpi(monitoring.Monitoring.KpiId request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.Kpi> getInstantKpi(monitoring.Monitoring.KpiId request) { try { return delegate.getInstantKpi(request); } catch (UnsupportedOperationException e) { @@ -137,7 +137,7 @@ public class MonitoringServiceBean extends MutinyMonitoringServiceGrpc.Monitorin } @Override - public io.smallrye.mutiny.Multi<monitoring.Monitoring.KpiList> setKpiSubscription(monitoring.Monitoring.SubsDescriptor request) { + public io.smallrye.mutiny.Multi<monitoring.Monitoring.SubsResponse> setKpiSubscription(monitoring.Monitoring.SubsDescriptor request) { try { return delegate.setKpiSubscription(request); } catch (UnsupportedOperationException e) { diff --git a/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceClient.java b/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceClient.java index 6b6dc38645931ad94287b4151019c3b42a1c098d..0e8ff5d1b8929694b49548984cd7d53f9c8f68a4 100644 --- a/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceClient.java +++ b/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceClient.java @@ -45,7 +45,7 @@ public class MonitoringServiceClient implements MonitoringService, MutinyClient< return stub.monitorKpi(request); } @Override - public io.smallrye.mutiny.Uni<monitoring.Monitoring.KpiList> queryKpiData(monitoring.Monitoring.KpiQuery request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.RawKpiTable> queryKpiData(monitoring.Monitoring.KpiQuery request) { return stub.queryKpiData(request); } @Override @@ -53,7 +53,7 @@ public class MonitoringServiceClient implements MonitoringService, MutinyClient< return stub.getSubsDescriptor(request); } @Override - public io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsIDList> getSubscriptions(context.ContextOuterClass.Empty request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsList> getSubscriptions(context.ContextOuterClass.Empty request) { return stub.getSubscriptions(request); } @Override @@ -65,7 +65,7 @@ public class MonitoringServiceClient implements MonitoringService, MutinyClient< return stub.setKpiAlarm(request); } @Override - public io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmIDList> getAlarms(context.ContextOuterClass.Empty request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmList> getAlarms(context.ContextOuterClass.Empty request) { return stub.getAlarms(request); } @Override @@ -77,12 +77,12 @@ public class MonitoringServiceClient implements MonitoringService, MutinyClient< return stub.deleteAlarm(request); } @Override - public io.smallrye.mutiny.Uni<monitoring.Monitoring.KpiList> getInstantKpi(monitoring.Monitoring.KpiId request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.Kpi> getInstantKpi(monitoring.Monitoring.KpiId request) { return stub.getInstantKpi(request); } @Override - public io.smallrye.mutiny.Multi<monitoring.Monitoring.KpiList> setKpiSubscription(monitoring.Monitoring.SubsDescriptor request) { + public io.smallrye.mutiny.Multi<monitoring.Monitoring.SubsResponse> setKpiSubscription(monitoring.Monitoring.SubsDescriptor request) { return stub.setKpiSubscription(request); } diff --git a/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceGrpc.java b/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceGrpc.java index fe92a7814166b65b12db5d50bb4baaf525c59146..c5f55b3b44c03ea8f5377ce11e3c3e547da5ef06 100644 --- a/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceGrpc.java +++ b/src/automation/target/generated-sources/grpc/monitoring/MonitoringServiceGrpc.java @@ -201,28 +201,28 @@ public final class MonitoringServiceGrpc { } private static volatile io.grpc.MethodDescriptor<monitoring.Monitoring.KpiQuery, - monitoring.Monitoring.KpiList> getQueryKpiDataMethod; + monitoring.Monitoring.RawKpiTable> getQueryKpiDataMethod; @io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "QueryKpiData", requestType = monitoring.Monitoring.KpiQuery.class, - responseType = monitoring.Monitoring.KpiList.class, + responseType = monitoring.Monitoring.RawKpiTable.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<monitoring.Monitoring.KpiQuery, - monitoring.Monitoring.KpiList> getQueryKpiDataMethod() { - io.grpc.MethodDescriptor<monitoring.Monitoring.KpiQuery, monitoring.Monitoring.KpiList> getQueryKpiDataMethod; + monitoring.Monitoring.RawKpiTable> getQueryKpiDataMethod() { + io.grpc.MethodDescriptor<monitoring.Monitoring.KpiQuery, monitoring.Monitoring.RawKpiTable> getQueryKpiDataMethod; if ((getQueryKpiDataMethod = MonitoringServiceGrpc.getQueryKpiDataMethod) == null) { synchronized (MonitoringServiceGrpc.class) { if ((getQueryKpiDataMethod = MonitoringServiceGrpc.getQueryKpiDataMethod) == null) { MonitoringServiceGrpc.getQueryKpiDataMethod = getQueryKpiDataMethod = - io.grpc.MethodDescriptor.<monitoring.Monitoring.KpiQuery, monitoring.Monitoring.KpiList>newBuilder() + io.grpc.MethodDescriptor.<monitoring.Monitoring.KpiQuery, monitoring.Monitoring.RawKpiTable>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName(SERVICE_NAME, "QueryKpiData")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( monitoring.Monitoring.KpiQuery.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( - monitoring.Monitoring.KpiList.getDefaultInstance())) + monitoring.Monitoring.RawKpiTable.getDefaultInstance())) .setSchemaDescriptor(new MonitoringServiceMethodDescriptorSupplier("QueryKpiData")) .build(); } @@ -232,28 +232,28 @@ public final class MonitoringServiceGrpc { } private static volatile io.grpc.MethodDescriptor<monitoring.Monitoring.SubsDescriptor, - monitoring.Monitoring.KpiList> getSetKpiSubscriptionMethod; + monitoring.Monitoring.SubsResponse> getSetKpiSubscriptionMethod; @io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "SetKpiSubscription", requestType = monitoring.Monitoring.SubsDescriptor.class, - responseType = monitoring.Monitoring.KpiList.class, + responseType = monitoring.Monitoring.SubsResponse.class, methodType = io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING) public static io.grpc.MethodDescriptor<monitoring.Monitoring.SubsDescriptor, - monitoring.Monitoring.KpiList> getSetKpiSubscriptionMethod() { - io.grpc.MethodDescriptor<monitoring.Monitoring.SubsDescriptor, monitoring.Monitoring.KpiList> getSetKpiSubscriptionMethod; + monitoring.Monitoring.SubsResponse> getSetKpiSubscriptionMethod() { + io.grpc.MethodDescriptor<monitoring.Monitoring.SubsDescriptor, monitoring.Monitoring.SubsResponse> getSetKpiSubscriptionMethod; if ((getSetKpiSubscriptionMethod = MonitoringServiceGrpc.getSetKpiSubscriptionMethod) == null) { synchronized (MonitoringServiceGrpc.class) { if ((getSetKpiSubscriptionMethod = MonitoringServiceGrpc.getSetKpiSubscriptionMethod) == null) { MonitoringServiceGrpc.getSetKpiSubscriptionMethod = getSetKpiSubscriptionMethod = - io.grpc.MethodDescriptor.<monitoring.Monitoring.SubsDescriptor, monitoring.Monitoring.KpiList>newBuilder() + io.grpc.MethodDescriptor.<monitoring.Monitoring.SubsDescriptor, monitoring.Monitoring.SubsResponse>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING) .setFullMethodName(generateFullMethodName(SERVICE_NAME, "SetKpiSubscription")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( monitoring.Monitoring.SubsDescriptor.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( - monitoring.Monitoring.KpiList.getDefaultInstance())) + monitoring.Monitoring.SubsResponse.getDefaultInstance())) .setSchemaDescriptor(new MonitoringServiceMethodDescriptorSupplier("SetKpiSubscription")) .build(); } @@ -294,28 +294,28 @@ public final class MonitoringServiceGrpc { } private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, - monitoring.Monitoring.SubsIDList> getGetSubscriptionsMethod; + monitoring.Monitoring.SubsList> getGetSubscriptionsMethod; @io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "GetSubscriptions", requestType = context.ContextOuterClass.Empty.class, - responseType = monitoring.Monitoring.SubsIDList.class, + responseType = monitoring.Monitoring.SubsList.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, - monitoring.Monitoring.SubsIDList> getGetSubscriptionsMethod() { - io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, monitoring.Monitoring.SubsIDList> getGetSubscriptionsMethod; + monitoring.Monitoring.SubsList> getGetSubscriptionsMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, monitoring.Monitoring.SubsList> getGetSubscriptionsMethod; if ((getGetSubscriptionsMethod = MonitoringServiceGrpc.getGetSubscriptionsMethod) == null) { synchronized (MonitoringServiceGrpc.class) { if ((getGetSubscriptionsMethod = MonitoringServiceGrpc.getGetSubscriptionsMethod) == null) { MonitoringServiceGrpc.getGetSubscriptionsMethod = getGetSubscriptionsMethod = - io.grpc.MethodDescriptor.<context.ContextOuterClass.Empty, monitoring.Monitoring.SubsIDList>newBuilder() + io.grpc.MethodDescriptor.<context.ContextOuterClass.Empty, monitoring.Monitoring.SubsList>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetSubscriptions")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( context.ContextOuterClass.Empty.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( - monitoring.Monitoring.SubsIDList.getDefaultInstance())) + monitoring.Monitoring.SubsList.getDefaultInstance())) .setSchemaDescriptor(new MonitoringServiceMethodDescriptorSupplier("GetSubscriptions")) .build(); } @@ -387,28 +387,28 @@ public final class MonitoringServiceGrpc { } private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, - monitoring.Monitoring.AlarmIDList> getGetAlarmsMethod; + monitoring.Monitoring.AlarmList> getGetAlarmsMethod; @io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "GetAlarms", requestType = context.ContextOuterClass.Empty.class, - responseType = monitoring.Monitoring.AlarmIDList.class, + responseType = monitoring.Monitoring.AlarmList.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, - monitoring.Monitoring.AlarmIDList> getGetAlarmsMethod() { - io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, monitoring.Monitoring.AlarmIDList> getGetAlarmsMethod; + monitoring.Monitoring.AlarmList> getGetAlarmsMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, monitoring.Monitoring.AlarmList> getGetAlarmsMethod; if ((getGetAlarmsMethod = MonitoringServiceGrpc.getGetAlarmsMethod) == null) { synchronized (MonitoringServiceGrpc.class) { if ((getGetAlarmsMethod = MonitoringServiceGrpc.getGetAlarmsMethod) == null) { MonitoringServiceGrpc.getGetAlarmsMethod = getGetAlarmsMethod = - io.grpc.MethodDescriptor.<context.ContextOuterClass.Empty, monitoring.Monitoring.AlarmIDList>newBuilder() + io.grpc.MethodDescriptor.<context.ContextOuterClass.Empty, monitoring.Monitoring.AlarmList>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetAlarms")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( context.ContextOuterClass.Empty.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( - monitoring.Monitoring.AlarmIDList.getDefaultInstance())) + monitoring.Monitoring.AlarmList.getDefaultInstance())) .setSchemaDescriptor(new MonitoringServiceMethodDescriptorSupplier("GetAlarms")) .build(); } @@ -542,28 +542,28 @@ public final class MonitoringServiceGrpc { } private static volatile io.grpc.MethodDescriptor<monitoring.Monitoring.KpiId, - monitoring.Monitoring.KpiList> getGetInstantKpiMethod; + monitoring.Monitoring.Kpi> getGetInstantKpiMethod; @io.grpc.stub.annotations.RpcMethod( fullMethodName = SERVICE_NAME + '/' + "GetInstantKpi", requestType = monitoring.Monitoring.KpiId.class, - responseType = monitoring.Monitoring.KpiList.class, + responseType = monitoring.Monitoring.Kpi.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) public static io.grpc.MethodDescriptor<monitoring.Monitoring.KpiId, - monitoring.Monitoring.KpiList> getGetInstantKpiMethod() { - io.grpc.MethodDescriptor<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiList> getGetInstantKpiMethod; + monitoring.Monitoring.Kpi> getGetInstantKpiMethod() { + io.grpc.MethodDescriptor<monitoring.Monitoring.KpiId, monitoring.Monitoring.Kpi> getGetInstantKpiMethod; if ((getGetInstantKpiMethod = MonitoringServiceGrpc.getGetInstantKpiMethod) == null) { synchronized (MonitoringServiceGrpc.class) { if ((getGetInstantKpiMethod = MonitoringServiceGrpc.getGetInstantKpiMethod) == null) { MonitoringServiceGrpc.getGetInstantKpiMethod = getGetInstantKpiMethod = - io.grpc.MethodDescriptor.<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiList>newBuilder() + io.grpc.MethodDescriptor.<monitoring.Monitoring.KpiId, monitoring.Monitoring.Kpi>newBuilder() .setType(io.grpc.MethodDescriptor.MethodType.UNARY) .setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetInstantKpi")) .setSampledToLocalTracing(true) .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( monitoring.Monitoring.KpiId.getDefaultInstance())) .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( - monitoring.Monitoring.KpiList.getDefaultInstance())) + monitoring.Monitoring.Kpi.getDefaultInstance())) .setSchemaDescriptor(new MonitoringServiceMethodDescriptorSupplier("GetInstantKpi")) .build(); } @@ -665,14 +665,14 @@ public final class MonitoringServiceGrpc { /** */ public void queryKpiData(monitoring.Monitoring.KpiQuery request, - io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList> responseObserver) { + io.grpc.stub.StreamObserver<monitoring.Monitoring.RawKpiTable> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getQueryKpiDataMethod(), responseObserver); } /** */ public void setKpiSubscription(monitoring.Monitoring.SubsDescriptor request, - io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList> responseObserver) { + io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsResponse> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetKpiSubscriptionMethod(), responseObserver); } @@ -686,7 +686,7 @@ public final class MonitoringServiceGrpc { /** */ public void getSubscriptions(context.ContextOuterClass.Empty request, - io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsIDList> responseObserver) { + io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetSubscriptionsMethod(), responseObserver); } @@ -707,7 +707,7 @@ public final class MonitoringServiceGrpc { /** */ public void getAlarms(context.ContextOuterClass.Empty request, - io.grpc.stub.StreamObserver<monitoring.Monitoring.AlarmIDList> responseObserver) { + io.grpc.stub.StreamObserver<monitoring.Monitoring.AlarmList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetAlarmsMethod(), responseObserver); } @@ -742,7 +742,7 @@ public final class MonitoringServiceGrpc { /** */ public void getInstantKpi(monitoring.Monitoring.KpiId request, - io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList> responseObserver) { + io.grpc.stub.StreamObserver<monitoring.Monitoring.Kpi> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetInstantKpiMethod(), responseObserver); } @@ -795,14 +795,14 @@ public final class MonitoringServiceGrpc { io.grpc.stub.ServerCalls.asyncUnaryCall( new MethodHandlers< monitoring.Monitoring.KpiQuery, - monitoring.Monitoring.KpiList>( + monitoring.Monitoring.RawKpiTable>( this, METHODID_QUERY_KPI_DATA))) .addMethod( getSetKpiSubscriptionMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall( new MethodHandlers< monitoring.Monitoring.SubsDescriptor, - monitoring.Monitoring.KpiList>( + monitoring.Monitoring.SubsResponse>( this, METHODID_SET_KPI_SUBSCRIPTION))) .addMethod( getGetSubsDescriptorMethod(), @@ -816,7 +816,7 @@ public final class MonitoringServiceGrpc { io.grpc.stub.ServerCalls.asyncUnaryCall( new MethodHandlers< context.ContextOuterClass.Empty, - monitoring.Monitoring.SubsIDList>( + monitoring.Monitoring.SubsList>( this, METHODID_GET_SUBSCRIPTIONS))) .addMethod( getDeleteSubscriptionMethod(), @@ -837,7 +837,7 @@ public final class MonitoringServiceGrpc { io.grpc.stub.ServerCalls.asyncUnaryCall( new MethodHandlers< context.ContextOuterClass.Empty, - monitoring.Monitoring.AlarmIDList>( + monitoring.Monitoring.AlarmList>( this, METHODID_GET_ALARMS))) .addMethod( getGetAlarmDescriptorMethod(), @@ -872,7 +872,7 @@ public final class MonitoringServiceGrpc { io.grpc.stub.ServerCalls.asyncUnaryCall( new MethodHandlers< monitoring.Monitoring.KpiId, - monitoring.Monitoring.KpiList>( + monitoring.Monitoring.Kpi>( this, METHODID_GET_INSTANT_KPI))) .build(); } @@ -943,7 +943,7 @@ public final class MonitoringServiceGrpc { /** */ public void queryKpiData(monitoring.Monitoring.KpiQuery request, - io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList> responseObserver) { + io.grpc.stub.StreamObserver<monitoring.Monitoring.RawKpiTable> responseObserver) { io.grpc.stub.ClientCalls.asyncUnaryCall( getChannel().newCall(getQueryKpiDataMethod(), getCallOptions()), request, responseObserver); } @@ -951,7 +951,7 @@ public final class MonitoringServiceGrpc { /** */ public void setKpiSubscription(monitoring.Monitoring.SubsDescriptor request, - io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList> responseObserver) { + io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsResponse> responseObserver) { io.grpc.stub.ClientCalls.asyncServerStreamingCall( getChannel().newCall(getSetKpiSubscriptionMethod(), getCallOptions()), request, responseObserver); } @@ -967,7 +967,7 @@ public final class MonitoringServiceGrpc { /** */ public void getSubscriptions(context.ContextOuterClass.Empty request, - io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsIDList> responseObserver) { + io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsList> responseObserver) { io.grpc.stub.ClientCalls.asyncUnaryCall( getChannel().newCall(getGetSubscriptionsMethod(), getCallOptions()), request, responseObserver); } @@ -991,7 +991,7 @@ public final class MonitoringServiceGrpc { /** */ public void getAlarms(context.ContextOuterClass.Empty request, - io.grpc.stub.StreamObserver<monitoring.Monitoring.AlarmIDList> responseObserver) { + io.grpc.stub.StreamObserver<monitoring.Monitoring.AlarmList> responseObserver) { io.grpc.stub.ClientCalls.asyncUnaryCall( getChannel().newCall(getGetAlarmsMethod(), getCallOptions()), request, responseObserver); } @@ -1031,7 +1031,7 @@ public final class MonitoringServiceGrpc { /** */ public void getInstantKpi(monitoring.Monitoring.KpiId request, - io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList> responseObserver) { + io.grpc.stub.StreamObserver<monitoring.Monitoring.Kpi> responseObserver) { io.grpc.stub.ClientCalls.asyncUnaryCall( getChannel().newCall(getGetInstantKpiMethod(), getCallOptions()), request, responseObserver); } @@ -1095,14 +1095,14 @@ public final class MonitoringServiceGrpc { /** */ - public monitoring.Monitoring.KpiList queryKpiData(monitoring.Monitoring.KpiQuery request) { + public monitoring.Monitoring.RawKpiTable queryKpiData(monitoring.Monitoring.KpiQuery request) { return io.grpc.stub.ClientCalls.blockingUnaryCall( getChannel(), getQueryKpiDataMethod(), getCallOptions(), request); } /** */ - public java.util.Iterator<monitoring.Monitoring.KpiList> setKpiSubscription( + public java.util.Iterator<monitoring.Monitoring.SubsResponse> setKpiSubscription( monitoring.Monitoring.SubsDescriptor request) { return io.grpc.stub.ClientCalls.blockingServerStreamingCall( getChannel(), getSetKpiSubscriptionMethod(), getCallOptions(), request); @@ -1117,7 +1117,7 @@ public final class MonitoringServiceGrpc { /** */ - public monitoring.Monitoring.SubsIDList getSubscriptions(context.ContextOuterClass.Empty request) { + public monitoring.Monitoring.SubsList getSubscriptions(context.ContextOuterClass.Empty request) { return io.grpc.stub.ClientCalls.blockingUnaryCall( getChannel(), getGetSubscriptionsMethod(), getCallOptions(), request); } @@ -1138,7 +1138,7 @@ public final class MonitoringServiceGrpc { /** */ - public monitoring.Monitoring.AlarmIDList getAlarms(context.ContextOuterClass.Empty request) { + public monitoring.Monitoring.AlarmList getAlarms(context.ContextOuterClass.Empty request) { return io.grpc.stub.ClientCalls.blockingUnaryCall( getChannel(), getGetAlarmsMethod(), getCallOptions(), request); } @@ -1175,7 +1175,7 @@ public final class MonitoringServiceGrpc { /** */ - public monitoring.Monitoring.KpiList getInstantKpi(monitoring.Monitoring.KpiId request) { + public monitoring.Monitoring.Kpi getInstantKpi(monitoring.Monitoring.KpiId request) { return io.grpc.stub.ClientCalls.blockingUnaryCall( getChannel(), getGetInstantKpiMethod(), getCallOptions(), request); } @@ -1245,7 +1245,7 @@ public final class MonitoringServiceGrpc { /** */ - public com.google.common.util.concurrent.ListenableFuture<monitoring.Monitoring.KpiList> queryKpiData( + public com.google.common.util.concurrent.ListenableFuture<monitoring.Monitoring.RawKpiTable> queryKpiData( monitoring.Monitoring.KpiQuery request) { return io.grpc.stub.ClientCalls.futureUnaryCall( getChannel().newCall(getQueryKpiDataMethod(), getCallOptions()), request); @@ -1261,7 +1261,7 @@ public final class MonitoringServiceGrpc { /** */ - public com.google.common.util.concurrent.ListenableFuture<monitoring.Monitoring.SubsIDList> getSubscriptions( + public com.google.common.util.concurrent.ListenableFuture<monitoring.Monitoring.SubsList> getSubscriptions( context.ContextOuterClass.Empty request) { return io.grpc.stub.ClientCalls.futureUnaryCall( getChannel().newCall(getGetSubscriptionsMethod(), getCallOptions()), request); @@ -1285,7 +1285,7 @@ public final class MonitoringServiceGrpc { /** */ - public com.google.common.util.concurrent.ListenableFuture<monitoring.Monitoring.AlarmIDList> getAlarms( + public com.google.common.util.concurrent.ListenableFuture<monitoring.Monitoring.AlarmList> getAlarms( context.ContextOuterClass.Empty request) { return io.grpc.stub.ClientCalls.futureUnaryCall( getChannel().newCall(getGetAlarmsMethod(), getCallOptions()), request); @@ -1309,7 +1309,7 @@ public final class MonitoringServiceGrpc { /** */ - public com.google.common.util.concurrent.ListenableFuture<monitoring.Monitoring.KpiList> getInstantKpi( + public com.google.common.util.concurrent.ListenableFuture<monitoring.Monitoring.Kpi> getInstantKpi( monitoring.Monitoring.KpiId request) { return io.grpc.stub.ClientCalls.futureUnaryCall( getChannel().newCall(getGetInstantKpiMethod(), getCallOptions()), request); @@ -1378,11 +1378,11 @@ public final class MonitoringServiceGrpc { break; case METHODID_QUERY_KPI_DATA: serviceImpl.queryKpiData((monitoring.Monitoring.KpiQuery) request, - (io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList>) responseObserver); + (io.grpc.stub.StreamObserver<monitoring.Monitoring.RawKpiTable>) responseObserver); break; case METHODID_SET_KPI_SUBSCRIPTION: serviceImpl.setKpiSubscription((monitoring.Monitoring.SubsDescriptor) request, - (io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList>) responseObserver); + (io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsResponse>) responseObserver); break; case METHODID_GET_SUBS_DESCRIPTOR: serviceImpl.getSubsDescriptor((monitoring.Monitoring.SubscriptionID) request, @@ -1390,7 +1390,7 @@ public final class MonitoringServiceGrpc { break; case METHODID_GET_SUBSCRIPTIONS: serviceImpl.getSubscriptions((context.ContextOuterClass.Empty) request, - (io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsIDList>) responseObserver); + (io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsList>) responseObserver); break; case METHODID_DELETE_SUBSCRIPTION: serviceImpl.deleteSubscription((monitoring.Monitoring.SubscriptionID) request, @@ -1402,7 +1402,7 @@ public final class MonitoringServiceGrpc { break; case METHODID_GET_ALARMS: serviceImpl.getAlarms((context.ContextOuterClass.Empty) request, - (io.grpc.stub.StreamObserver<monitoring.Monitoring.AlarmIDList>) responseObserver); + (io.grpc.stub.StreamObserver<monitoring.Monitoring.AlarmList>) responseObserver); break; case METHODID_GET_ALARM_DESCRIPTOR: serviceImpl.getAlarmDescriptor((monitoring.Monitoring.AlarmID) request, @@ -1422,7 +1422,7 @@ public final class MonitoringServiceGrpc { break; case METHODID_GET_INSTANT_KPI: serviceImpl.getInstantKpi((monitoring.Monitoring.KpiId) request, - (io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList>) responseObserver); + (io.grpc.stub.StreamObserver<monitoring.Monitoring.Kpi>) responseObserver); break; default: throw new AssertionError(); diff --git a/src/automation/target/generated-sources/grpc/monitoring/MutinyMonitoringServiceGrpc.java b/src/automation/target/generated-sources/grpc/monitoring/MutinyMonitoringServiceGrpc.java index d663b38c923a2b5401642db4e697e16be4720f05..f045ecc7ed434ba90bdfda065f18e0d839850a76 100644 --- a/src/automation/target/generated-sources/grpc/monitoring/MutinyMonitoringServiceGrpc.java +++ b/src/automation/target/generated-sources/grpc/monitoring/MutinyMonitoringServiceGrpc.java @@ -66,7 +66,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim } - public io.smallrye.mutiny.Uni<monitoring.Monitoring.KpiList> queryKpiData(monitoring.Monitoring.KpiQuery request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.RawKpiTable> queryKpiData(monitoring.Monitoring.KpiQuery request) { return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::queryKpiData); } @@ -76,7 +76,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim } - public io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsIDList> getSubscriptions(context.ContextOuterClass.Empty request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsList> getSubscriptions(context.ContextOuterClass.Empty request) { return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::getSubscriptions); } @@ -91,7 +91,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim } - public io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmIDList> getAlarms(context.ContextOuterClass.Empty request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmList> getAlarms(context.ContextOuterClass.Empty request) { return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::getAlarms); } @@ -106,12 +106,12 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim } - public io.smallrye.mutiny.Uni<monitoring.Monitoring.KpiList> getInstantKpi(monitoring.Monitoring.KpiId request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.Kpi> getInstantKpi(monitoring.Monitoring.KpiId request) { return io.quarkus.grpc.runtime.ClientCalls.oneToOne(request, delegateStub::getInstantKpi); } - public io.smallrye.mutiny.Multi<monitoring.Monitoring.KpiList> setKpiSubscription(monitoring.Monitoring.SubsDescriptor request) { + public io.smallrye.mutiny.Multi<monitoring.Monitoring.SubsResponse> setKpiSubscription(monitoring.Monitoring.SubsDescriptor request) { return io.quarkus.grpc.runtime.ClientCalls.oneToMany(request, delegateStub::setKpiSubscription); } @@ -173,7 +173,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim } - public io.smallrye.mutiny.Uni<monitoring.Monitoring.KpiList> queryKpiData(monitoring.Monitoring.KpiQuery request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.RawKpiTable> queryKpiData(monitoring.Monitoring.KpiQuery request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } @@ -183,7 +183,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim } - public io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsIDList> getSubscriptions(context.ContextOuterClass.Empty request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.SubsList> getSubscriptions(context.ContextOuterClass.Empty request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } @@ -198,7 +198,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim } - public io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmIDList> getAlarms(context.ContextOuterClass.Empty request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.AlarmList> getAlarms(context.ContextOuterClass.Empty request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } @@ -213,12 +213,12 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim } - public io.smallrye.mutiny.Uni<monitoring.Monitoring.KpiList> getInstantKpi(monitoring.Monitoring.KpiId request) { + public io.smallrye.mutiny.Uni<monitoring.Monitoring.Kpi> getInstantKpi(monitoring.Monitoring.KpiId request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } - public io.smallrye.mutiny.Multi<monitoring.Monitoring.KpiList> setKpiSubscription(monitoring.Monitoring.SubsDescriptor request) { + public io.smallrye.mutiny.Multi<monitoring.Monitoring.SubsResponse> setKpiSubscription(monitoring.Monitoring.SubsDescriptor request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } @@ -281,14 +281,14 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim asyncUnaryCall( new MethodHandlers< monitoring.Monitoring.KpiQuery, - monitoring.Monitoring.KpiList>( + monitoring.Monitoring.RawKpiTable>( this, METHODID_QUERY_KPI_DATA, compression))) .addMethod( monitoring.MonitoringServiceGrpc.getSetKpiSubscriptionMethod(), asyncServerStreamingCall( new MethodHandlers< monitoring.Monitoring.SubsDescriptor, - monitoring.Monitoring.KpiList>( + monitoring.Monitoring.SubsResponse>( this, METHODID_SET_KPI_SUBSCRIPTION, compression))) .addMethod( monitoring.MonitoringServiceGrpc.getGetSubsDescriptorMethod(), @@ -302,7 +302,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim asyncUnaryCall( new MethodHandlers< context.ContextOuterClass.Empty, - monitoring.Monitoring.SubsIDList>( + monitoring.Monitoring.SubsList>( this, METHODID_GET_SUBSCRIPTIONS, compression))) .addMethod( monitoring.MonitoringServiceGrpc.getDeleteSubscriptionMethod(), @@ -323,7 +323,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim asyncUnaryCall( new MethodHandlers< context.ContextOuterClass.Empty, - monitoring.Monitoring.AlarmIDList>( + monitoring.Monitoring.AlarmList>( this, METHODID_GET_ALARMS, compression))) .addMethod( monitoring.MonitoringServiceGrpc.getGetAlarmDescriptorMethod(), @@ -358,7 +358,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim asyncUnaryCall( new MethodHandlers< monitoring.Monitoring.KpiId, - monitoring.Monitoring.KpiList>( + monitoring.Monitoring.Kpi>( this, METHODID_GET_INSTANT_KPI, compression))) .build(); } @@ -440,13 +440,13 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim break; case METHODID_QUERY_KPI_DATA: io.quarkus.grpc.runtime.ServerCalls.oneToOne((monitoring.Monitoring.KpiQuery) request, - (io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList>) responseObserver, + (io.grpc.stub.StreamObserver<monitoring.Monitoring.RawKpiTable>) responseObserver, compression, serviceImpl::queryKpiData); break; case METHODID_SET_KPI_SUBSCRIPTION: io.quarkus.grpc.runtime.ServerCalls.oneToMany((monitoring.Monitoring.SubsDescriptor) request, - (io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList>) responseObserver, + (io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsResponse>) responseObserver, compression, serviceImpl::setKpiSubscription); break; @@ -458,7 +458,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim break; case METHODID_GET_SUBSCRIPTIONS: io.quarkus.grpc.runtime.ServerCalls.oneToOne((context.ContextOuterClass.Empty) request, - (io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsIDList>) responseObserver, + (io.grpc.stub.StreamObserver<monitoring.Monitoring.SubsList>) responseObserver, compression, serviceImpl::getSubscriptions); break; @@ -476,7 +476,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim break; case METHODID_GET_ALARMS: io.quarkus.grpc.runtime.ServerCalls.oneToOne((context.ContextOuterClass.Empty) request, - (io.grpc.stub.StreamObserver<monitoring.Monitoring.AlarmIDList>) responseObserver, + (io.grpc.stub.StreamObserver<monitoring.Monitoring.AlarmList>) responseObserver, compression, serviceImpl::getAlarms); break; @@ -506,7 +506,7 @@ public final class MutinyMonitoringServiceGrpc implements io.quarkus.grpc.runtim break; case METHODID_GET_INSTANT_KPI: io.quarkus.grpc.runtime.ServerCalls.oneToOne((monitoring.Monitoring.KpiId) request, - (io.grpc.stub.StreamObserver<monitoring.Monitoring.KpiList>) responseObserver, + (io.grpc.stub.StreamObserver<monitoring.Monitoring.Kpi>) responseObserver, compression, serviceImpl::getInstantKpi); break; diff --git a/src/common/tools/descriptor/Tools.py b/src/common/tools/descriptor/Tools.py index 909cec9d97b5baa2f7b0198091c3921a71c9b1f7..cc7fa37577ec7b490756078a90aff959658274b4 100644 --- a/src/common/tools/descriptor/Tools.py +++ b/src/common/tools/descriptor/Tools.py @@ -74,7 +74,7 @@ def format_service_custom_config_rules(service : Dict) -> Dict: def format_slice_custom_config_rules(slice_ : Dict) -> Dict: config_rules = slice_.get('service_config', {}).get('config_rules', []) config_rules = format_custom_config_rules(config_rules) - slice_['service_config']['config_rules'] = config_rules + slice_['slice_config']['config_rules'] = config_rules return slice_ def split_devices_by_rules(devices : List[Dict]) -> Tuple[List[Dict], List[Dict]]: diff --git a/src/common/tools/object_factory/Service.py b/src/common/tools/object_factory/Service.py index 829c2f66751c8f578161620f569e87edebb9ce41..0b5ad820c565c50607180e0933795774fd5c2035 100644 --- a/src/common/tools/object_factory/Service.py +++ b/src/common/tools/object_factory/Service.py @@ -71,3 +71,13 @@ def json_service_tapi_planned( service_uuid, ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE, context_id=json_context_id(context_uuid), status=ServiceStatusEnum.SERVICESTATUS_PLANNED, endpoint_ids=endpoint_ids, constraints=constraints, config_rules=config_rules) + +def json_service_p4_planned( + service_uuid : str, endpoint_ids : List[Dict] = [], constraints : List[Dict] = [], + config_rules : List[Dict] = [], context_uuid : str = DEFAULT_CONTEXT_UUID + ): + + return json_service( + service_uuid, ServiceTypeEnum.SERVICETYPE_L2NM, context_id=json_context_id(context_uuid), + status=ServiceStatusEnum.SERVICESTATUS_PLANNED, endpoint_ids=endpoint_ids, constraints=constraints, + config_rules=config_rules) \ No newline at end of file diff --git a/src/device/service/drivers/xr/README_XR.md b/src/device/service/drivers/xr/README_XR.md index f7c2316ce5fa810969d373e1fad7bc5ca83b9e49..3bfdf5b019b3c36e7ded09d58ac625a48add36a9 100644 --- a/src/device/service/drivers/xr/README_XR.md +++ b/src/device/service/drivers/xr/README_XR.md @@ -110,7 +110,7 @@ Upload descriptors_emulatex_xr.json via WEB UI to setup fake topology. Setup service by following commands in src directory. Kubernetes endpoins change on every build, so setup script is mandatory. ```bash - source tests/ofc22/setup_test_env.sh + source device/service/drivers/xr/setup_test_env.sh python -m pytest --verbose tests/ofc22/tests/test_functional_create_service_xr.py ``` diff --git a/src/device/service/drivers/xr/cm/cm_connection.py b/src/device/service/drivers/xr/cm/cm_connection.py index 7e0fc61b72e7028fae00886cea4dcb2f922bfbf4..b4aee586668e842b372c3aa7b87240c5041c8118 100644 --- a/src/device/service/drivers/xr/cm/cm_connection.py +++ b/src/device/service/drivers/xr/cm/cm_connection.py @@ -61,7 +61,14 @@ class HttpResult: def __str__(self): status_code = self.status_code if self.status_code is not None else "<not executed>" - return f"{self.method} {self.url} {self.params}, status {status_code}" + if self.text: + if len(self.text) > 1024: + body_text = self.text[:1024] + "..." + else: + body_text = self.text + else: + body_text = "NONE" + return f"{self.method} {self.url} {self.params}, status {status_code}, body {body_text}" def process_http_response(self, response: requests.Response, permit_empty_body:bool = False): LOGGER.info(f"process_http_response(): {self.method}: {self.url} qparams={self.params} ==> {response.status_code}") # FIXME: params diff --git a/src/device/service/drivers/xr/cm/connection.py b/src/device/service/drivers/xr/cm/connection.py index e88995842eb0b6266d4d8eb42e2cc3197d89bea1..088c743d50d6c04fd0688b5c6318e35eae4d7dc0 100644 --- a/src/device/service/drivers/xr/cm/connection.py +++ b/src/device/service/drivers/xr/cm/connection.py @@ -79,6 +79,9 @@ class Connection: state = from_json["state"] self.name = state["name"] if "name" in state else None #Name is optional self.serviceMode = state["serviceMode"] + # Implicit transport capacity is a string, where value "none" has special meaning. + # So "none" is correct value, not "None" for missing attribute + self.implicitTransportCapacity = config["implicitTransportCapacity"] if "implicitTransportCapacity" in config else "none" self.mc = config["mc"] if "mc" in config else None self.vlan_filter = state["outerVID"] if "outerVID" in state else None self.href = from_json["href"] @@ -100,12 +103,15 @@ class Connection: # VLANs to interface names. Correspondingly cm-cli user has to know # to use VLANs on low level test APIs when using VTI mode. self.serviceMode = self.__guess_service_mode_from_emulated_enpoints() - if self.serviceMode == "portMode": + if self.serviceMode == "XR-L1": self.vlan_filter = None self.mc = None + self.implicitTransportCapacity ="portMode" else: self.vlan_filter = str(self.__guess_vlan_id()) + " " # Needs to be in string format, can contain ranges, regexp is buggy, trailin space is needed for single VLAN self.mc = "matchOuterVID" + # String "none" has a special meaning for implicitTransportCapacity + self.implicitTransportCapacity ="none" self.cm_data = None else: @@ -120,8 +126,8 @@ class Connection: def __guess_service_mode_from_emulated_enpoints(self): for ep in self.endpoints: if ep.vlan is not None: - return "vtiP2pSymmetric" - return "portMode" + return "XR-VTI-P2P" + return "XR-L1" def __guess_vlan_id(self) -> int: vlans = [] @@ -140,6 +146,7 @@ class Connection: cfg = {} set_optional_parameter(cfg, "name", self.name) cfg["serviceMode"] = self.serviceMode + cfg["implicitTransportCapacity"] = self.implicitTransportCapacity if self.endpoints: cfg["endpoints"] = [ep.create_config() for ep in self.endpoints] set_optional_parameter(cfg, "outerVID", self.vlan_filter) diff --git a/src/device/service/drivers/xr/cm/tests/resources/connections-expanded.json b/src/device/service/drivers/xr/cm/tests/resources/connections-expanded.json index f9f064ea20c3764ad0a5e4d0d3dfb60b468c2556..f4ee31189cb0dc698d4d79420bef4a8df6874b0e 100644 --- a/src/device/service/drivers/xr/cm/tests/resources/connections-expanded.json +++ b/src/device/service/drivers/xr/cm/tests/resources/connections-expanded.json @@ -2,7 +2,8 @@ { "config": { "name": "FooBar123", - "serviceMode": "portMode" + "serviceMode": "XR-L1", + "implicitTransportCapacity": "portMode" }, "endpoints": [ { @@ -141,12 +142,14 @@ "createdBy": "host", "lifecycleState": "configured", "name": "FooBar123", - "serviceMode": "portMode" + "serviceMode": "XR-L1", + "implicitTransportCapacity": "portMode" } }, { "config": { - "serviceMode": "portMode" + "serviceMode": "XR-L1", + "implicitTransportCapacity": "portMode" }, "endpoints": [ { @@ -284,7 +287,8 @@ "state": { "createdBy": "host", "lifecycleState": "configured", - "serviceMode": "portMode" + "serviceMode": "XR-L1", + "implicitTransportCapacity": "portMode" } } ] \ No newline at end of file diff --git a/src/device/service/drivers/xr/cm/tests/resources/single-connection-2022-12.json b/src/device/service/drivers/xr/cm/tests/resources/single-connection-2022-12.json new file mode 100644 index 0000000000000000000000000000000000000000..d4c0262cdbcf68194ed831670ec3314d4b11a906 --- /dev/null +++ b/src/device/service/drivers/xr/cm/tests/resources/single-connection-2022-12.json @@ -0,0 +1,160 @@ +[ + { + "config": { + "implicitTransportCapacity": "portMode", + "name": "test2", + "serviceMode": "XR-L1" + }, + "endpoints": [ + { + "acs": [], + "config": { + "selector": { + "moduleIfSelectorByModuleName": { + "moduleClientIfAid": "XR-T2", + "moduleName": "XR HUB 1" + } + } + }, + "href": "/network-connections/38675444-3f08-4dbe-a9c4-523ef309a518/endpoints/4801ecf5-fe37-4b8e-864f-2a0409210cb0", + "id": "4801ecf5-fe37-4b8e-864f-2a0409210cb0", + "parentId": "38675444-3f08-4dbe-a9c4-523ef309a518", + "rt": [ + "cm.network-connection.endpoint" + ], + "state": { + "capacity": 100, + "hostPort": { + "chassisId": "192.168.100.1", + "chassisIdSubtype": "networkAddress", + "name": "", + "portDescr": "et-1/0/0:1", + "portId": "et-1/0/0:1", + "portIdSubtype": "interfaceName", + "portSourceMAC": "58:00:BB:00:00:12", + "sysName": "SanJose" + }, + "moduleIf": { + "clientIfAid": "XR-T2", + "clientIfColId": 2, + "clientIfPortSpeed": 100, + "currentRole": "hub", + "macAddress": "00:0B:F8:00:00:01", + "moduleId": "68c23c59-3bcf-4d35-7042-a4a2d8a73e3f", + "moduleName": "XR HUB 1", + "serialNumber": "000000009" + } + } + }, + { + "acs": [], + "config": { + "selector": { + "moduleIfSelectorByModuleName": { + "moduleClientIfAid": "XR-T1", + "moduleName": "XR LEAF 2" + } + } + }, + "href": "/network-connections/38675444-3f08-4dbe-a9c4-523ef309a518/endpoints/123fc228-59ed-423e-8537-c189f3434a38", + "id": "123fc228-59ed-423e-8537-c189f3434a38", + "parentId": "38675444-3f08-4dbe-a9c4-523ef309a518", + "rt": [ + "cm.network-connection.endpoint" + ], + "state": { + "capacity": 100, + "hostPort": { + "chassisId": "192.168.101.2", + "chassisIdSubtype": "networkAddress", + "name": "", + "portDescr": "et-0/0/0:0", + "portId": "et-0/0/0:0", + "portIdSubtype": "interfaceName", + "portSourceMAC": "58:00:BB:00:12:01", + "sysName": "Cupertino" + }, + "moduleIf": { + "clientIfAid": "XR-T1", + "clientIfColId": 1, + "clientIfPortSpeed": 100, + "currentRole": "leaf", + "macAddress": "00:0B:F8:00:01:02", + "moduleId": "095a7a6b-1f69-4d2e-5581-cdffbb85e40f", + "moduleName": "XR LEAF 2", + "serialNumber": "00000000C" + } + } + } + ], + "href": "/network-connections/38675444-3f08-4dbe-a9c4-523ef309a518", + "id": "38675444-3f08-4dbe-a9c4-523ef309a518", + "lcs": [ + { + "config": { + "clientAid": "XR-T2", + "direction": "txRx", + "dscgAid": "XRCARRIERDSCG-3", + "moduleId": "68c23c59-3bcf-4d35-7042-a4a2d8a73e3f" + }, + "href": "/lcs/0d5929d8-6498-4c54-b38b-43c6cb85a18b", + "id": "0d5929d8-6498-4c54-b38b-43c6cb85a18b", + "parentIds": [ + "38675444-3f08-4dbe-a9c4-523ef309a518" + ], + "rt": [ + "cm.network-connection.local-connection" + ], + "state": { + "clientAid": "XR-T2", + "colId": 2, + "direction": "txRx", + "dscgAid": "XRCARRIERDSCG-3", + "lcAid": "XRLC-3", + "lineAid": "", + "macAddress": "00:0B:F8:00:00:01", + "moduleId": "68c23c59-3bcf-4d35-7042-a4a2d8a73e3f", + "remoteClientId": "", + "remoteModuleId": "" + } + }, + { + "config": { + "clientAid": "XR-T1", + "direction": "txRx", + "dscgAid": "XRCARRIERDSCG-3", + "moduleId": "095a7a6b-1f69-4d2e-5581-cdffbb85e40f" + }, + "href": "/lcs/1d6cc8bf-de89-4950-a01d-4b4522c65f8c", + "id": "1d6cc8bf-de89-4950-a01d-4b4522c65f8c", + "parentIds": [ + "38675444-3f08-4dbe-a9c4-523ef309a518" + ], + "rt": [ + "cm.network-connection.local-connection" + ], + "state": { + "clientAid": "XR-T1", + "colId": 1, + "direction": "txRx", + "dscgAid": "XRCARRIERDSCG-3", + "lcAid": "XRLC-3", + "lineAid": "", + "macAddress": "00:0B:F8:00:01:02", + "moduleId": "095a7a6b-1f69-4d2e-5581-cdffbb85e40f", + "remoteClientId": "", + "remoteModuleId": "" + } + } + ], + "rt": [ + "cm.network-connection" + ], + "state": { + "createdBy": "cm", + "lifecycleState": "configured", + "name": "test2", + "serviceMode": "XR-L1" + } + } +] \ No newline at end of file diff --git a/src/device/service/drivers/xr/cm/tests/test_connection.py b/src/device/service/drivers/xr/cm/tests/test_connection.py index 0792033a34d029628a853b9383af8c8a2c6272ad..cf1f9f8744dd58a31c15fc28a7f8e893aa17fb97 100644 --- a/src/device/service/drivers/xr/cm/tests/test_connection.py +++ b/src/device/service/drivers/xr/cm/tests/test_connection.py @@ -29,21 +29,21 @@ def test_connection_json(): connection = Connection(j[0]) assert connection.name == "FooBar123" - assert "name: FooBar123, id: /network-connections/4505d5d3-b2f3-40b8-8ec2-4a5b28523c03, service-mode: portMode, end-points: [(XR LEAF 1|XR-T1, 0), (XR HUB 1|XR-T1, 0)]" == str(connection) + assert "name: FooBar123, id: /network-connections/4505d5d3-b2f3-40b8-8ec2-4a5b28523c03, service-mode: XR-L1, end-points: [(XR LEAF 1|XR-T1, 0), (XR HUB 1|XR-T1, 0)]" == str(connection) config = connection.create_config() - expected_config = {'name': 'FooBar123', 'serviceMode': 'portMode', 'endpoints': [{'selector': {'ifSelectorByModuleName': {'moduleName': 'XR LEAF 1', 'moduleClientIfAid': 'XR-T1'}}}, {'selector': {'ifSelectorByModuleName': {'moduleName': 'XR HUB 1', 'moduleClientIfAid': 'XR-T1'}}}]} + expected_config = {'name': 'FooBar123', 'serviceMode': 'XR-L1', 'implicitTransportCapacity': 'portMode', 'endpoints': [{'selector': {'moduleIfSelectorByModuleName': {'moduleName': 'XR LEAF 1', 'moduleClientIfAid': 'XR-T1'}}}, {'selector': {'moduleIfSelectorByModuleName': {'moduleName': 'XR HUB 1', 'moduleClientIfAid': 'XR-T1'}}}]} assert config == expected_config # Remove mandatory key from leaf endpoint. It will not be parsed, but hub endpoint will del j[0]["endpoints"][0]["state"]["moduleIf"]["clientIfAid"] connection = Connection(j[0]) - assert "name: FooBar123, id: /network-connections/4505d5d3-b2f3-40b8-8ec2-4a5b28523c03, service-mode: portMode, end-points: [(XR HUB 1|XR-T1, 0)]" == str(connection) + assert "name: FooBar123, id: /network-connections/4505d5d3-b2f3-40b8-8ec2-4a5b28523c03, service-mode: XR-L1, end-points: [(XR HUB 1|XR-T1, 0)]" == str(connection) # Remove Name, it is optional (although TF will always configure it) del j[0]["state"]["name"] connection = Connection(j[0]) - assert "name: <NO NAME>, id: /network-connections/4505d5d3-b2f3-40b8-8ec2-4a5b28523c03, service-mode: portMode, end-points: [(XR HUB 1|XR-T1, 0)]" == str(connection) + assert "name: <NO NAME>, id: /network-connections/4505d5d3-b2f3-40b8-8ec2-4a5b28523c03, service-mode: XR-L1, end-points: [(XR HUB 1|XR-T1, 0)]" == str(connection) # Remove mandatory key, will raise an exception del j[0]["state"] @@ -66,14 +66,14 @@ def test_connection_ep_change_compute(): new_connection = Connection(from_tf_service=TFService("FooBar123", "XR LEAF 1|XR-T1", "XR HUB 1|changed here", 0)) ep_deletes, ep_creates, ep_updates = new_connection.get_endpoint_updates(existing_connection) assert ep_deletes == ['/network-connections/4505d5d3-b2f3-40b8-8ec2-4a5b28523c03/endpoints/1d58ba8f-4d51-4213-83e1-97a0e0bdd388'] - assert ep_creates == [{'selector': {'ifSelectorByModuleName': {'moduleClientIfAid': 'changed here', 'moduleName': 'XR HUB 1'}}}] + assert ep_creates == [{'selector': {'moduleIfSelectorByModuleName': {'moduleClientIfAid': 'changed here', 'moduleName': 'XR HUB 1'}}}] assert not ep_updates # Change one of the endpoints and capacity new_connection = Connection(from_tf_service=TFService("FooBar123", "XR LEAF 1|XR-T1", "XR HUB 1|changed here", 125)) ep_deletes, ep_creates, ep_updates = new_connection.get_endpoint_updates(existing_connection) assert ep_deletes == ['/network-connections/4505d5d3-b2f3-40b8-8ec2-4a5b28523c03/endpoints/1d58ba8f-4d51-4213-83e1-97a0e0bdd388'] - assert ep_creates == [{'selector': {'ifSelectorByModuleName': {'moduleClientIfAid': 'changed here', 'moduleName': 'XR HUB 1'}}, "capacity": 125}] + assert ep_creates == [{'selector': {'moduleIfSelectorByModuleName': {'moduleClientIfAid': 'changed here', 'moduleName': 'XR HUB 1'}}, "capacity": 125}] assert ep_updates == [('/network-connections/4505d5d3-b2f3-40b8-8ec2-4a5b28523c03/endpoints/230516d0-7e38-44b1-b174-1ba7d4454ee6', {'capacity': 125})] # No change at all @@ -93,13 +93,13 @@ def test_connection_ep_change_compute(): def test_connection_from_service(): # Port mode connection = Connection(from_tf_service=TFService("FooBar123", "XR LEAF 1|XR-T1", "XR HUB 1|XR-T1", 0)) - assert connection.create_config() == {'name': 'TF:FooBar123', 'serviceMode': 'portMode', 'endpoints': [{'selector': {'ifSelectorByModuleName': {'moduleName': 'XR LEAF 1', 'moduleClientIfAid': 'XR-T1'}}}, {'selector': {'ifSelectorByModuleName': {'moduleName': 'XR HUB 1', 'moduleClientIfAid': 'XR-T1'}}}]} + assert connection.create_config() == {'name': 'TF:FooBar123', 'serviceMode': 'XR-L1', 'implicitTransportCapacity': 'portMode', 'endpoints': [{'selector': {'moduleIfSelectorByModuleName': {'moduleName': 'XR LEAF 1', 'moduleClientIfAid': 'XR-T1'}}}, {'selector': {'moduleIfSelectorByModuleName': {'moduleName': 'XR HUB 1', 'moduleClientIfAid': 'XR-T1'}}}]} # VTI mode connection = Connection(from_tf_service=TFService("FooBar123", "XR LEAF 1|XR-T1.A", "XR HUB 1|XR-T1.100", 0)) # In endpoint selectors VLANs are note present (CM does not know about them, encoding them to aids is purely internal to Teraflow) # However VLAN adds outerVID and some other fields - assert connection.create_config() == {'name': 'TF:FooBar123', 'serviceMode': 'vtiP2pSymmetric', 'endpoints': [{'selector': {'ifSelectorByModuleName': {'moduleName': 'XR LEAF 1', 'moduleClientIfAid': 'XR-T1'}}}, {'selector': {'ifSelectorByModuleName': {'moduleName': 'XR HUB 1', 'moduleClientIfAid': 'XR-T1'}}}], 'outerVID': '100 ', 'mc': 'matchOuterVID'} + assert connection.create_config() == {'name': 'TF:FooBar123', 'serviceMode': 'XR-VTI-P2P', 'implicitTransportCapacity': 'none', 'endpoints': [{'selector': {'moduleIfSelectorByModuleName': {'moduleName': 'XR LEAF 1', 'moduleClientIfAid': 'XR-T1'}}}, {'selector': {'moduleIfSelectorByModuleName': {'moduleName': 'XR HUB 1', 'moduleClientIfAid': 'XR-T1'}}}], 'outerVID': '100 ', 'mc': 'matchOuterVID'} # Invalid configuration, differring VLANs on different sides with pytest.raises(InconsistentVlanConfiguration) as _e_info: diff --git a/src/device/service/drivers/xr/cm/tests/test_transport_capacitity.py b/src/device/service/drivers/xr/cm/tests/test_transport_capacitity.py index cfdadae6a5e150e9890076dba0e657aea6fa3b1e..7ed085337ac25b1c6983f868de1374fff18633a7 100644 --- a/src/device/service/drivers/xr/cm/tests/test_transport_capacitity.py +++ b/src/device/service/drivers/xr/cm/tests/test_transport_capacitity.py @@ -34,7 +34,7 @@ def test_transport_capacity_json(): assert str(tc) == "name: Transport capacity service example, id: /transport-capacities/6ce3aa86-2685-44b0-9f86-49e6a6c991a8, capacity-mode: dedicatedDownlinkSymmetric, end-points: [(XR Device|XR T1, 100), (XR Device 2|XR T1, 100)]" config = tc.create_config() - assert config == {'config': {'name': 'Transport capacity service example'}, 'endpoints': [{'capacity': 100, 'selector': {'ifSelectorByModuleName': {'moduleName': 'XR Device', 'moduleClientIfAid': 'XR T1'}}}, {'capacity': 100, 'selector': {'ifSelectorByModuleName': {'moduleName': 'XR Device 2', 'moduleClientIfAid': 'XR T1'}}}]} + assert config == {'config': {'name': 'Transport capacity service example'}, 'endpoints': [{'capacity': 100, 'selector': {'moduleIfSelectorByModuleName': {'moduleName': 'XR Device', 'moduleClientIfAid': 'XR T1'}}}, {'capacity': 100, 'selector': {'moduleIfSelectorByModuleName': {'moduleName': 'XR Device 2', 'moduleClientIfAid': 'XR T1'}}}]} def test_transport_capacity_comparison(): # Same content must compare same diff --git a/src/device/service/drivers/xr/cm/utils.py b/src/device/service/drivers/xr/cm/utils.py index cdf9e58c348f572c1547bb392a8cddba7669d0b0..ad59dc6616f50023f923dac67025b0b5aa74cf16 100644 --- a/src/device/service/drivers/xr/cm/utils.py +++ b/src/device/service/drivers/xr/cm/utils.py @@ -43,7 +43,7 @@ def ifname_to_module_aid_vlan(ifname: str) -> Tuple[str, str, Optional[str]]: # state it has clientIfAid... def make_selector(mod, aid, _vlan) -> Dict[str, Any]: selector = { - "ifSelectorByModuleName": { + "moduleIfSelectorByModuleName": { "moduleName": mod, "moduleClientIfAid": aid, } diff --git a/src/device/service/drivers/xr/setup_test_env.sh b/src/device/service/drivers/xr/setup_test_env.sh new file mode 100755 index 0000000000000000000000000000000000000000..1f8b0a5a7a8dc986715c6f54a62151f6afa4ad80 --- /dev/null +++ b/src/device/service/drivers/xr/setup_test_env.sh @@ -0,0 +1,9 @@ +#!/bin/sh +export CONTEXTSERVICE_SERVICE_HOST=$(kubectl get service/contextservice --namespace tfs --template '{{.spec.clusterIP}}') +export CONTEXTSERVICE_SERVICE_PORT_GRPC=$(kubectl get service/contextservice --namespace tfs -o jsonpath='{.spec.ports[?(@.name=="grpc")].port}') +export COMPUTESERVICE_SERVICE_HOST=$(kubectl get service/computeservice --namespace tfs --template '{{.spec.clusterIP}}') +export COMPUTESERVICE_SERVICE_PORT_HTTP=$(kubectl get service/computeservice --namespace tfs -o jsonpath='{.spec.ports[?(@.name=="http")].port}') +echo "CONTEXTSERVICE_SERVICE_HOST=$CONTEXTSERVICE_SERVICE_HOST" +echo "CONTEXTSERVICE_SERVICE_PORT_GRPC=$CONTEXTSERVICE_SERVICE_PORT_GRPC" +echo "COMPUTESERVICE_SERVICE_HOST=$COMPUTESERVICE_SERVICE_HOST" +echo "COMPUTESERVICE_SERVICE_PORT_HTTP=$COMPUTESERVICE_SERVICE_PORT_HTTP" diff --git a/src/policy/target/kubernetes/kubernetes.yml b/src/policy/target/kubernetes/kubernetes.yml index e85477c29ced250510738c6463659c5609834df6..1a2b4e26c2147273256587e5580265464be69758 100644 --- a/src/policy/target/kubernetes/kubernetes.yml +++ b/src/policy/target/kubernetes/kubernetes.yml @@ -11,15 +11,12 @@ metadata: name: policyservice spec: ports: - - name: grpc-server - port: 6060 - targetPort: 6060 - - 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 @@ -80,9 +77,6 @@ spec: - containerPort: 6060 name: grpc protocol: TCP - - containerPort: 6060 - name: grpc-server - protocol: TCP readinessProbe: failureThreshold: 3 httpGet: diff --git a/src/service/service/service_handler_api/FilterFields.py b/src/service/service/service_handler_api/FilterFields.py index 0f21812089e2af8271884ef7539f979ff0426a5a..afc15795c7b6ae8bf59b719db2f3d920614aa51c 100644 --- a/src/service/service/service_handler_api/FilterFields.py +++ b/src/service/service/service_handler_api/FilterFields.py @@ -23,7 +23,7 @@ SERVICE_TYPE_VALUES = { ServiceTypeEnum.SERVICETYPE_UNKNOWN, ServiceTypeEnum.SERVICETYPE_L3NM, ServiceTypeEnum.SERVICETYPE_L2NM, - ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE, + ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE } DEVICE_DRIVER_VALUES = { diff --git a/src/service/service/service_handlers/__init__.py b/src/service/service/service_handlers/__init__.py index 34689ca1136c68611a098115b5acf5b74a788372..78978cc6c39c31340bd10139cb00f2cc18a7ef13 100644 --- a/src/service/service/service_handlers/__init__.py +++ b/src/service/service/service_handlers/__init__.py @@ -15,8 +15,10 @@ from common.proto.context_pb2 import DeviceDriverEnum, ServiceTypeEnum from ..service_handler_api.FilterFields import FilterFieldEnum from .l2nm_emulated.L2NMEmulatedServiceHandler import L2NMEmulatedServiceHandler +from .l2nm_openconfig.L2NMOpenConfigServiceHandler import L2NMOpenConfigServiceHandler from .l3nm_emulated.L3NMEmulatedServiceHandler import L3NMEmulatedServiceHandler from .l3nm_openconfig.L3NMOpenConfigServiceHandler import L3NMOpenConfigServiceHandler +from .p4.p4_service_handler import P4ServiceHandler from .tapi_tapi.TapiServiceHandler import TapiServiceHandler from .microwave.MicrowaveServiceHandler import MicrowaveServiceHandler @@ -27,6 +29,12 @@ SERVICE_HANDLERS = [ FilterFieldEnum.DEVICE_DRIVER : DeviceDriverEnum.DEVICEDRIVER_UNDEFINED, } ]), + (L2NMOpenConfigServiceHandler, [ + { + FilterFieldEnum.SERVICE_TYPE : ServiceTypeEnum.SERVICETYPE_L2NM, + FilterFieldEnum.DEVICE_DRIVER : DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG, + } + ]), (L3NMEmulatedServiceHandler, [ { FilterFieldEnum.SERVICE_TYPE : ServiceTypeEnum.SERVICETYPE_L3NM, @@ -51,4 +59,10 @@ SERVICE_HANDLERS = [ FilterFieldEnum.DEVICE_DRIVER : DeviceDriverEnum.DEVICEDRIVER_IETF_NETWORK_TOPOLOGY, } ]), -] \ No newline at end of file + (P4ServiceHandler, [ + { + FilterFieldEnum.SERVICE_TYPE: ServiceTypeEnum.SERVICETYPE_L2NM, + FilterFieldEnum.DEVICE_DRIVER: DeviceDriverEnum.DEVICEDRIVER_P4, + } + ]), +] diff --git a/src/service/service/service_handlers/l2nm_openconfig/ConfigRules.py b/src/service/service/service_handlers/l2nm_openconfig/ConfigRules.py new file mode 100644 index 0000000000000000000000000000000000000000..f12c9ab984205b9057dd1507114e5bc17d8deaa6 --- /dev/null +++ b/src/service/service/service_handlers/l2nm_openconfig/ConfigRules.py @@ -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. + +from typing import Dict, List +from common.tools.object_factory.ConfigRule import json_config_rule_delete, json_config_rule_set +from service.service.service_handler_api.AnyTreeTools import TreeNode + +def setup_config_rules( + service_uuid : str, connection_uuid : str, device_uuid : str, endpoint_uuid : str, + service_settings : TreeNode, endpoint_settings : TreeNode +) -> List[Dict]: + + json_settings : Dict = {} if service_settings is None else service_settings.value + json_endpoint_settings : Dict = {} if endpoint_settings is None else endpoint_settings.value + + mtu = json_settings.get('mtu', 1450 ) # 1512 + #address_families = json_settings.get('address_families', [] ) # ['IPV4'] + #bgp_as = json_settings.get('bgp_as', 0 ) # 65000 + #bgp_route_target = json_settings.get('bgp_route_target', '0:0') # 65000:333 + + router_id = json_endpoint_settings.get('router_id', '0.0.0.0') # '10.95.0.10' + #route_distinguisher = json_endpoint_settings.get('route_distinguisher', '0:0' ) # '60001:801' + sub_interface_index = json_endpoint_settings.get('sub_interface_index', 0 ) # 1 + vlan_id = json_endpoint_settings.get('vlan_id', 1 ) # 400 + #address_ip = json_endpoint_settings.get('address_ip', '0.0.0.0') # '2.2.2.1' + #address_prefix = json_endpoint_settings.get('address_prefix', 24 ) # 30 + remote_router = json_endpoint_settings.get('remote_router', '0.0.0.0') # '5.5.5.5' + circuit_id = json_endpoint_settings.get('circuit_id', '000' ) # '111' + + if_cirid_name = '{:s}.{:s}'.format(endpoint_uuid, str(circuit_id)) + network_instance_name = 'ELAN-AC:{:s}'.format(str(circuit_id)) + connection_point_id = 'VC-1' + + json_config_rules = [ + json_config_rule_set( + '/network_instance[default]', + {'name': 'default', 'type': 'DEFAULT_INSTANCE', 'router_id': router_id}), + + json_config_rule_set( + '/network_instance[default]/protocols[OSPF]', + {'name': 'default', 'identifier': 'OSPF', 'protocol_name': 'OSPF'}), + + json_config_rule_set( + '/network_instance[default]/protocols[STATIC]', + {'name': 'default', 'identifier': 'STATIC', 'protocol_name': 'STATIC'}), + + json_config_rule_set( + '/network_instance[{:s}]'.format(network_instance_name), + {'name': network_instance_name, 'type': 'L2VSI'}), + + json_config_rule_set( + '/interface[{:s}]/subinterface[{:d}]'.format(if_cirid_name, sub_interface_index), + {'name': if_cirid_name, 'type': 'l2vlan', 'index': sub_interface_index, 'vlan_id': vlan_id}), + + json_config_rule_set( + '/network_instance[{:s}]/interface[{:s}]'.format(network_instance_name, if_cirid_name), + {'name': network_instance_name, 'id': if_cirid_name, 'interface': if_cirid_name, + 'subinterface': sub_interface_index}), + + json_config_rule_set( + '/network_instance[{:s}]/connection_point[{:s}]'.format(network_instance_name, connection_point_id), + {'name': network_instance_name, 'connection_point': connection_point_id, 'VC_ID': circuit_id, + 'remote_system': remote_router}), + ] + return json_config_rules + +def teardown_config_rules( + service_uuid : str, connection_uuid : str, device_uuid : str, endpoint_uuid : str, + service_settings : TreeNode, endpoint_settings : TreeNode +) -> List[Dict]: + + #json_settings : Dict = {} if service_settings is None else service_settings.value + json_endpoint_settings : Dict = {} if endpoint_settings is None else endpoint_settings.value + + #mtu = json_settings.get('mtu', 1450 ) # 1512 + #address_families = json_settings.get('address_families', [] ) # ['IPV4'] + #bgp_as = json_settings.get('bgp_as', 0 ) # 65000 + #bgp_route_target = json_settings.get('bgp_route_target', '0:0') # 65000:333 + + router_id = json_endpoint_settings.get('router_id', '0.0.0.0') # '10.95.0.10' + #route_distinguisher = json_endpoint_settings.get('route_distinguisher', '0:0' ) # '60001:801' + sub_interface_index = json_endpoint_settings.get('sub_interface_index', 0 ) # 1 + #vlan_id = json_endpoint_settings.get('vlan_id', 1 ) # 400 + #address_ip = json_endpoint_settings.get('address_ip', '0.0.0.0') # '2.2.2.1' + #address_prefix = json_endpoint_settings.get('address_prefix', 24 ) # 30 + #remote_router = json_endpoint_settings.get('remote_router', '0.0.0.0') # '5.5.5.5' + circuit_id = json_endpoint_settings.get('circuit_id', '000' ) # '111' + + if_cirid_name = '{:s}.{:s}'.format(endpoint_uuid, str(circuit_id)) + network_instance_name = 'ELAN-AC:{:s}'.format(str(circuit_id)) + connection_point_id = 'VC-1' + + json_config_rules = [ + json_config_rule_delete( + '/network_instance[{:s}]/connection_point[{:s}]'.format(network_instance_name, connection_point_id), + {'name': network_instance_name, 'connection_point': connection_point_id}), + + json_config_rule_delete( + '/network_instance[{:s}]/interface[{:s}]'.format(network_instance_name, if_cirid_name), + {'name': network_instance_name, 'id': if_cirid_name, 'interface': if_cirid_name, + 'subinterface': sub_interface_index}), + + json_config_rule_delete( + '/interface[{:s}]/subinterface[{:d}]'.format(if_cirid_name, sub_interface_index), + {'name': if_cirid_name, 'index': sub_interface_index}), + + json_config_rule_delete( + '/network_instance[{:s}]'.format(network_instance_name), + {'name': network_instance_name}), + + json_config_rule_delete( + '/network_instance[default]/protocols[STATIC]', + {'name': 'default', 'identifier': 'STATIC', 'protocol_name': 'STATIC'}), + + json_config_rule_delete( + '/network_instance[default]/protocols[OSPF]', + {'name': 'default', 'identifier': 'OSPF', 'protocol_name': 'OSPF'}), + + json_config_rule_delete( + '/network_instance[default]', + {'name': 'default', 'type': 'DEFAULT_INSTANCE', 'router_id': router_id}), + ] + return json_config_rules diff --git a/src/service/service/service_handlers/l2nm_openconfig/L2NMOpenConfigServiceHandler.py b/src/service/service/service_handlers/l2nm_openconfig/L2NMOpenConfigServiceHandler.py new file mode 100644 index 0000000000000000000000000000000000000000..23df44413c17e66a631988eb6256316badf0d554 --- /dev/null +++ b/src/service/service/service_handlers/l2nm_openconfig/L2NMOpenConfigServiceHandler.py @@ -0,0 +1,187 @@ +# 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. + +import anytree, json, logging +from typing import Any, List, Optional, Tuple, Union +from common.method_wrappers.Decorator import MetricTypeEnum, MetricsPool, metered_subclass_method, INF +from common.proto.context_pb2 import ConfigActionEnum, ConfigRule, DeviceId, Service +from common.tools.object_factory.Device import json_device_id +from common.type_checkers.Checkers import chk_length, chk_type +from service.service.service_handler_api._ServiceHandler import _ServiceHandler +from service.service.service_handler_api.AnyTreeTools import TreeNode, delete_subnode, get_subnode, set_subnode_value +from service.service.task_scheduler.TaskExecutor import TaskExecutor +from .ConfigRules import setup_config_rules, teardown_config_rules + +LOGGER = logging.getLogger(__name__) + +HISTOGRAM_BUCKETS = ( + # .005, .01, .025, .05, .075, .1, .25, .5, .75, 1.0, INF + 0.0010, 0.0025, 0.0050, 0.0075, + 0.0100, 0.0250, 0.0500, 0.0750, + 0.1000, 0.2500, 0.5000, 0.7500, + 1.0000, 2.5000, 5.0000, 7.5000, + 10.0000, 25.000, 50.0000, 75.000, + 100.0, INF +) +METRICS_POOL = MetricsPool('Service', 'Handler', labels={'handler': 'l2nm_openconfig'}) +METRICS_POOL.get_or_create('SetEndpoint', MetricTypeEnum.HISTOGRAM_DURATION, buckets=HISTOGRAM_BUCKETS) +METRICS_POOL.get_or_create('DeleteEndpoint', MetricTypeEnum.HISTOGRAM_DURATION, buckets=HISTOGRAM_BUCKETS) +METRICS_POOL.get_or_create('SetConstraint', MetricTypeEnum.HISTOGRAM_DURATION, buckets=HISTOGRAM_BUCKETS) +METRICS_POOL.get_or_create('DeleteConstraint', MetricTypeEnum.HISTOGRAM_DURATION, buckets=HISTOGRAM_BUCKETS) +METRICS_POOL.get_or_create('SetConfig', MetricTypeEnum.HISTOGRAM_DURATION, buckets=HISTOGRAM_BUCKETS) +METRICS_POOL.get_or_create('DeleteConfig', MetricTypeEnum.HISTOGRAM_DURATION, buckets=HISTOGRAM_BUCKETS) + +class L2NMOpenConfigServiceHandler(_ServiceHandler): + def __init__( # pylint: disable=super-init-not-called + self, service : Service, task_executor : TaskExecutor, **settings + ) -> None: + self.__service = service + self.__task_executor = task_executor # pylint: disable=unused-private-member + self.__resolver = anytree.Resolver(pathattr='name') + self.__config = TreeNode('.') + for config_rule in service.service_config.config_rules: + action = config_rule.action + if config_rule.WhichOneof('config_rule') != 'custom': continue + resource_key = config_rule.custom.resource_key + resource_value = config_rule.custom.resource_value + if action == ConfigActionEnum.CONFIGACTION_SET: + try: + resource_value = json.loads(resource_value) + except: # pylint: disable=bare-except + pass + set_subnode_value(self.__resolver, self.__config, resource_key, resource_value) + elif action == ConfigActionEnum.CONFIGACTION_DELETE: + delete_subnode(self.__resolver, self.__config, resource_key) + + @metered_subclass_method(METRICS_POOL) + def SetEndpoint( + self, endpoints : List[Tuple[str, str, Optional[str]]], connection_uuid : Optional[str] = None + ) -> List[Union[bool, Exception]]: + chk_type('endpoints', endpoints, list) + if len(endpoints) == 0: return [] + + service_uuid = self.__service.service_id.service_uuid.uuid + settings : TreeNode = get_subnode(self.__resolver, self.__config, '/settings', None) + + results = [] + for endpoint in endpoints: + try: + chk_type('endpoint', endpoint, (tuple, list)) + chk_length('endpoint', endpoint, min_length=2, max_length=3) + device_uuid, endpoint_uuid = endpoint[0:2] # ignore topology_uuid by now + + endpoint_settings_uri = '/device[{:s}]/endpoint[{:s}]/settings'.format(device_uuid, endpoint_uuid) + endpoint_settings : TreeNode = get_subnode(self.__resolver, self.__config, endpoint_settings_uri, None) + + json_config_rules = setup_config_rules( + service_uuid, connection_uuid, device_uuid, endpoint_uuid, settings, endpoint_settings) + + device = self.__task_executor.get_device(DeviceId(**json_device_id(device_uuid))) + del device.device_config.config_rules[:] + for json_config_rule in json_config_rules: + device.device_config.config_rules.append(ConfigRule(**json_config_rule)) + self.__task_executor.configure_device(device) + results.append(True) + except Exception as e: # pylint: disable=broad-except + LOGGER.exception('Unable to SetEndpoint({:s})'.format(str(endpoint))) + results.append(e) + + return results + + @metered_subclass_method(METRICS_POOL) + def DeleteEndpoint( + self, endpoints : List[Tuple[str, str, Optional[str]]], connection_uuid : Optional[str] = None + ) -> List[Union[bool, Exception]]: + chk_type('endpoints', endpoints, list) + if len(endpoints) == 0: return [] + + service_uuid = self.__service.service_id.service_uuid.uuid + settings : TreeNode = get_subnode(self.__resolver, self.__config, '/settings', None) + + results = [] + for endpoint in endpoints: + try: + chk_type('endpoint', endpoint, (tuple, list)) + chk_length('endpoint', endpoint, min_length=2, max_length=3) + device_uuid, endpoint_uuid = endpoint[0:2] # ignore topology_uuid by now + + endpoint_settings_uri = '/device[{:s}]/endpoint[{:s}]/settings'.format(device_uuid, endpoint_uuid) + endpoint_settings : TreeNode = get_subnode(self.__resolver, self.__config, endpoint_settings_uri, None) + + json_config_rules = teardown_config_rules( + service_uuid, connection_uuid, device_uuid, endpoint_uuid, settings, endpoint_settings) + + device = self.__task_executor.get_device(DeviceId(**json_device_id(device_uuid))) + del device.device_config.config_rules[:] + for json_config_rule in json_config_rules: + device.device_config.config_rules.append(ConfigRule(**json_config_rule)) + self.__task_executor.configure_device(device) + results.append(True) + except Exception as e: # pylint: disable=broad-except + LOGGER.exception('Unable to DeleteEndpoint({:s})'.format(str(endpoint))) + results.append(e) + + return results + + @metered_subclass_method(METRICS_POOL) + def SetConstraint(self, constraints : List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: + chk_type('constraints', constraints, list) + if len(constraints) == 0: return [] + + msg = '[SetConstraint] Method not implemented. Constraints({:s}) are being ignored.' + LOGGER.warning(msg.format(str(constraints))) + return [True for _ in range(len(constraints))] + + @metered_subclass_method(METRICS_POOL) + def DeleteConstraint(self, constraints : List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: + chk_type('constraints', constraints, list) + if len(constraints) == 0: return [] + + msg = '[DeleteConstraint] Method not implemented. Constraints({:s}) are being ignored.' + LOGGER.warning(msg.format(str(constraints))) + return [True for _ in range(len(constraints))] + + @metered_subclass_method(METRICS_POOL) + def SetConfig(self, resources : List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: + chk_type('resources', resources, list) + if len(resources) == 0: return [] + + results = [] + for resource in resources: + try: + resource_key, resource_value = resource + resource_value = json.loads(resource_value) + set_subnode_value(self.__resolver, self.__config, resource_key, resource_value) + results.append(True) + except Exception as e: # pylint: disable=broad-except + LOGGER.exception('Unable to SetConfig({:s})'.format(str(resource))) + results.append(e) + + return results + + @metered_subclass_method(METRICS_POOL) + def DeleteConfig(self, resources : List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: + chk_type('resources', resources, list) + if len(resources) == 0: return [] + + results = [] + for resource in resources: + try: + resource_key, _ = resource + delete_subnode(self.__resolver, self.__config, resource_key) + except Exception as e: # pylint: disable=broad-except + LOGGER.exception('Unable to DeleteConfig({:s})'.format(str(resource))) + results.append(e) + + return results diff --git a/src/service/service/service_handlers/l2nm_openconfig/__init__.py b/src/service/service/service_handlers/l2nm_openconfig/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..70a33251242c51f49140e596b8208a19dd5245f7 --- /dev/null +++ b/src/service/service/service_handlers/l2nm_openconfig/__init__.py @@ -0,0 +1,14 @@ +# 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/service/service/service_handlers/p4/__init__.py b/src/service/service/service_handlers/p4/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9953c820575d42fa88351cc8de022d880ba96e6a --- /dev/null +++ b/src/service/service/service_handlers/p4/__init__.py @@ -0,0 +1,13 @@ +# 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/service/service/service_handlers/p4/p4_service_handler.py b/src/service/service/service_handlers/p4/p4_service_handler.py new file mode 100644 index 0000000000000000000000000000000000000000..48b9715b7bb89bc53d6888299836e9b2bf89f1d4 --- /dev/null +++ b/src/service/service/service_handlers/p4/p4_service_handler.py @@ -0,0 +1,305 @@ +# 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. + +""" +P4 service handler for the TeraFlowSDN controller. +""" + +import anytree, json, logging +from typing import Any, Dict, List, Optional, Tuple, Union +from common.proto.context_pb2 import ConfigActionEnum, ConfigRule, DeviceId, Service +from common.tools.object_factory.ConfigRule import json_config_rule, json_config_rule_delete, json_config_rule_set +from common.tools.object_factory.Device import json_device_id +from common.type_checkers.Checkers import chk_type, chk_length +from service.service.service_handler_api._ServiceHandler import _ServiceHandler +from service.service.service_handler_api.AnyTreeTools import TreeNode, delete_subnode, get_subnode, set_subnode_value +from service.service.task_scheduler.TaskExecutor import TaskExecutor + +LOGGER = logging.getLogger(__name__) + +def create_rule_set(endpoint_a, endpoint_b): + return json_config_rule_set( + 'table', + { + 'table-name': 'IngressPipeImpl.l2_exact_table', + 'match-fields': [ + { + 'match-field': 'standard_metadata.ingress_port', + 'match-value': endpoint_a + } + ], + 'action-name': 'IngressPipeImpl.set_egress_port', + 'action-params': [ + { + 'action-param': 'port', + 'action-value': endpoint_b + } + ] + } +) + +def create_rule_del(endpoint_a, endpoint_b): + return json_config_rule_delete( + 'table', + { + 'table-name': 'IngressPipeImpl.l2_exact_table', + 'match-fields': [ + { + 'match-field': 'standard_metadata.ingress_port', + 'match-value': endpoint_a + } + ], + 'action-name': 'IngressPipeImpl.set_egress_port', + 'action-params': [ + { + 'action-param': 'port', + 'action-value': endpoint_b + } + ] + } +) + +class P4ServiceHandler(_ServiceHandler): + def __init__(self, + service: Service, + task_executor : TaskExecutor, + **settings) -> None: + """ Initialize Driver. + Parameters: + service + The service instance (gRPC message) to be managed. + task_executor + An instance of Task Executor providing access to the + service handlers factory, the context and device clients, + and an internal cache of already-loaded gRPC entities. + **settings + Extra settings required by the service handler. + """ + self.__service = service + self.__task_executor = task_executor # pylint: disable=unused-private-member + + def SetEndpoint( + self, endpoints : List[Tuple[str, str, Optional[str]]], + connection_uuid : Optional[str] = None + ) -> List[Union[bool, Exception]]: + """ Create/Update service endpoints form a list. + Parameters: + endpoints: List[Tuple[str, str, Optional[str]]] + List of tuples, each containing a device_uuid, + endpoint_uuid and, optionally, the topology_uuid + of the endpoint to be added. + connection_uuid : Optional[str] + If specified, is the UUID of the connection this endpoint is associated to. + Returns: + results: List[Union[bool, Exception]] + List of results for endpoint changes requested. + Return values must be in the same order as the requested + endpoints. If an endpoint is properly added, True must be + returned; otherwise, the Exception that is raised during + the processing must be returned. + """ + chk_type('endpoints', endpoints, list) + if len(endpoints) == 0: return [] + + service_uuid = self.__service.service_id.service_uuid.uuid + + history = {} + + results = [] + index = {} + i = 0 + for endpoint in endpoints: + device_uuid, endpoint_uuid = endpoint[0:2] # ignore topology_uuid by now + if device_uuid in history: + try: + matched_endpoint_uuid = history.pop(device_uuid) + device = self.__task_executor.get_device(DeviceId(**json_device_id(device_uuid))) + + del device.device_config.config_rules[:] + + # One way + rule = create_rule_set(matched_endpoint_uuid, endpoint_uuid) + device.device_config.config_rules.append(ConfigRule(**rule)) + # The other way + rule = create_rule_set(endpoint_uuid, matched_endpoint_uuid) + device.device_config.config_rules.append(ConfigRule(**rule)) + + self.__task_executor.configure_device(device) + + results.append(True) + results[index[device_uuid]] = True + except Exception as e: + LOGGER.exception('Unable to SetEndpoint({:s})'.format(str(endpoint))) + results.append(e) + else: + history[device_uuid] = endpoint_uuid + index[device_uuid] = i + results.append(False) + i = i+1 + + return results + + def DeleteEndpoint( + self, endpoints : List[Tuple[str, str, Optional[str]]], + connection_uuid : Optional[str] = None + ) -> List[Union[bool, Exception]]: + """ Delete service endpoints form a list. + Parameters: + endpoints: List[Tuple[str, str, Optional[str]]] + List of tuples, each containing a device_uuid, + endpoint_uuid, and the topology_uuid of the endpoint + to be removed. + connection_uuid : Optional[str] + If specified, is the UUID of the connection this endpoint is associated to. + Returns: + results: List[Union[bool, Exception]] + List of results for endpoint deletions requested. + Return values must be in the same order as the requested + endpoints. If an endpoint is properly deleted, True must be + returned; otherwise, the Exception that is raised during + the processing must be returned. + """ + chk_type('endpoints', endpoints, list) + if len(endpoints) == 0: return [] + + service_uuid = self.__service.service_id.service_uuid.uuid + + history = {} + + results = [] + index = {} + i = 0 + for endpoint in endpoints: + device_uuid, endpoint_uuid = endpoint[0:2] # ignore topology_uuid by now + if device_uuid in history: + try: + matched_endpoint_uuid = history.pop(device_uuid) + device = self.__task_executor.get_device(DeviceId(**json_device_id(device_uuid))) + + del device.device_config.config_rules[:] + + # One way + rule = create_rule_del(matched_endpoint_uuid, endpoint_uuid) + device.device_config.config_rules.append(ConfigRule(**rule)) + # The other way + rule = create_rule_del(endpoint_uuid, matched_endpoint_uuid) + device.device_config.config_rules.append(ConfigRule(**rule)) + + self.__task_executor.configure_device(device) + + results.append(True) + results[index[device_uuid]] = True + except Exception as e: + LOGGER.exception('Unable to SetEndpoint({:s})'.format(str(endpoint))) + results.append(e) + else: + history[device_uuid] = endpoint_uuid + index[device_uuid] = i + results.append(False) + i = i+1 + + return results + + def SetConstraint(self, constraints: List[Tuple[str, Any]]) \ + -> List[Union[bool, Exception]]: + """ Create/Update service constraints. + Parameters: + constraints: List[Tuple[str, Any]] + List of tuples, each containing a constraint_type and the + new constraint_value to be set. + Returns: + results: List[Union[bool, Exception]] + List of results for constraint changes requested. + Return values must be in the same order as the requested + constraints. If a constraint is properly set, True must be + returned; otherwise, the Exception that is raised during + the processing must be returned. + """ + chk_type('constraints', constraints, list) + if len(constraints) == 0: return [] + + msg = '[SetConstraint] Method not implemented. Constraints({:s}) are being ignored.' + LOGGER.warning(msg.format(str(constraints))) + return [True for _ in range(len(constraints))] + + def DeleteConstraint(self, constraints: List[Tuple[str, Any]]) \ + -> List[Union[bool, Exception]]: + """ Delete service constraints. + Parameters: + constraints: List[Tuple[str, Any]] + List of tuples, each containing a constraint_type pointing + to the constraint to be deleted, and a constraint_value + containing possible additionally required values to locate + the constraint to be removed. + Returns: + results: List[Union[bool, Exception]] + List of results for constraint deletions requested. + Return values must be in the same order as the requested + constraints. If a constraint is properly deleted, True must + be returned; otherwise, the Exception that is raised during + the processing must be returned. + """ + chk_type('constraints', constraints, list) + if len(constraints) == 0: return [] + + msg = '[DeleteConstraint] Method not implemented. Constraints({:s}) are being ignored.' + LOGGER.warning(msg.format(str(constraints))) + return [True for _ in range(len(constraints))] + + def SetConfig(self, resources: List[Tuple[str, Any]]) \ + -> List[Union[bool, Exception]]: + """ Create/Update configuration for a list of service resources. + Parameters: + resources: List[Tuple[str, Any]] + List of tuples, each containing a resource_key pointing to + the resource to be modified, and a resource_value + containing the new value to be set. + Returns: + results: List[Union[bool, Exception]] + List of results for resource key changes requested. + Return values must be in the same order as the requested + resource keys. If a resource is properly set, True must be + returned; otherwise, the Exception that is raised during + the processing must be returned. + """ + chk_type('resources', resources, list) + if len(resources) == 0: return [] + + msg = '[SetConfig] Method not implemented. Resources({:s}) are being ignored.' + LOGGER.warning(msg.format(str(resources))) + return [True for _ in range(len(resources))] + + def DeleteConfig(self, resources: List[Tuple[str, Any]]) \ + -> List[Union[bool, Exception]]: + """ Delete configuration for a list of service resources. + Parameters: + resources: List[Tuple[str, Any]] + List of tuples, each containing a resource_key pointing to + the resource to be modified, and a resource_value containing + possible additionally required values to locate the value + to be removed. + Returns: + results: List[Union[bool, Exception]] + List of results for resource key deletions requested. + Return values must be in the same order as the requested + resource keys. If a resource is properly deleted, True must + be returned; otherwise, the Exception that is raised during + the processing must be returned. + """ + chk_type('resources', resources, list) + if len(resources) == 0: return [] + + msg = '[SetConfig] Method not implemented. Resources({:s}) are being ignored.' + LOGGER.warning(msg.format(str(resources))) + return [True for _ in range(len(resources))] \ No newline at end of file diff --git a/src/tests/benchmark/automation/.gitignore b/src/tests/benchmark/automation/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..0a3f4400d5c88b1af32c7667d69d2fdc12d5424e --- /dev/null +++ b/src/tests/benchmark/automation/.gitignore @@ -0,0 +1,2 @@ +# Add here your files containing confidential testbed details such as IP addresses, ports, usernames, passwords, etc. +descriptors_real.json diff --git a/src/tests/benchmark/automation/README.md b/src/tests/benchmark/automation/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8b5b2a01efc357b5d8eca6a6890b051b4ffac260 --- /dev/null +++ b/src/tests/benchmark/automation/README.md @@ -0,0 +1,17 @@ + +# Grafana k6 load testing tool + +# K6 Installation Instructions on Ubuntu + +sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69 +echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list +sudo apt-get update +sudo apt-get install k6 + +Or install k6 via snap: + +sudo apt install snapd +sudo snap install k6 + +# Running K6 +k6 run script.js \ No newline at end of file diff --git a/src/tests/benchmark/automation/ZtpAdd.js b/src/tests/benchmark/automation/ZtpAdd.js new file mode 100644 index 0000000000000000000000000000000000000000..0f649b8ccfbd910faadcc41549eddf34b83c6795 --- /dev/null +++ b/src/tests/benchmark/automation/ZtpAdd.js @@ -0,0 +1,55 @@ +import grpc from 'k6/net/grpc'; +import exec from "k6/execution"; +import { check, sleep } from 'k6'; + +const client = new grpc.Client(); +client.load(['../../../../proto'], 'automation.proto'); + +export const data = []; +for (let i = 1; i < 801; i++) { + data.push({ + "devRoleType": "DEV_CONF", + "devRoleId": { + "devId": {"device_uuid": {"uuid": "EMU-" + i}}, + "devRoleId": {"uuid": "EMU-" + i} + } + }); +}; + +export const options = { + scenarios :{ + + "ZtpAdd-scenario": { + executor: "shared-iterations", + vus: 800, + iterations: data.length, + maxDuration: "1h" + } + } +}; + +export default () => { + client.connect('10.1.255.239:5050', { + plaintext: true, + timeout: 10000 + }); + + var item = data[exec.scenario.iterationInInstance]; + const response = client.invoke('automation.AutomationService/ZtpAdd', item); + + check(response, { + 'status is OK': (r) => r && r.status === grpc.StatusOK, + }); + + console.log(JSON.stringify(response.message)); + + client.close(); + sleep(1); +}; + +export function handleSummary(data) { + + return { + 'summary_add_800.json': JSON.stringify(data.metrics.grpc_req_duration.values), //the default data object + }; +} diff --git a/src/tests/benchmark/automation/ZtpDelete.js b/src/tests/benchmark/automation/ZtpDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..58af9f25d924dda254e142dcf3962b62359ff42c --- /dev/null +++ b/src/tests/benchmark/automation/ZtpDelete.js @@ -0,0 +1,55 @@ +import grpc from 'k6/net/grpc'; +import exec from "k6/execution"; +import { check, sleep } from 'k6'; + +const client = new grpc.Client(); +client.load(['../../../../proto'], 'automation.proto'); + +export const data = []; +for (let i = 1; i < 801; i++) { + data.push({ + "devRoleType": "DEV_CONF", + "devRoleId": { + "devId": {"device_uuid": {"uuid": "EMU-" + i}}, + "devRoleId": {"uuid": "EMU-" + i} + } + }); +}; + +export const options = { + scenarios :{ + + "ZtpAdd-scenario": { + executor: "shared-iterations", + vus: 800, + iterations: data.length, + maxDuration: "1h" + } + } +}; + +export default () => { + client.connect('10.1.255.232:5050', { + plaintext: true, + timeout: 10000 + }); + + var item = data[exec.scenario.iterationInInstance]; + const response = client.invoke('automation.AutomationService/ZtpDelete', item); + + check(response, { + 'status is OK': (r) => r && r.status === grpc.StatusOK, + }); + + console.log(JSON.stringify(response.message)); + + client.close(); + sleep(1); +}; + +export function handleSummary(data) { + + return { + 'summary_delete_800.json': JSON.stringify(data.metrics.grpc_req_duration.values), //the default data object + }; +} diff --git a/src/tests/benchmark/automation/ZtpUpdate.js b/src/tests/benchmark/automation/ZtpUpdate.js new file mode 100755 index 0000000000000000000000000000000000000000..39135ec58643339562ff87c96a03be3968c198d4 --- /dev/null +++ b/src/tests/benchmark/automation/ZtpUpdate.js @@ -0,0 +1,60 @@ +import grpc from 'k6/net/grpc'; +import exec from "k6/execution"; +import { check, sleep } from 'k6'; + +const client = new grpc.Client(); +client.load(['../../../../proto'], 'automation.proto'); + +export const data = []; +for (let i = 1; i < 801; i++) { + data.push({ + "devRole": { + "devRoleType": "DEV_CONF", + "devRoleId": { + "devId": {"device_uuid": {"uuid": "EMU-"+i}}, + "devRoleId": {"uuid": "1"} + } + }, + "devConfig": { + "config_rules": [] + } + }); +}; + +export const options = { + scenarios :{ + + "ZtpAdd-scenario": { + executor: "shared-iterations", + vus: 800, + iterations: data.length, + maxDuration: "1h" + } + } +}; + +export default () => { + client.connect('10.1.255.250:5050', { + plaintext: true, + timeout: 10000 + }); + + var item = data[exec.scenario.iterationInInstance]; + const response = client.invoke('automation.AutomationService/ZtpUpdate', item); + + check(response, { + 'status is OK': (r) => r && r.status === grpc.StatusOK, + }); + + console.log(JSON.stringify(response.message)); + + client.close(); + sleep(1); +}; + +export function handleSummary(data) { + + return { + 'summaryUpdate801.json': JSON.stringify(data.metrics.grpc_req_duration.values), //the default data object + }; +} diff --git a/src/tests/benchmark/automation/__init__.py b/src/tests/benchmark/automation/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..70a33251242c51f49140e596b8208a19dd5245f7 --- /dev/null +++ b/src/tests/benchmark/automation/__init__.py @@ -0,0 +1,14 @@ +# 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/tests/benchmark/automation/run_test_01_bootstrap.sh b/src/tests/benchmark/automation/run_test_01_bootstrap.sh new file mode 100755 index 0000000000000000000000000000000000000000..dee1739270944bc19e370bb249b083f740e60737 --- /dev/null +++ b/src/tests/benchmark/automation/run_test_01_bootstrap.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +source tfs_runtime_env_vars.sh +pytest --verbose --log-level=INFO -o log_cli=true -o log_cli_level=INFO src/tests/benchmark/automation/tests/test_functional_bootstrap.py diff --git a/src/tests/benchmark/automation/run_test_02_cleanup.sh b/src/tests/benchmark/automation/run_test_02_cleanup.sh new file mode 100755 index 0000000000000000000000000000000000000000..8f68302d6abfeac6750fff7183524c644355008e --- /dev/null +++ b/src/tests/benchmark/automation/run_test_02_cleanup.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +source tfs_runtime_env_vars.sh +pytest --verbose --log-level=INFO -o log_cli=true -o log_cli_level=INFO src/tests/benchmark/automation/tests/test_functional_cleanup.py diff --git a/src/tests/benchmark/automation/tests/.gitignore b/src/tests/benchmark/automation/tests/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..76cb708d1b532c9b69166e55f36bcb912fd5e370 --- /dev/null +++ b/src/tests/benchmark/automation/tests/.gitignore @@ -0,0 +1,2 @@ +# Add here your files containing confidential testbed details such as IP addresses, ports, usernames, passwords, etc. +Credentials.py diff --git a/src/tests/benchmark/automation/tests/Fixtures.py b/src/tests/benchmark/automation/tests/Fixtures.py new file mode 100644 index 0000000000000000000000000000000000000000..3b35a12e299ba776e909fbdd2739e971431083a6 --- /dev/null +++ b/src/tests/benchmark/automation/tests/Fixtures.py @@ -0,0 +1,28 @@ +# 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. + +import pytest, logging +from common.Settings import get_setting +from tests.tools.mock_osm.Constants import WIM_PASSWORD, WIM_USERNAME +from tests.tools.mock_osm.MockOSM import MockOSM +from .Objects import WIM_MAPPING + +LOGGER = logging.getLogger(__name__) + +@pytest.fixture(scope='session') +def osm_wim(): + wim_url = 'http://{:s}:{:s}'.format( + get_setting('COMPUTESERVICE_SERVICE_HOST'), str(get_setting('COMPUTESERVICE_SERVICE_PORT_HTTP'))) + LOGGER.info('WIM_MAPPING = {:s}'.format(str(WIM_MAPPING))) + return MockOSM(wim_url, WIM_MAPPING, WIM_USERNAME, WIM_PASSWORD) diff --git a/src/tests/benchmark/automation/tests/Objects.py b/src/tests/benchmark/automation/tests/Objects.py new file mode 100644 index 0000000000000000000000000000000000000000..8ea6f500807e3dbcc2e34dbd559614ff91c955d8 --- /dev/null +++ b/src/tests/benchmark/automation/tests/Objects.py @@ -0,0 +1,54 @@ +# 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. + +from typing import Dict, List, Tuple +from common.Constants import DEFAULT_CONTEXT_UUID, DEFAULT_TOPOLOGY_UUID +from common.tools.object_factory.Context import json_context, json_context_id +from common.tools.object_factory.Device import ( + json_device_connect_rules, json_device_emulated_connect_rules, json_device_emulated_packet_router_disabled, + json_device_emulated_tapi_disabled, json_device_id, json_device_packetrouter_disabled, json_device_tapi_disabled) +from common.tools.object_factory.EndPoint import json_endpoint, json_endpoint_id +from common.tools.object_factory.Link import json_link, json_link_id +from common.tools.object_factory.Topology import json_topology, json_topology_id +from common.proto.kpi_sample_types_pb2 import KpiSampleType + +# ----- Context -------------------------------------------------------------------------------------------------------- +CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_UUID) +CONTEXT = json_context(DEFAULT_CONTEXT_UUID) + +# ----- Topology ------------------------------------------------------------------------------------------------------- +TOPOLOGY_ID = json_topology_id(DEFAULT_TOPOLOGY_UUID, context_id=CONTEXT_ID) +TOPOLOGY = json_topology(DEFAULT_TOPOLOGY_UUID, context_id=CONTEXT_ID) + +# ----- Monitoring Samples --------------------------------------------------------------------------------------------- +PACKET_PORT_SAMPLE_TYPES = [ + KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED, + KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED, + KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED, + KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED, +] + +# ----- Devices -------------------------------------------------------------------------------------------------------- +DEVICE_ENDPOINT_DEFS = [('13/0/0', 'optical', []), ('13/1/2', 'copper', PACKET_PORT_SAMPLE_TYPES)] +DEVICE_CONNECT_RULES = json_device_emulated_connect_rules(DEVICE_ENDPOINT_DEFS) + +# ----- Object Collections --------------------------------------------------------------------------------------------- +CONTEXTS = [CONTEXT] +TOPOLOGIES = [TOPOLOGY] + +DEVICES = [] +for x in range(1, 1000): + DEVICE_UUID = 'EMU-' + str(x) + DEVICE = json_device_emulated_packet_router_disabled(DEVICE_UUID) + DEVICES.append((DEVICE, DEVICE_CONNECT_RULES)) diff --git a/src/tests/benchmark/automation/tests/__init__.py b/src/tests/benchmark/automation/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..70a33251242c51f49140e596b8208a19dd5245f7 --- /dev/null +++ b/src/tests/benchmark/automation/tests/__init__.py @@ -0,0 +1,14 @@ +# 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/tests/benchmark/automation/tests/test_functional_bootstrap.py b/src/tests/benchmark/automation/tests/test_functional_bootstrap.py new file mode 100644 index 0000000000000000000000000000000000000000..3d588801511ae3bc6b5be87566c61b04bf54e467 --- /dev/null +++ b/src/tests/benchmark/automation/tests/test_functional_bootstrap.py @@ -0,0 +1,110 @@ +# 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. + +import copy, logging, pytest +from common.Settings import get_setting +from common.proto.monitoring_pb2 import KpiDescriptorList +from common.tests.EventTools import EVENT_CREATE, EVENT_UPDATE, check_events +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.Link import json_link_id +from common.tools.object_factory.Topology import json_topology_id +from context.client.ContextClient import ContextClient +from monitoring.client.MonitoringClient import MonitoringClient +from context.client.EventsCollector import EventsCollector +from common.proto.context_pb2 import Context, ContextId, Device, Empty, Topology +from device.client.DeviceClient import DeviceClient +from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, TOPOLOGIES +from tests.Fixtures import context_client, device_client, monitoring_client + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + + +def test_scenario_empty(context_client : ContextClient): # pylint: disable=redefined-outer-name + # ----- List entities - Ensure database is empty ------------------------------------------------------------------- + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == 0 + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == 0 + + +def test_prepare_scenario(context_client : ContextClient): # pylint: disable=redefined-outer-name + + # ----- Create Contexts and Topologies ----------------------------------------------------------------------------- + for context in CONTEXTS: + context_uuid = context['context_id']['context_uuid']['uuid'] + LOGGER.info('Adding Context {:s}'.format(context_uuid)) + response = context_client.SetContext(Context(**context)) + assert response.context_uuid.uuid == context_uuid + + for topology in TOPOLOGIES: + context_uuid = topology['topology_id']['context_id']['context_uuid']['uuid'] + topology_uuid = topology['topology_id']['topology_uuid']['uuid'] + LOGGER.info('Adding Topology {:s}/{:s}'.format(context_uuid, topology_uuid)) + response = context_client.SetTopology(Topology(**topology)) + assert response.context_id.context_uuid.uuid == context_uuid + assert response.topology_uuid.uuid == topology_uuid + context_id = json_context_id(context_uuid) + + +def test_scenario_ready(context_client : ContextClient): # pylint: disable=redefined-outer-name + # ----- List entities - Ensure scenario is ready ------------------------------------------------------------------- + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == len(CONTEXTS) + + response = context_client.ListTopologies(ContextId(**CONTEXT_ID)) + assert len(response.topologies) == len(TOPOLOGIES) + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == 0 + + +def test_devices_bootstraping( + context_client : ContextClient, device_client : DeviceClient): # pylint: disable=redefined-outer-name + + # ----- Create Devices and Validate Collected Events --------------------------------------------------------------- + for device, connect_rules in DEVICES: + device_uuid = device['device_id']['device_uuid']['uuid'] + LOGGER.info('Adding Device {:s}'.format(device_uuid)) + + device_with_connect_rules = copy.deepcopy(device) + device_with_connect_rules['device_config']['config_rules'].extend(connect_rules) + response = device_client.AddDevice(Device(**device_with_connect_rules)) + assert response.device_uuid.uuid == device_uuid + + +def test_devices_bootstrapped(context_client : ContextClient): # pylint: disable=redefined-outer-name + # ----- List entities - Ensure bevices are created ----------------------------------------------------------------- + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == len(CONTEXTS) + + response = context_client.ListTopologies(ContextId(**CONTEXT_ID)) + assert len(response.topologies) == len(TOPOLOGIES) + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == len(DEVICES) + + +def test_links_created(context_client : ContextClient): # pylint: disable=redefined-outer-name + # ----- List entities - Ensure links are created ------------------------------------------------------------------- + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == len(CONTEXTS) + + response = context_client.ListTopologies(ContextId(**CONTEXT_ID)) + assert len(response.topologies) == len(TOPOLOGIES) + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == len(DEVICES) \ No newline at end of file diff --git a/src/tests/benchmark/automation/tests/test_functional_cleanup.py b/src/tests/benchmark/automation/tests/test_functional_cleanup.py new file mode 100644 index 0000000000000000000000000000000000000000..9b6e51c3e296261e52669980f656c6fdf12ceb65 --- /dev/null +++ b/src/tests/benchmark/automation/tests/test_functional_cleanup.py @@ -0,0 +1,68 @@ +# 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. + +import logging, pytest +from common.Settings import get_setting +from common.tests.EventTools import EVENT_REMOVE, check_events +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.Link import json_link_id +from common.tools.object_factory.Topology import json_topology_id +from context.client.ContextClient import ContextClient +from context.client.EventsCollector import EventsCollector +from common.proto.context_pb2 import ContextId, DeviceId, Empty, LinkId, TopologyId +from device.client.DeviceClient import DeviceClient +from tests.Fixtures import context_client, device_client +from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, TOPOLOGIES + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +def test_scenario_cleanup( + context_client : ContextClient, device_client : DeviceClient): # pylint: disable=redefined-outer-name + + # ----- Delete Devices and Validate Collected Events --------------------------------------------------------------- + for device, _ in DEVICES: + device_id = device['device_id'] + device_uuid = device_id['device_uuid']['uuid'] + LOGGER.info('Deleting Device {:s}'.format(device_uuid)) + device_client.DeleteDevice(DeviceId(**device_id)) + #expected_events.append(('DeviceEvent', EVENT_REMOVE, json_device_id(device_uuid))) + + # ----- Delete Topologies and Validate Collected Events ------------------------------------------------------------ + for topology in TOPOLOGIES: + topology_id = topology['topology_id'] + context_uuid = topology_id['context_id']['context_uuid']['uuid'] + topology_uuid = topology_id['topology_uuid']['uuid'] + LOGGER.info('Deleting Topology {:s}/{:s}'.format(context_uuid, topology_uuid)) + context_client.RemoveTopology(TopologyId(**topology_id)) + context_id = json_context_id(context_uuid) + #expected_events.append(('TopologyEvent', EVENT_REMOVE, json_topology_id(topology_uuid, context_id=context_id))) + + # ----- Delete Contexts and Validate Collected Events -------------------------------------------------------------- + for context in CONTEXTS: + context_id = context['context_id'] + context_uuid = context_id['context_uuid']['uuid'] + LOGGER.info('Deleting Context {:s}'.format(context_uuid)) + context_client.RemoveContext(ContextId(**context_id)) + #expected_events.append(('ContextEvent', EVENT_REMOVE, json_context_id(context_uuid))) + + +def test_scenario_empty_again(context_client : ContextClient): # pylint: disable=redefined-outer-name + # ----- List entities - Ensure database is empty again ------------------------------------------------------------- + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == 0 + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == 0 diff --git a/src/tests/benchmark/policy/.gitignore b/src/tests/benchmark/policy/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..0a3f4400d5c88b1af32c7667d69d2fdc12d5424e --- /dev/null +++ b/src/tests/benchmark/policy/.gitignore @@ -0,0 +1,2 @@ +# Add here your files containing confidential testbed details such as IP addresses, ports, usernames, passwords, etc. +descriptors_real.json diff --git a/src/tests/benchmark/policy/PolicyAddService.js b/src/tests/benchmark/policy/PolicyAddService.js new file mode 100644 index 0000000000000000000000000000000000000000..708209ba01862a169dd7007a05e2ba29a198282a --- /dev/null +++ b/src/tests/benchmark/policy/PolicyAddService.js @@ -0,0 +1,72 @@ +import grpc from 'k6/net/grpc'; +import exec from "k6/execution"; +import { check, sleep } from 'k6'; + +const client = new grpc.Client(); +client.load(['../proto'], 'policy.proto'); + +export const data = []; +for (let i = 1; i < 2; i++) { + data.push( + { + "serviceId": { + "context_id": { + "context_uuid": {"uuid": "admin"} + }, + "service_uuid": { + "uuid": "6942d780-cfa9-4dea-a946-a8a0b3f7eab2" + } + }, + "policyRuleBasic": { + "policyRuleId": {"uuid": {"uuid": i.toString()}}, + "policyRuleState": {"policyRuleState": "POLICY_UNDEFINED"}, + "priority": 0, + "conditionList": [{"kpiId": {"kpi_id": {"uuid": "1"}}, + "numericalOperator": "POLICYRULE_CONDITION_NUMERICAL_EQUAL", + "kpiValue": {"boolVal": false} + + }], + "actionList": [{}], + "booleanOperator": "POLICYRULE_CONDITION_BOOLEAN_UNDEFINED" + } + } + ); +}; + +export const options = { + scenarios :{ + + "AddPolicy-scenario": { + executor: "shared-iterations", + vus: 1, + iterations: data.length, + maxDuration: "1h" + } + } +}; + +export default () => { + client.connect('10.1.255.198:6060', { + plaintext: true, +// timeout: 10000 + }); + + var item = data[exec.scenario.iterationInInstance]; + const response = client.invoke('policy.PolicyService/PolicyAddService', item); + + check(response, { + 'status is OK': (r) => r && r.status === grpc.StatusOK, + }); + + console.log(JSON.stringify(response.message)); + + client.close(); + sleep(1); +}; + +export function handleSummary(data) { + + return { + 'summary_add_1.json': JSON.stringify(data.metrics.grpc_req_duration.values), //the default data object + }; +} diff --git a/src/tests/benchmark/policy/PolicyDelete.js b/src/tests/benchmark/policy/PolicyDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..85946837eb1123bd698f907e13415b7281a779d2 --- /dev/null +++ b/src/tests/benchmark/policy/PolicyDelete.js @@ -0,0 +1,53 @@ +import grpc from 'k6/net/grpc'; +import exec from "k6/execution"; +import { check, sleep } from 'k6'; + +const client = new grpc.Client(); +client.load(['../proto'], 'policy.proto'); + +export const data = []; +for (let i = 1; i < 2; i++) { + data.push( + { + "uuid": {"uuid": i.toString()} + } + ); +}; + +export const options = { + scenarios :{ + + "AddPolicy-scenario": { + executor: "shared-iterations", + vus: 1, + iterations: data.length, + maxDuration: "1h" + } + } +}; + +export default () => { + client.connect('10.1.255.198:6060', { + plaintext: true, +// timeout: 10000 + }); + + var item = data[exec.scenario.iterationInInstance]; + const response = client.invoke('policy.PolicyService/PolicyDelete', item); + + check(response, { + 'status is OK': (r) => r && r.status === grpc.StatusOK, + }); + + console.log(JSON.stringify(response.message)); + + client.close(); + sleep(1); +}; + +export function handleSummary(data) { + + return { + 'summary_delete_1.json': JSON.stringify(data.metrics.grpc_req_duration.values), //the default data object + }; +} diff --git a/src/tests/benchmark/policy/PolicyUpdateService.js b/src/tests/benchmark/policy/PolicyUpdateService.js new file mode 100644 index 0000000000000000000000000000000000000000..a3774f9dac0dec420b88e6e236e8dcd2e698e3cd --- /dev/null +++ b/src/tests/benchmark/policy/PolicyUpdateService.js @@ -0,0 +1,72 @@ +import grpc from 'k6/net/grpc'; +import exec from "k6/execution"; +import { check, sleep } from 'k6'; + +const client = new grpc.Client(); +client.load(['../proto'], 'policy.proto'); + +export const data = []; +for (let i = 1; i < 2; i++) { + data.push( + { + "serviceId": { + "context_id": { + "context_uuid": {"uuid": "admin"} + }, + "service_uuid": { + "uuid": "6942d780-cfa9-4dea-a946-a8a0b3f7eab2" + } + }, + "policyRuleBasic": { + "policyRuleId": {"uuid": {"uuid": i.toString()}}, + "policyRuleState": {"policyRuleState": "POLICY_UNDEFINED"}, + "priority": 0, + "conditionList": [{"kpiId": {"kpi_id": {"uuid": "1"}}, + "numericalOperator": "POLICYRULE_CONDITION_NUMERICAL_EQUAL", + "kpiValue": {"boolVal": false} + + }], + "actionList": [{}], + "booleanOperator": "POLICYRULE_CONDITION_BOOLEAN_UNDEFINED" + } + } + ); +}; + +export const options = { + scenarios :{ + + "AddPolicy-scenario": { + executor: "shared-iterations", + vus: 1, + iterations: data.length, + maxDuration: "1h" + } + } +}; + +export default () => { + client.connect('10.1.255.198:6060', { + plaintext: true, +// timeout: 10000 + }); + + var item = data[exec.scenario.iterationInInstance]; + const response = client.invoke('policy.PolicyService/PolicyUpdateService', item); + + check(response, { + 'status is OK': (r) => r && r.status === grpc.StatusOK, + }); + + console.log(JSON.stringify(response.message)); + + client.close(); + sleep(1); +}; + +export function handleSummary(data) { + + return { + 'summary_add_1.json': JSON.stringify(data.metrics.grpc_req_duration.values), //the default data object + }; +} diff --git a/src/tests/benchmark/policy/README.md b/src/tests/benchmark/policy/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8b5b2a01efc357b5d8eca6a6890b051b4ffac260 --- /dev/null +++ b/src/tests/benchmark/policy/README.md @@ -0,0 +1,17 @@ + +# Grafana k6 load testing tool + +# K6 Installation Instructions on Ubuntu + +sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69 +echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list +sudo apt-get update +sudo apt-get install k6 + +Or install k6 via snap: + +sudo apt install snapd +sudo snap install k6 + +# Running K6 +k6 run script.js \ No newline at end of file diff --git a/src/tests/benchmark/policy/__init__.py b/src/tests/benchmark/policy/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..70a33251242c51f49140e596b8208a19dd5245f7 --- /dev/null +++ b/src/tests/benchmark/policy/__init__.py @@ -0,0 +1,14 @@ +# 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/tests/benchmark/policy/deploy_specs.sh b/src/tests/benchmark/policy/deploy_specs.sh new file mode 100644 index 0000000000000000000000000000000000000000..ffd91da35186fe21f418950493ef797a9af1b522 --- /dev/null +++ b/src/tests/benchmark/policy/deploy_specs.sh @@ -0,0 +1,26 @@ +# Set the URL of your local Docker registry where the images will be uploaded to. +export TFS_REGISTRY_IMAGE="http://localhost:32000/tfs/" + +# Set the list of components, separated by spaces, you want to build images for, and deploy. +# Supported components are: +# context device automation policy service compute monitoring webui +# interdomain slice pathcomp dlt +# dbscanserving opticalattackmitigator opticalattackdetector +# l3_attackmitigator l3_centralizedattackdetector l3_distributedattackdetector +export TFS_COMPONENTS="context device automation monitoring pathcomp service slice compute webui" + +# Set the tag you want to use for your images. +export TFS_IMAGE_TAG="dev" + +# Set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE="tfs" + +# Set additional manifest files to be applied after the deployment +export TFS_EXTRA_MANIFESTS="manifests/nginx_ingress_http.yaml" + +# Set the new Grafana admin password +export TFS_GRAFANA_PASSWORD="admin123+" + +# If not already set, disable skip-build flag. +# If TFS_SKIP_BUILD is "YES", the containers are not rebuilt-retagged-repushed and existing ones are used. +export TFS_SKIP_BUILD=${TFS_SKIP_BUILD:-""} diff --git a/src/tests/benchmark/policy/descriptors_emulated.json b/src/tests/benchmark/policy/descriptors_emulated.json new file mode 100644 index 0000000000000000000000000000000000000000..a71d454f41f324cabb48a023d6d840a59245800c --- /dev/null +++ b/src/tests/benchmark/policy/descriptors_emulated.json @@ -0,0 +1,121 @@ +{ + "contexts": [ + { + "context_id": {"context_uuid": {"uuid": "admin"}}, + "topology_ids": [], + "service_ids": [] + } + ], + "topologies": [ + { + "topology_id": {"topology_uuid": {"uuid": "admin"}, "context_id": {"context_uuid": {"uuid": "admin"}}}, + "device_ids": [ + {"device_uuid": {"uuid": "R1-EMU"}}, + {"device_uuid": {"uuid": "R2-EMU"}}, + {"device_uuid": {"uuid": "R3-EMU"}}, + {"device_uuid": {"uuid": "R4-EMU"}}, + {"device_uuid": {"uuid": "O1-OLS"}} + ], + "link_ids": [ + {"link_uuid": {"uuid": "R1-EMU/13/0/0==O1-OLS/aade6001-f00b-5e2f-a357-6a0a9d3de870"}}, + {"link_uuid": {"uuid": "R2-EMU/13/0/0==O1-OLS/eb287d83-f05e-53ec-ab5a-adf6bd2b5418"}}, + {"link_uuid": {"uuid": "R3-EMU/13/0/0==O1-OLS/0ef74f99-1acc-57bd-ab9d-4b958b06c513"}}, + {"link_uuid": {"uuid": "R4-EMU/13/0/0==O1-OLS/50296d99-58cc-5ce7-82f5-fc8ee4eec2ec"}} + ] + } + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "R1-EMU"}}, "device_type": "emu-packet-router", + "device_operational_status": 1, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "13/0/0", "type": "optical", "sample_types": []}, + {"uuid": "13/1/2", "type": "copper", "sample_types": [101, 102, 201, 202]} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "R2-EMU"}}, "device_type": "emu-packet-router", + "device_operational_status": 1, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "13/0/0", "type": "optical", "sample_types": []}, + {"uuid": "13/1/2", "type": "copper", "sample_types": [101, 102, 201, 202]} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "R3-EMU"}}, "device_type": "emu-packet-router", + "device_operational_status": 1, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "13/0/0", "type": "optical", "sample_types": []}, + {"uuid": "13/1/2", "type": "copper", "sample_types": [101, 102, 201, 202]} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "R4-EMU"}}, "device_type": "emu-packet-router", + "device_operational_status": 1, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "13/0/0", "type": "optical", "sample_types": []}, + {"uuid": "13/1/2", "type": "copper", "sample_types": [101, 102, 201, 202]} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "O1-OLS"}}, "device_type": "emu-open-line-system", + "device_operational_status": 1, "device_drivers": [0], "device_endpoints": [], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "aade6001-f00b-5e2f-a357-6a0a9d3de870", "type": "optical", "sample_types": []}, + {"uuid": "eb287d83-f05e-53ec-ab5a-adf6bd2b5418", "type": "optical", "sample_types": []}, + {"uuid": "0ef74f99-1acc-57bd-ab9d-4b958b06c513", "type": "optical", "sample_types": []}, + {"uuid": "50296d99-58cc-5ce7-82f5-fc8ee4eec2ec", "type": "optical", "sample_types": []} + ]}}} + ]} + } + ], + "links": [ + { + "link_id": {"link_uuid": {"uuid": "R1-EMU/13/0/0==O1-OLS/aade6001-f00b-5e2f-a357-6a0a9d3de870"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1-EMU"}}, "endpoint_uuid": {"uuid": "13/0/0"}}, + {"device_id": {"device_uuid": {"uuid": "O1-OLS"}}, "endpoint_uuid": {"uuid": "aade6001-f00b-5e2f-a357-6a0a9d3de870"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R2-EMU/13/0/0==O1-OLS/eb287d83-f05e-53ec-ab5a-adf6bd2b5418"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R2-EMU"}}, "endpoint_uuid": {"uuid": "13/0/0"}}, + {"device_id": {"device_uuid": {"uuid": "O1-OLS"}}, "endpoint_uuid": {"uuid": "eb287d83-f05e-53ec-ab5a-adf6bd2b5418"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R3-EMU/13/0/0==O1-OLS/0ef74f99-1acc-57bd-ab9d-4b958b06c513"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3-EMU"}}, "endpoint_uuid": {"uuid": "13/0/0"}}, + {"device_id": {"device_uuid": {"uuid": "O1-OLS"}}, "endpoint_uuid": {"uuid": "0ef74f99-1acc-57bd-ab9d-4b958b06c513"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R4-EMU/13/0/0==O1-OLS/50296d99-58cc-5ce7-82f5-fc8ee4eec2ec"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R4-EMU"}}, "endpoint_uuid": {"uuid": "13/0/0"}}, + {"device_id": {"device_uuid": {"uuid": "O1-OLS"}}, "endpoint_uuid": {"uuid": "50296d99-58cc-5ce7-82f5-fc8ee4eec2ec"}} + ] + } + ] +} \ No newline at end of file diff --git a/src/tests/benchmark/policy/run_test_01_bootstrap.sh b/src/tests/benchmark/policy/run_test_01_bootstrap.sh new file mode 100755 index 0000000000000000000000000000000000000000..10b18257b937a5aae82a66cd5e3df83abd44e1d8 --- /dev/null +++ b/src/tests/benchmark/policy/run_test_01_bootstrap.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +source tfs_runtime_env_vars.sh +pytest --verbose --log-level=INFO -o log_cli=true -o log_cli_level=INFO src/tests/benchmark/policy/tests/test_functional_bootstrap.py diff --git a/src/tests/benchmark/policy/run_test_02_create_service.sh b/src/tests/benchmark/policy/run_test_02_create_service.sh new file mode 100755 index 0000000000000000000000000000000000000000..69ef34ff954d550fbe2c22719f0afb2eb3360525 --- /dev/null +++ b/src/tests/benchmark/policy/run_test_02_create_service.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +source tfs_runtime_env_vars.sh +pytest --verbose --log-level=INFO -o log_cli=true -o log_cli_level=INFO src/tests/benchmark/policy/tests/test_functional_create_service.py diff --git a/src/tests/benchmark/policy/run_test_03_delete_service.sh b/src/tests/benchmark/policy/run_test_03_delete_service.sh new file mode 100755 index 0000000000000000000000000000000000000000..01eb521310053b06538c91cbfaae80aa3b2fdd45 --- /dev/null +++ b/src/tests/benchmark/policy/run_test_03_delete_service.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +source tfs_runtime_env_vars.sh +pytest --verbose --log-level=INFO -o log_cli=true -o log_cli_level=INFO src/tests/benchmark/policy/tests/test_functional_delete_service.py diff --git a/src/tests/benchmark/policy/run_test_04_cleanup.sh b/src/tests/benchmark/policy/run_test_04_cleanup.sh new file mode 100755 index 0000000000000000000000000000000000000000..a2be265de04552cbebe83decba538656232bf904 --- /dev/null +++ b/src/tests/benchmark/policy/run_test_04_cleanup.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +source tfs_runtime_env_vars.sh +pytest --verbose --log-level=INFO -o log_cli=true -o log_cli_level=INFO src/tests/benchmark/policy/tests/test_functional_cleanup.py diff --git a/src/tests/benchmark/policy/tests/.gitignore b/src/tests/benchmark/policy/tests/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..76cb708d1b532c9b69166e55f36bcb912fd5e370 --- /dev/null +++ b/src/tests/benchmark/policy/tests/.gitignore @@ -0,0 +1,2 @@ +# Add here your files containing confidential testbed details such as IP addresses, ports, usernames, passwords, etc. +Credentials.py diff --git a/src/tests/benchmark/policy/tests/Fixtures.py b/src/tests/benchmark/policy/tests/Fixtures.py new file mode 100644 index 0000000000000000000000000000000000000000..3b35a12e299ba776e909fbdd2739e971431083a6 --- /dev/null +++ b/src/tests/benchmark/policy/tests/Fixtures.py @@ -0,0 +1,28 @@ +# 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. + +import pytest, logging +from common.Settings import get_setting +from tests.tools.mock_osm.Constants import WIM_PASSWORD, WIM_USERNAME +from tests.tools.mock_osm.MockOSM import MockOSM +from .Objects import WIM_MAPPING + +LOGGER = logging.getLogger(__name__) + +@pytest.fixture(scope='session') +def osm_wim(): + wim_url = 'http://{:s}:{:s}'.format( + get_setting('COMPUTESERVICE_SERVICE_HOST'), str(get_setting('COMPUTESERVICE_SERVICE_PORT_HTTP'))) + LOGGER.info('WIM_MAPPING = {:s}'.format(str(WIM_MAPPING))) + return MockOSM(wim_url, WIM_MAPPING, WIM_USERNAME, WIM_PASSWORD) diff --git a/src/tests/benchmark/policy/tests/Objects.py b/src/tests/benchmark/policy/tests/Objects.py new file mode 100644 index 0000000000000000000000000000000000000000..7bfbe9fce558d6a86d965ecb6421369d7f544d4d --- /dev/null +++ b/src/tests/benchmark/policy/tests/Objects.py @@ -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. + +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.EndPoint import json_endpoint_id +from tests.tools.mock_osm.Tools import connection_point, wim_mapping + +# ----- WIM Service Settings ------------------------------------------------------------------------------------------- + +WIM_DC1_SITE_ID = '1' +WIM_DC1_DEVICE_ID = json_device_id('R1-EMU') +WIM_DC1_ENDPOINT_ID = json_endpoint_id(WIM_DC1_DEVICE_ID, '13/1/2') + +WIM_DC2_SITE_ID = '2' +WIM_DC2_DEVICE_ID = json_device_id('R3-EMU') +WIM_DC2_ENDPOINT_ID = json_endpoint_id(WIM_DC2_DEVICE_ID, '13/1/2') + +WIM_SEP_DC1, WIM_MAP_DC1 = wim_mapping(WIM_DC1_SITE_ID, WIM_DC1_ENDPOINT_ID) +WIM_SEP_DC2, WIM_MAP_DC2 = wim_mapping(WIM_DC2_SITE_ID, WIM_DC2_ENDPOINT_ID) +WIM_MAPPING = [WIM_MAP_DC1, WIM_MAP_DC2] + +WIM_SRV_VLAN_ID = 300 +WIM_SERVICE_TYPE = 'ELINE' +WIM_SERVICE_CONNECTION_POINTS = [ + connection_point(WIM_SEP_DC1, 'dot1q', WIM_SRV_VLAN_ID), + connection_point(WIM_SEP_DC2, 'dot1q', WIM_SRV_VLAN_ID), +] diff --git a/src/tests/benchmark/policy/tests/__init__.py b/src/tests/benchmark/policy/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..70a33251242c51f49140e596b8208a19dd5245f7 --- /dev/null +++ b/src/tests/benchmark/policy/tests/__init__.py @@ -0,0 +1,14 @@ +# 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/tests/benchmark/policy/tests/test_functional_bootstrap.py b/src/tests/benchmark/policy/tests/test_functional_bootstrap.py new file mode 100644 index 0000000000000000000000000000000000000000..71deb9d596b1494e148b140902ca927e5d664dd3 --- /dev/null +++ b/src/tests/benchmark/policy/tests/test_functional_bootstrap.py @@ -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. + +import logging, time +from common.proto.context_pb2 import ContextId, Empty +from common.proto.monitoring_pb2 import KpiDescriptorList +from common.tests.LoadScenario import load_scenario_from_descriptor +from common.tools.grpc.Tools import grpc_message_to_json_string +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from monitoring.client.MonitoringClient import MonitoringClient +from tests.Fixtures import context_client, device_client, monitoring_client # pylint: disable=unused-import + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'ofc22/descriptors_emulated.json' + +def test_scenario_bootstrap( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name +) -> None: + # ----- List entities - Ensure database is empty ------------------------------------------------------------------- + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == 0 + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == 0 + + response = context_client.ListLinks(Empty()) + assert len(response.links) == 0 + + + # ----- Load Scenario ---------------------------------------------------------------------------------------------- + descriptor_loader = load_scenario_from_descriptor( + DESCRIPTOR_FILE, context_client, device_client, None, None) + + + # ----- List entities - Ensure scenario is ready ------------------------------------------------------------------- + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == descriptor_loader.num_contexts + + for context_uuid, num_topologies in descriptor_loader.num_topologies.items(): + response = context_client.ListTopologies(ContextId(**json_context_id(context_uuid))) + assert len(response.topologies) == num_topologies + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == descriptor_loader.num_devices + + response = context_client.ListLinks(Empty()) + assert len(response.links) == descriptor_loader.num_links + + for context_uuid, _ in descriptor_loader.num_services.items(): + response = context_client.ListServices(ContextId(**json_context_id(context_uuid))) + assert len(response.services) == 0 + +def test_scenario_kpis_created( + context_client : ContextClient, # pylint: disable=redefined-outer-name + monitoring_client: MonitoringClient, # pylint: disable=redefined-outer-name +) -> None: + """ + This test validates that KPIs related to the service/device/endpoint were created + during the service creation process. + """ + response = context_client.ListDevices(Empty()) + kpis_expected = set() + for device in response.devices: + device_uuid = device.device_id.device_uuid.uuid + for endpoint in device.device_endpoints: + endpoint_uuid = endpoint.endpoint_id.endpoint_uuid.uuid + for kpi_sample_type in endpoint.kpi_sample_types: + kpis_expected.add((device_uuid, endpoint_uuid, kpi_sample_type)) + num_kpis_expected = len(kpis_expected) + LOGGER.info('Num KPIs expected: {:d}'.format(num_kpis_expected)) + + num_kpis_created, num_retry = 0, 0 + while (num_kpis_created != num_kpis_expected) and (num_retry < 5): + response: KpiDescriptorList = monitoring_client.GetKpiDescriptorList(Empty()) + num_kpis_created = len(response.kpi_descriptor_list) + LOGGER.info('Num KPIs created: {:d}'.format(num_kpis_created)) + time.sleep(0.5) + num_retry += 1 + assert num_kpis_created == num_kpis_expected diff --git a/src/tests/benchmark/policy/tests/test_functional_cleanup.py b/src/tests/benchmark/policy/tests/test_functional_cleanup.py new file mode 100644 index 0000000000000000000000000000000000000000..be807eaa0242f2363b5b6c189ce4de264528a54c --- /dev/null +++ b/src/tests/benchmark/policy/tests/test_functional_cleanup.py @@ -0,0 +1,80 @@ +# 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. + +import logging +from common.tools.descriptor.Loader import DescriptorLoader +from common.tools.object_factory.Context import json_context_id +from common.proto.context_pb2 import ContextId, DeviceId, Empty, LinkId, TopologyId +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from tests.Fixtures import context_client, device_client # pylint: disable=unused-import + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'ofc22/descriptors_emulated.json' + + +def test_services_removed( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name +) -> None: + # ----- List entities - Ensure service is removed ------------------------------------------------------------------ + with open(DESCRIPTOR_FILE, 'r', encoding='UTF-8') as f: + descriptors = f.read() + + descriptor_loader = DescriptorLoader(descriptors) + + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == descriptor_loader.num_contexts + + for context_uuid, num_topologies in descriptor_loader.num_topologies.items(): + response = context_client.ListTopologies(ContextId(**json_context_id(context_uuid))) + assert len(response.topologies) == num_topologies + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == descriptor_loader.num_devices + + response = context_client.ListLinks(Empty()) + assert len(response.links) == descriptor_loader.num_links + + for context_uuid, _ in descriptor_loader.num_services.items(): + response = context_client.ListServices(ContextId(**json_context_id(context_uuid))) + assert len(response.services) == 0 + + + # ----- Delete Links, Devices, Topologies, Contexts ---------------------------------------------------------------- + for link in descriptor_loader.links: + context_client.RemoveLink(LinkId(**link['link_id'])) + + for device in descriptor_loader.devices: + device_client .DeleteDevice(DeviceId(**device['device_id'])) + + for context_uuid, topology_list in descriptor_loader.topologies.items(): + for topology in topology_list: + context_client.RemoveTopology(TopologyId(**topology['topology_id'])) + + for context in descriptor_loader.contexts: + context_client.RemoveContext(ContextId(**context['context_id'])) + + + # ----- List entities - Ensure database is empty again ------------------------------------------------------------- + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == 0 + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == 0 + + response = context_client.ListLinks(Empty()) + assert len(response.links) == 0 diff --git a/src/tests/benchmark/policy/tests/test_functional_create_service.py b/src/tests/benchmark/policy/tests/test_functional_create_service.py new file mode 100644 index 0000000000000000000000000000000000000000..e606d060d52631ba72e191d7c025bd7b43048b39 --- /dev/null +++ b/src/tests/benchmark/policy/tests/test_functional_create_service.py @@ -0,0 +1,124 @@ +# 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. + +import logging, random +from common.DeviceTypes import DeviceTypeEnum +from common.proto.context_pb2 import ContextId, Empty +from common.proto.kpi_sample_types_pb2 import KpiSampleType +from common.tools.descriptor.Loader import DescriptorLoader +from common.tools.grpc.Tools import grpc_message_to_json_string +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from monitoring.client.MonitoringClient import MonitoringClient +from tests.Fixtures import context_client, device_client, monitoring_client # pylint: disable=unused-import +from tests.tools.mock_osm.MockOSM import MockOSM +from .Fixtures import osm_wim # pylint: disable=unused-import +from .Objects import WIM_SERVICE_CONNECTION_POINTS, WIM_SERVICE_TYPE + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DEVTYPE_EMU_PR = DeviceTypeEnum.EMULATED_PACKET_ROUTER.value +DEVTYPE_EMU_OLS = DeviceTypeEnum.EMULATED_OPEN_LINE_SYSTEM.value + +DESCRIPTOR_FILE = 'ofc22/descriptors_emulated.json' + +def test_service_creation(context_client : ContextClient, osm_wim : MockOSM): # pylint: disable=redefined-outer-name + # ----- List entities - Ensure scenario is ready ------------------------------------------------------------------- + with open(DESCRIPTOR_FILE, 'r', encoding='UTF-8') as f: + descriptors = f.read() + + descriptor_loader = DescriptorLoader(descriptors) + + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == descriptor_loader.num_contexts + + for context_uuid, num_topologies in descriptor_loader.num_topologies.items(): + response = context_client.ListTopologies(ContextId(**json_context_id(context_uuid))) + assert len(response.topologies) == num_topologies + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == descriptor_loader.num_devices + + response = context_client.ListLinks(Empty()) + assert len(response.links) == descriptor_loader.num_links + + for context_uuid, num_services in descriptor_loader.num_services.items(): + response = context_client.ListServices(ContextId(**json_context_id(context_uuid))) + assert len(response.services) == 0 + + + # ----- Create Service --------------------------------------------------------------------------------------------- + service_uuid = osm_wim.create_connectivity_service(WIM_SERVICE_TYPE, WIM_SERVICE_CONNECTION_POINTS) + osm_wim.get_connectivity_service_status(service_uuid) + + + # ----- List entities - Ensure service is created ------------------------------------------------------------------ + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == descriptor_loader.num_contexts + + for context_uuid, num_topologies in descriptor_loader.num_topologies.items(): + response = context_client.ListTopologies(ContextId(**json_context_id(context_uuid))) + assert len(response.topologies) == num_topologies + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == descriptor_loader.num_devices + + response = context_client.ListLinks(Empty()) + assert len(response.links) == descriptor_loader.num_links + + for context_uuid, num_services in descriptor_loader.num_services.items(): + response = context_client.ListServices(ContextId(**json_context_id(context_uuid))) + LOGGER.info('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) + assert len(response.services) == 2*num_services # OLS & L3NM => (L3NM + TAPI) + + for service in response.services: + service_id = service.service_id + response = context_client.ListConnections(service_id) + LOGGER.info(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( + grpc_message_to_json_string(service_id), len(response.connections), + grpc_message_to_json_string(response))) + assert len(response.connections) == 1 # one connection per service + + +def test_scenario_kpi_values_created( + monitoring_client: MonitoringClient, # pylint: disable=redefined-outer-name +) -> None: + """ + This test validates that KPI values have been inserted into the monitoring database. + We short k KPI descriptors to test. + """ + response = monitoring_client.GetKpiDescriptorList(Empty()) + kpi_descriptors = random.choices(response.kpi_descriptor_list, k=2) + + for kpi_descriptor in kpi_descriptors: + MSG = 'KPI(kpi_uuid={:s}, device_uuid={:s}, endpoint_uuid={:s}, service_uuid={:s}, kpi_sample_type={:s})...' + LOGGER.info(MSG.format( + str(kpi_descriptor.kpi_id.kpi_id.uuid), str(kpi_descriptor.device_id.device_uuid.uuid), + str(kpi_descriptor.endpoint_id.endpoint_uuid.uuid), str(kpi_descriptor.service_id.service_uuid.uuid), + str(KpiSampleType.Name(kpi_descriptor.kpi_sample_type)))) + response = monitoring_client.GetInstantKpi(kpi_descriptor.kpi_id) + kpi_uuid = response.kpi_id.kpi_id.uuid + assert kpi_uuid == kpi_descriptor.kpi_id.kpi_id.uuid + kpi_value_type = response.kpi_value.WhichOneof('value') + if kpi_value_type is None: + MSG = ' KPI({:s}): No instant value found' + LOGGER.warning(MSG.format(str(kpi_uuid))) + else: + kpi_timestamp = response.timestamp.timestamp + assert kpi_timestamp > 0 + assert kpi_value_type == 'floatVal' + kpi_value = getattr(response.kpi_value, kpi_value_type) + MSG = ' KPI({:s}): timestamp={:s} value_type={:s} value={:s}' + LOGGER.info(MSG.format(str(kpi_uuid), str(kpi_timestamp), str(kpi_value_type), str(kpi_value))) diff --git a/src/tests/benchmark/policy/tests/test_functional_delete_service.py b/src/tests/benchmark/policy/tests/test_functional_delete_service.py new file mode 100644 index 0000000000000000000000000000000000000000..0f8d088012bed164e4603a813bfe9154eda8f568 --- /dev/null +++ b/src/tests/benchmark/policy/tests/test_functional_delete_service.py @@ -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. + +import logging +from common.Constants import DEFAULT_CONTEXT_UUID +from common.DeviceTypes import DeviceTypeEnum +from common.proto.context_pb2 import ContextId, Empty, ServiceTypeEnum +from common.tools.descriptor.Loader import DescriptorLoader +from common.tools.object_factory.Context import json_context_id +from common.tools.grpc.Tools import grpc_message_to_json_string +from context.client.ContextClient import ContextClient +from tests.Fixtures import context_client # pylint: disable=unused-import +from tests.tools.mock_osm.MockOSM import MockOSM +from .Fixtures import osm_wim # pylint: disable=unused-import + + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DEVTYPE_EMU_PR = DeviceTypeEnum.EMULATED_PACKET_ROUTER.value +DEVTYPE_EMU_OLS = DeviceTypeEnum.EMULATED_OPEN_LINE_SYSTEM.value + +DESCRIPTOR_FILE = 'ofc22/descriptors_emulated.json' + + +def test_service_removal(context_client : ContextClient, osm_wim : MockOSM): # pylint: disable=redefined-outer-name + # ----- List entities - Ensure service is created ------------------------------------------------------------------ + with open(DESCRIPTOR_FILE, 'r', encoding='UTF-8') as f: + descriptors = f.read() + + descriptor_loader = DescriptorLoader(descriptors) + + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == descriptor_loader.num_contexts + + for context_uuid, num_topologies in descriptor_loader.num_topologies.items(): + response = context_client.ListTopologies(ContextId(**json_context_id(context_uuid))) + assert len(response.topologies) == num_topologies + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == descriptor_loader.num_devices + + response = context_client.ListLinks(Empty()) + assert len(response.links) == descriptor_loader.num_links + + l3nm_service_uuids = set() + response = context_client.ListServices(ContextId(**json_context_id(DEFAULT_CONTEXT_UUID))) + assert len(response.services) == 2 # OLS & L3NM => (L3NM + TAPI) + for service in response.services: + service_id = service.service_id + + if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: + service_uuid = service_id.service_uuid.uuid + l3nm_service_uuids.add(service_uuid) + osm_wim.conn_info[service_uuid] = {} + + response = context_client.ListConnections(service_id) + LOGGER.info(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( + grpc_message_to_json_string(service_id), len(response.connections), + grpc_message_to_json_string(response))) + assert len(response.connections) == 1 # one connection per service + + # Identify service to delete + assert len(l3nm_service_uuids) == 1 # assume a single L3NM service has been created + l3nm_service_uuid = set(l3nm_service_uuids).pop() + + + # ----- Delete Service --------------------------------------------------------------------------------------------- + osm_wim.delete_connectivity_service(l3nm_service_uuid) + + + # ----- List entities - Ensure service is removed ------------------------------------------------------------------ + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == descriptor_loader.num_contexts + + for context_uuid, num_topologies in descriptor_loader.num_topologies.items(): + response = context_client.ListTopologies(ContextId(**json_context_id(context_uuid))) + assert len(response.topologies) == num_topologies + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == descriptor_loader.num_devices + + response = context_client.ListLinks(Empty()) + assert len(response.links) == descriptor_loader.num_links + + for context_uuid, num_services in descriptor_loader.num_services.items(): + response = context_client.ListServices(ContextId(**json_context_id(context_uuid))) + assert len(response.services) == 0 diff --git a/src/tests/ofc22/descriptors_emulated_xr.json b/src/tests/ofc22/descriptors_emulated_xr.json index 30bd97dddeb94f836d3fe66e51fce729c34ceced..4cb0dbfca891faebf4c812c2fbb77f4ecd91330a 100644 --- a/src/tests/ofc22/descriptors_emulated_xr.json +++ b/src/tests/ofc22/descriptors_emulated_xr.json @@ -9,8 +9,19 @@ "topologies": [ { "topology_id": {"topology_uuid": {"uuid": "admin"}, "context_id": {"context_uuid": {"uuid": "admin"}}}, - "device_ids": [], - "link_ids": [] + "device_ids": [ + {"device_uuid": {"uuid": "R1-EMU"}}, + {"device_uuid": {"uuid": "R2-EMU"}}, + {"device_uuid": {"uuid": "R3-EMU"}}, + {"device_uuid": {"uuid": "R4-EMU"}}, + {"device_uuid": {"uuid": "X1-XR-CONSTELLATION"}} + ], + "link_ids": [ + {"link_uuid": {"uuid": "R1-EMU/13/0/0==XR HUB 1|XR-T4"}}, + {"link_uuid": {"uuid": "R2-EMU/13/0/0==XR HUB 1|XR-T3"}}, + {"link_uuid": {"uuid": "R3-EMU/13/0/0==XR1-XR LEAF 1|XR-T1"}}, + {"link_uuid": {"uuid": "R4-EMU/13/0/0==XR LEAF 2|XR-T1"}} + ] } ], "devices": [ diff --git a/src/tests/ofc22/tests/test_functional_create_service_xr.py b/src/tests/ofc22/tests/test_functional_create_service_xr.py index bb78abc1efe7701308448ad4b83ef2a6e32079c4..6008eaa10702f0491742f6195a5fdf15735e5f14 100644 --- a/src/tests/ofc22/tests/test_functional_create_service_xr.py +++ b/src/tests/ofc22/tests/test_functional_create_service_xr.py @@ -20,7 +20,7 @@ from common.tools.object_factory.Connection import json_connection_id from common.tools.object_factory.Device import json_device_id from common.tools.object_factory.Service import json_service_id from common.tools.grpc.Tools import grpc_message_to_json_string -from compute.tests.mock_osm.MockOSM import MockOSM +from tests.tools.mock_osm.MockOSM import MockOSM from context.client.ContextClient import ContextClient from context.client.EventsCollector import EventsCollector from common.proto.context_pb2 import ContextId, Empty diff --git a/src/tests/ofc22/tests/test_functional_delete_service_xr.py b/src/tests/ofc22/tests/test_functional_delete_service_xr.py index f28828be056e755058a0f6b15bd8ea3e9acbbdeb..546a8781bee125dd48723c67cddd2aec26dc3ed9 100644 --- a/src/tests/ofc22/tests/test_functional_delete_service_xr.py +++ b/src/tests/ofc22/tests/test_functional_delete_service_xr.py @@ -20,7 +20,7 @@ from common.tools.object_factory.Connection import json_connection_id from common.tools.object_factory.Device import json_device_id from common.tools.object_factory.Service import json_service_id from common.tools.grpc.Tools import grpc_message_to_json_string -from compute.tests.mock_osm.MockOSM import MockOSM +from tests.tools.mock_osm.MockOSM import MockOSM from context.client.ContextClient import ContextClient from context.client.EventsCollector import EventsCollector from common.proto.context_pb2 import ContextId, Empty, ServiceTypeEnum diff --git a/src/tests/p4/__init__.py b/src/tests/p4/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..70a33251242c51f49140e596b8208a19dd5245f7 --- /dev/null +++ b/src/tests/p4/__init__.py @@ -0,0 +1,14 @@ +# 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/tests/p4/deploy_specs.sh b/src/tests/p4/deploy_specs.sh new file mode 100644 index 0000000000000000000000000000000000000000..b486474e2afad7305409bf410c7b8885b0afe2a8 --- /dev/null +++ b/src/tests/p4/deploy_specs.sh @@ -0,0 +1,17 @@ +# Set the URL of your local Docker registry where the images will be uploaded to. +export TFS_REGISTRY_IMAGE="http://localhost:32000/tfs/" + +# Set the list of components, separated by spaces, you want to build images for, and deploy. +export TFS_COMPONENTS="context device automation service compute monitoring webui" + +# Set the tag you want to use for your images. +export TFS_IMAGE_TAG="dev" + +# Set the name of the Kubernetes namespace to deploy to. +export TFS_K8S_NAMESPACE="tfs" + +# Set additional manifest files to be applied after the deployment +export TFS_EXTRA_MANIFESTS="manifests/nginx_ingress_http.yaml" + +# Set the neew Grafana admin password +export TFS_GRAFANA_PASSWORD="admin123+" diff --git a/src/tests/p4/mininet/1switch1path.py b/src/tests/p4/mininet/1switch1path.py new file mode 100755 index 0000000000000000000000000000000000000000..466fb6a06e5b9ba8598614511c95ac4271d609e8 --- /dev/null +++ b/src/tests/p4/mininet/1switch1path.py @@ -0,0 +1,99 @@ +#!/usr/bin/python + +# Copyright 2019-present Open Networking Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse + +from mininet.cli import CLI +from mininet.log import setLogLevel +from mininet.net import Mininet +from mininet.node import Host +from mininet.topo import Topo +from stratum import StratumBmv2Switch + +CPU_PORT = 255 + +class IPv4Host(Host): + """Host that can be configured with an IPv4 gateway (default route). + """ + + def config(self, mac=None, ip=None, defaultRoute=None, lo='up', gw=None, + **_params): + super(IPv4Host, self).config(mac, ip, defaultRoute, lo, **_params) + self.cmd('ip -4 addr flush dev %s' % self.defaultIntf()) + self.cmd('ip -6 addr flush dev %s' % self.defaultIntf()) + self.cmd('ip -4 link set up %s' % self.defaultIntf()) + self.cmd('ip -4 addr add %s dev %s' % (ip, self.defaultIntf())) + if gw: + self.cmd('ip -4 route add default via %s' % gw) + # Disable offload + for attr in ["rx", "tx", "sg"]: + cmd = "/sbin/ethtool --offload %s %s off" % ( + self.defaultIntf(), attr) + self.cmd(cmd) + + def updateIP(): + return ip.split('/')[0] + + self.defaultIntf().updateIP = updateIP + +class TutorialTopo(Topo): + """Basic Server-Client topology with IPv4 hosts""" + + def __init__(self, *args, **kwargs): + Topo.__init__(self, *args, **kwargs) + + # Spines + # gRPC port 50001 + switch1 = self.addSwitch('switch1', cls=StratumBmv2Switch, cpuport=CPU_PORT) + + # IPv4 hosts attached to switch 1 + client = self.addHost('client', cls=IPv4Host, mac="aa:bb:cc:dd:ee:11", + ip='10.0.0.1/24', gw='10.0.0.100') +# client.sendCmd('arp -s 10.0.0.2 aa:bb:cc:dd:ee:22') +# client.setARP('10.0.0.2', 'aa:bb:cc:dd:ee:22') + server = self.addHost('server', cls=IPv4Host, mac="aa:bb:cc:dd:ee:22", + ip='10.0.0.2/24', gw='10.0.0.100') +# server.sendCmd('arp -s 10.0.0.1 aa:bb:cc:dd:ee:11') +# server.setARP('10.0.0.1', 'aa:bb:cc:dd:ee:11') + self.addLink(client, switch1) # port 1 + self.addLink(server, switch1) # port 2 + + +def main(): + net = Mininet(topo=TutorialTopo(), controller=None) + net.start() + client = net.hosts[0] + server = net.hosts[1] + client.setARP('10.0.0.2', 'aa:bb:cc:dd:ee:22') + server.setARP('10.0.0.1', 'aa:bb:cc:dd:ee:11') + CLI(net) + net.stop() + print '#' * 80 + print 'ATTENTION: Mininet was stopped! Perhaps accidentally?' + print 'No worries, it will restart automatically in a few seconds...' + print 'To access again the Mininet CLI, use `make mn-cli`' + print 'To detach from the CLI (without stopping), press Ctrl-D' + print 'To permanently quit Mininet, use `make stop`' + print '#' * 80 + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description='Mininet topology script for 2x2 fabric with stratum_bmv2 and IPv4 hosts') + args = parser.parse_args() + setLogLevel('info') + + main() diff --git a/src/tests/p4/mininet/2switch1path.py b/src/tests/p4/mininet/2switch1path.py new file mode 100755 index 0000000000000000000000000000000000000000..91db70052a95dea9b53d24dabb25b0feaa9935cf --- /dev/null +++ b/src/tests/p4/mininet/2switch1path.py @@ -0,0 +1,99 @@ +#!/usr/bin/python + +# Copyright 2019-present Open Networking Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse + +from mininet.cli import CLI +from mininet.log import setLogLevel +from mininet.net import Mininet +from mininet.node import Host +from mininet.topo import Topo +from stratum import StratumBmv2Switch + +CPU_PORT = 255 + +class IPv4Host(Host): + """Host that can be configured with an IPv4 gateway (default route). + """ + + def config(self, mac=None, ip=None, defaultRoute=None, lo='up', gw=None, + **_params): + super(IPv4Host, self).config(mac, ip, defaultRoute, lo, **_params) + self.cmd('ip -4 addr flush dev %s' % self.defaultIntf()) + self.cmd('ip -6 addr flush dev %s' % self.defaultIntf()) + self.cmd('ip -4 link set up %s' % self.defaultIntf()) + self.cmd('ip -4 addr add %s dev %s' % (ip, self.defaultIntf())) + if gw: + self.cmd('ip -4 route add default via %s' % gw) + # Disable offload + for attr in ["rx", "tx", "sg"]: + cmd = "/sbin/ethtool --offload %s %s off" % ( + self.defaultIntf(), attr) + self.cmd(cmd) + + def updateIP(): + return ip.split('/')[0] + + self.defaultIntf().updateIP = updateIP + +class TutorialTopo(Topo): + """Basic Server-Client topology with IPv4 hosts""" + + def __init__(self, *args, **kwargs): + Topo.__init__(self, *args, **kwargs) + + # Spines + # gRPC port 50001 + switch1 = self.addSwitch('switch1', cls=StratumBmv2Switch, cpuport=CPU_PORT) + # gRPC port 50002 + switch2 = self.addSwitch('switch2', cls=StratumBmv2Switch, cpuport=CPU_PORT) + + # IPv4 hosts attached to switch 1 + client = self.addHost('client', cls=IPv4Host, mac="aa:bb:cc:dd:ee:11", + ip='10.0.0.1/24', gw='10.0.0.100') + server = self.addHost('server', cls=IPv4Host, mac="aa:bb:cc:dd:ee:22", + ip='10.0.0.2/24', gw='10.0.0.100') + self.addLink(client, switch1) # switch1: port 1 + self.addLink(switch1, switch2) # switch1: port 2 == switch2: port 1 + self.addLink(switch2, server) # switch2: port 2 + +def main(): + net = Mininet(topo=TutorialTopo(), controller=None) + net.start() + + client = net.hosts[0] + client.setARP('10.0.0.2', 'aa:bb:cc:dd:ee:22') + server = net.hosts[1] + server.setARP('10.0.0.1', 'aa:bb:cc:dd:ee:11') + + CLI(net) + net.stop() + print '#' * 80 + print 'ATTENTION: Mininet was stopped! Perhaps accidentally?' + print 'No worries, it will restart automatically in a few seconds...' + print 'To access again the Mininet CLI, use `make mn-cli`' + print 'To detach from the CLI (without stopping), press Ctrl-D' + print 'To permanently quit Mininet, use `make stop`' + print '#' * 80 + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description='Mininet topology script for 2x2 fabric with stratum_bmv2 and IPv4 hosts') + args = parser.parse_args() + setLogLevel('info') + + main() diff --git a/src/tests/p4/mininet/4switch2path.py b/src/tests/p4/mininet/4switch2path.py new file mode 100755 index 0000000000000000000000000000000000000000..d8ad04b0193a2b9b610a4d5f828891e575d8efe8 --- /dev/null +++ b/src/tests/p4/mininet/4switch2path.py @@ -0,0 +1,110 @@ +#!/usr/bin/python + +# Copyright 2019-present Open Networking Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse + +from mininet.cli import CLI +from mininet.log import setLogLevel +from mininet.net import Mininet +from mininet.node import Host +from mininet.topo import Topo +from stratum import StratumBmv2Switch + +CPU_PORT = 255 + +class IPv4Host(Host): + """Host that can be configured with an IPv4 gateway (default route). + """ + + def config(self, mac=None, ip=None, defaultRoute=None, lo='up', gw=None, + **_params): + super(IPv4Host, self).config(mac, ip, defaultRoute, lo, **_params) + self.cmd('ip -4 addr flush dev %s' % self.defaultIntf()) + self.cmd('ip -6 addr flush dev %s' % self.defaultIntf()) + self.cmd('ip -4 link set up %s' % self.defaultIntf()) + self.cmd('ip -4 addr add %s dev %s' % (ip, self.defaultIntf())) + if gw: + self.cmd('ip -4 route add default via %s' % gw) + # Disable offload + for attr in ["rx", "tx", "sg"]: + cmd = "/sbin/ethtool --offload %s %s off" % ( + self.defaultIntf(), attr) + self.cmd(cmd) + + def updateIP(): + return ip.split('/')[0] + + self.defaultIntf().updateIP = updateIP + +class TutorialTopo(Topo): + """Basic Server-Client topology with IPv4 hosts""" + + def __init__(self, *args, **kwargs): + Topo.__init__(self, *args, **kwargs) + + # Switches + # gRPC port 50001 + switch1 = self.addSwitch('switch1', cls=StratumBmv2Switch, cpuport=CPU_PORT) + # gRPC port 50002 + switch2 = self.addSwitch('switch2', cls=StratumBmv2Switch, cpuport=CPU_PORT) + # gRPC port 50003 + switch3 = self.addSwitch('switch3', cls=StratumBmv2Switch, cpuport=CPU_PORT) + # gRPC port 50004 + switch4 = self.addSwitch('switch4', cls=StratumBmv2Switch, cpuport=CPU_PORT) + + # Hosts + client = self.addHost('client', cls=IPv4Host, mac="aa:bb:cc:dd:ee:11", + ip='10.0.0.1/24', gw='10.0.0.100') + server = self.addHost('server', cls=IPv4Host, mac="aa:bb:cc:dd:ee:22", + ip='10.0.0.2/24', gw='10.0.0.100') + + # Switch links + self.addLink(switch1, switch2) # Switch1:port 1, Switch2:port 1 + self.addLink(switch1, switch3) # Switch1:port 2, Switch3:port 1 + self.addLink(switch2, switch4) # Switch2:port 2, Switch4:port 1 + self.addLink(switch3, switch4) # Switch3:port 2, Switch4:port 2 + + # Host links + self.addLink(client, switch1) # Switch 1: port 3 + self.addLink(server, switch4) # Switch 4: port 3 + +def main(): + net = Mininet(topo=TutorialTopo(), controller=None) + net.start() + + client = net.hosts[0] + client.setARP('10.0.0.2', 'aa:bb:cc:dd:ee:22') + server = net.hosts[1] + server.setARP('10.0.0.1', 'aa:bb:cc:dd:ee:11') + + CLI(net) + net.stop() + print '#' * 80 + print 'ATTENTION: Mininet was stopped! Perhaps accidentally?' + print 'No worries, it will restart automatically in a few seconds...' + print 'To access again the Mininet CLI, use `make mn-cli`' + print 'To detach from the CLI (without stopping), press Ctrl-D' + print 'To permanently quit Mininet, use `make stop`' + print '#' * 80 + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description='Mininet topology script for 2x2 fabric with stratum_bmv2 and IPv4 hosts') + args = parser.parse_args() + setLogLevel('info') + + main() diff --git a/src/tests/p4/mininet/6switch2path.py b/src/tests/p4/mininet/6switch2path.py new file mode 100755 index 0000000000000000000000000000000000000000..8efb4b017f8c71e55884db8dd5f805820bb65fd6 --- /dev/null +++ b/src/tests/p4/mininet/6switch2path.py @@ -0,0 +1,118 @@ +#!/usr/bin/python + +# Copyright 2019-present Open Networking Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import argparse + +from mininet.cli import CLI +from mininet.log import setLogLevel +from mininet.net import Mininet +from mininet.node import Host +from mininet.topo import Topo +from stratum import StratumBmv2Switch + +CPU_PORT = 255 + +class IPv4Host(Host): + """Host that can be configured with an IPv4 gateway (default route). + """ + + def config(self, mac=None, ip=None, defaultRoute=None, lo='up', gw=None, + **_params): + super(IPv4Host, self).config(mac, ip, defaultRoute, lo, **_params) + self.cmd('ip -4 addr flush dev %s' % self.defaultIntf()) + self.cmd('ip -6 addr flush dev %s' % self.defaultIntf()) + self.cmd('ip -4 link set up %s' % self.defaultIntf()) + self.cmd('ip -4 addr add %s dev %s' % (ip, self.defaultIntf())) + if gw: + self.cmd('ip -4 route add default via %s' % gw) + # Disable offload + for attr in ["rx", "tx", "sg"]: + cmd = "/sbin/ethtool --offload %s %s off" % ( + self.defaultIntf(), attr) + self.cmd(cmd) + + def updateIP(): + return ip.split('/')[0] + + self.defaultIntf().updateIP = updateIP + +class TutorialTopo(Topo): + """Basic Server-Client topology with IPv4 hosts""" + + def __init__(self, *args, **kwargs): + Topo.__init__(self, *args, **kwargs) + + # Switches + # gRPC port 50001 + switch1 = self.addSwitch('switch1', cls=StratumBmv2Switch, cpuport=CPU_PORT) + # gRPC port 50002 + switch2 = self.addSwitch('switch2', cls=StratumBmv2Switch, cpuport=CPU_PORT) + # gRPC port 50003 + switch3 = self.addSwitch('switch3', cls=StratumBmv2Switch, cpuport=CPU_PORT) + # gRPC port 50004 + switch4 = self.addSwitch('switch4', cls=StratumBmv2Switch, cpuport=CPU_PORT) + # gRPC port 50005 + switch5 = self.addSwitch('switch5', cls=StratumBmv2Switch, cpuport=CPU_PORT) + # gRPC port 50006 + switch6 = self.addSwitch('switch6', cls=StratumBmv2Switch, cpuport=CPU_PORT) + + # Hosts + client = self.addHost('client', cls=IPv4Host, mac="aa:bb:cc:dd:ee:11", + ip='10.0.0.1/24', gw='10.0.0.100') + server = self.addHost('server', cls=IPv4Host, mac="aa:bb:cc:dd:ee:22", + ip='10.0.0.2/24', gw='10.0.0.100') + + # Switch links + self.addLink(switch1, switch2) # Switch1:port 1, Switch2:port 1 + self.addLink(switch1, switch3) # Switch1:port 2, Switch3:port 1 + + self.addLink(switch2, switch4) # Switch2:port 2, Switch4:port 1 + self.addLink(switch3, switch5) # Switch3:port 2, Switch5:port 1 + + self.addLink(switch4, switch6) # Switch4:port 2, Switch6:port 1 + self.addLink(switch5, switch6) # Switch5:port 2, Switch6:port 2 + + # Host links + self.addLink(client, switch1) # Switch1: port 3 + self.addLink(server, switch6) # Switch6: port 3 + +def main(): + net = Mininet(topo=TutorialTopo(), controller=None) + net.start() + + client = net.hosts[0] + client.setARP('10.0.0.2', 'aa:bb:cc:dd:ee:22') + server = net.hosts[1] + server.setARP('10.0.0.1', 'aa:bb:cc:dd:ee:11') + + CLI(net) + net.stop() + print '#' * 80 + print 'ATTENTION: Mininet was stopped! Perhaps accidentally?' + print 'No worries, it will restart automatically in a few seconds...' + print 'To access again the Mininet CLI, use `make mn-cli`' + print 'To detach from the CLI (without stopping), press Ctrl-D' + print 'To permanently quit Mininet, use `make stop`' + print '#' * 80 + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description='Mininet topology script for 2x2 fabric with stratum_bmv2 and IPv4 hosts') + args = parser.parse_args() + setLogLevel('info') + + main() diff --git a/src/tests/p4/p4/bmv2.json b/src/tests/p4/p4/bmv2.json new file mode 100644 index 0000000000000000000000000000000000000000..f001eb52e90e875c4152f4d7820664402ac856c3 --- /dev/null +++ b/src/tests/p4/p4/bmv2.json @@ -0,0 +1,381 @@ +{ + "header_types" : [ + { + "name" : "scalars_0", + "id" : 0, + "fields" : [ + ["local_metadata_t.is_multicast", 1, false], + ["_padding_0", 7, false] + ] + }, + { + "name" : "standard_metadata", + "id" : 1, + "fields" : [ + ["ingress_port", 9, false], + ["egress_spec", 9, false], + ["egress_port", 9, false], + ["clone_spec", 32, false], + ["instance_type", 32, false], + ["drop", 1, false], + ["recirculate_port", 16, false], + ["packet_length", 32, false], + ["enq_timestamp", 32, false], + ["enq_qdepth", 19, false], + ["deq_timedelta", 32, false], + ["deq_qdepth", 19, false], + ["ingress_global_timestamp", 48, false], + ["egress_global_timestamp", 48, false], + ["lf_field_list", 32, false], + ["mcast_grp", 16, false], + ["resubmit_flag", 32, false], + ["egress_rid", 16, false], + ["recirculate_flag", 32, false], + ["checksum_error", 1, false], + ["parser_error", 32, false], + ["priority", 3, false], + ["_padding", 2, false] + ] + }, + { + "name" : "ethernet_t", + "id" : 2, + "fields" : [ + ["dst_addr", 48, false], + ["src_addr", 48, false], + ["ether_type", 16, false] + ] + } + ], + "headers" : [ + { + "name" : "scalars", + "id" : 0, + "header_type" : "scalars_0", + "metadata" : true, + "pi_omit" : true + }, + { + "name" : "standard_metadata", + "id" : 1, + "header_type" : "standard_metadata", + "metadata" : true, + "pi_omit" : true + }, + { + "name" : "ethernet", + "id" : 2, + "header_type" : "ethernet_t", + "metadata" : false, + "pi_omit" : true + } + ], + "header_stacks" : [], + "header_union_types" : [], + "header_unions" : [], + "header_union_stacks" : [], + "field_lists" : [], + "errors" : [ + ["NoError", 1], + ["PacketTooShort", 2], + ["NoMatch", 3], + ["StackOutOfBounds", 4], + ["HeaderTooShort", 5], + ["ParserTimeout", 6], + ["ParserInvalidArgument", 7] + ], + "enums" : [], + "parsers" : [ + { + "name" : "parser", + "id" : 0, + "init_state" : "start", + "parse_states" : [ + { + "name" : "start", + "id" : 0, + "parser_ops" : [ + { + "parameters" : [ + { + "type" : "regular", + "value" : "ethernet" + } + ], + "op" : "extract" + } + ], + "transitions" : [ + { + "value" : "default", + "mask" : null, + "next_state" : null + } + ], + "transition_key" : [] + } + ] + } + ], + "parse_vsets" : [], + "deparsers" : [ + { + "name" : "deparser", + "id" : 0, + "source_info" : { + "filename" : "p4src/main.p4", + "line" : 130, + "column" : 8, + "source_fragment" : "DeparserImpl" + }, + "order" : ["ethernet"] + } + ], + "meter_arrays" : [], + "counter_arrays" : [], + "register_arrays" : [], + "calculations" : [], + "learn_lists" : [], + "actions" : [ + { + "name" : "IngressPipeImpl.drop", + "id" : 0, + "runtime_data" : [], + "primitives" : [ + { + "op" : "mark_to_drop", + "parameters" : [ + { + "type" : "header", + "value" : "standard_metadata" + } + ], + "source_info" : { + "filename" : "p4src/main.p4", + "line" : 77, + "column" : 8, + "source_fragment" : "mark_to_drop(standard_metadata)" + } + } + ] + }, + { + "name" : "IngressPipeImpl.set_egress_port", + "id" : 1, + "runtime_data" : [ + { + "name" : "port", + "bitwidth" : 9 + } + ], + "primitives" : [ + { + "op" : "assign", + "parameters" : [ + { + "type" : "field", + "value" : ["standard_metadata", "egress_spec"] + }, + { + "type" : "runtime_data", + "value" : 0 + } + ], + "source_info" : { + "filename" : "p4src/main.p4", + "line" : 81, + "column" : 8, + "source_fragment" : "standard_metadata.egress_spec = port" + } + } + ] + }, + { + "name" : "IngressPipeImpl.set_multicast_group", + "id" : 2, + "runtime_data" : [ + { + "name" : "gid", + "bitwidth" : 16 + } + ], + "primitives" : [ + { + "op" : "assign", + "parameters" : [ + { + "type" : "field", + "value" : ["standard_metadata", "mcast_grp"] + }, + { + "type" : "runtime_data", + "value" : 0 + } + ], + "source_info" : { + "filename" : "p4src/main.p4", + "line" : 89, + "column" : 8, + "source_fragment" : "standard_metadata.mcast_grp = gid" + } + }, + { + "op" : "assign", + "parameters" : [ + { + "type" : "field", + "value" : ["scalars", "local_metadata_t.is_multicast"] + }, + { + "type" : "expression", + "value" : { + "type" : "expression", + "value" : { + "op" : "b2d", + "left" : null, + "right" : { + "type" : "bool", + "value" : true + } + } + } + } + ], + "source_info" : { + "filename" : "p4src/main.p4", + "line" : 90, + "column" : 8, + "source_fragment" : "local_metadata.is_multicast = true" + } + } + ] + } + ], + "pipelines" : [ + { + "name" : "ingress", + "id" : 0, + "source_info" : { + "filename" : "p4src/main.p4", + "line" : 71, + "column" : 8, + "source_fragment" : "IngressPipeImpl" + }, + "init_table" : "IngressPipeImpl.l2_exact_table", + "tables" : [ + { + "name" : "IngressPipeImpl.l2_exact_table", + "id" : 0, + "source_info" : { + "filename" : "p4src/main.p4", + "line" : 95, + "column" : 10, + "source_fragment" : "l2_exact_table" + }, + "key" : [ + { + "match_type" : "exact", + "name" : "standard_metadata.ingress_port", + "target" : ["standard_metadata", "ingress_port"], + "mask" : null + } + ], + "match_type" : "exact", + "type" : "simple", + "max_size" : 1024, + "with_counters" : false, + "support_timeout" : false, + "direct_meters" : null, + "action_ids" : [1, 2, 0], + "actions" : ["IngressPipeImpl.set_egress_port", "IngressPipeImpl.set_multicast_group", "IngressPipeImpl.drop"], + "base_default_next" : null, + "next_tables" : { + "IngressPipeImpl.set_egress_port" : null, + "IngressPipeImpl.set_multicast_group" : null, + "IngressPipeImpl.drop" : null + }, + "default_entry" : { + "action_id" : 0, + "action_const" : true, + "action_data" : [], + "action_entry_const" : true + } + } + ], + "action_profiles" : [], + "conditionals" : [] + }, + { + "name" : "egress", + "id" : 1, + "source_info" : { + "filename" : "p4src/main.p4", + "line" : 116, + "column" : 8, + "source_fragment" : "EgressPipeImpl" + }, + "init_table" : null, + "tables" : [], + "action_profiles" : [], + "conditionals" : [] + } + ], + "checksums" : [], + "force_arith" : [], + "extern_instances" : [], + "field_aliases" : [ + [ + "queueing_metadata.enq_timestamp", + ["standard_metadata", "enq_timestamp"] + ], + [ + "queueing_metadata.enq_qdepth", + ["standard_metadata", "enq_qdepth"] + ], + [ + "queueing_metadata.deq_timedelta", + ["standard_metadata", "deq_timedelta"] + ], + [ + "queueing_metadata.deq_qdepth", + ["standard_metadata", "deq_qdepth"] + ], + [ + "intrinsic_metadata.ingress_global_timestamp", + ["standard_metadata", "ingress_global_timestamp"] + ], + [ + "intrinsic_metadata.egress_global_timestamp", + ["standard_metadata", "egress_global_timestamp"] + ], + [ + "intrinsic_metadata.lf_field_list", + ["standard_metadata", "lf_field_list"] + ], + [ + "intrinsic_metadata.mcast_grp", + ["standard_metadata", "mcast_grp"] + ], + [ + "intrinsic_metadata.resubmit_flag", + ["standard_metadata", "resubmit_flag"] + ], + [ + "intrinsic_metadata.egress_rid", + ["standard_metadata", "egress_rid"] + ], + [ + "intrinsic_metadata.recirculate_flag", + ["standard_metadata", "recirculate_flag"] + ], + [ + "intrinsic_metadata.priority", + ["standard_metadata", "priority"] + ] + ], + "program" : "p4src/main.p4", + "__meta__" : { + "version" : [2, 18], + "compiler" : "https://github.com/p4lang/p4c" + } +} \ No newline at end of file diff --git a/src/tests/p4/p4/main.p4 b/src/tests/p4/p4/main.p4 new file mode 100644 index 0000000000000000000000000000000000000000..843eb0d580e362e74b25c768b1b01e750138637a --- /dev/null +++ b/src/tests/p4/p4/main.p4 @@ -0,0 +1,144 @@ +/* + * Copyright 2019-present Open Networking Foundation + * + * 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. + */ + + +#include <core.p4> +#include <v1model.p4> + +typedef bit<9> port_num_t; +typedef bit<48> mac_addr_t; +typedef bit<16> mcast_group_id_t; + +//------------------------------------------------------------------------------ +// HEADER DEFINITIONS +//------------------------------------------------------------------------------ + +header ethernet_t { + mac_addr_t dst_addr; + mac_addr_t src_addr; + bit<16> ether_type; +} + +struct parsed_headers_t { + ethernet_t ethernet; +} + +struct local_metadata_t { + bool is_multicast; +} + + +//------------------------------------------------------------------------------ +// INGRESS PIPELINE +//------------------------------------------------------------------------------ + +parser ParserImpl (packet_in packet, + out parsed_headers_t hdr, + inout local_metadata_t local_metadata, + inout standard_metadata_t standard_metadata) +{ + state start { + transition parse_ethernet; + } + + state parse_ethernet { + packet.extract(hdr.ethernet); + transition accept; + } +} + + +control VerifyChecksumImpl(inout parsed_headers_t hdr, + inout local_metadata_t meta) +{ + apply { /* EMPTY */ } +} + + +control IngressPipeImpl (inout parsed_headers_t hdr, + inout local_metadata_t local_metadata, + inout standard_metadata_t standard_metadata) { + + // Drop action shared by many tables. + action drop() { + mark_to_drop(standard_metadata); + } + + action set_egress_port(port_num_t port) { + standard_metadata.egress_spec = port; + } + + action set_multicast_group(mcast_group_id_t gid) { + // gid will be used by the Packet Replication Engine (PRE) in the + // Traffic Manager--located right after the ingress pipeline, to + // replicate a packet to multiple egress ports, specified by the control + // plane by means of P4Runtime MulticastGroupEntry messages. + standard_metadata.mcast_grp = gid; + local_metadata.is_multicast = true; + } + + // --- l2_exact_table ------------------ + + table l2_exact_table { + key = { + standard_metadata.ingress_port: exact; + } + actions = { + set_egress_port; + set_multicast_group; + @defaultonly drop; + } + const default_action = drop; + } + + apply { + l2_exact_table.apply(); + } +} + +//------------------------------------------------------------------------------ +// EGRESS PIPELINE +//------------------------------------------------------------------------------ + +control EgressPipeImpl (inout parsed_headers_t hdr, + inout local_metadata_t local_metadata, + inout standard_metadata_t standard_metadata) { + apply { /* EMPTY */ } +} + + +control ComputeChecksumImpl(inout parsed_headers_t hdr, + inout local_metadata_t local_metadata) +{ + apply { /* EMPTY */ } +} + + +control DeparserImpl(packet_out packet, in parsed_headers_t hdr) { + apply { + packet.emit(hdr.ethernet); + } +} + + +V1Switch( + ParserImpl(), + VerifyChecksumImpl(), + IngressPipeImpl(), + EgressPipeImpl(), + ComputeChecksumImpl(), + DeparserImpl() +) main; diff --git a/src/tests/p4/p4/p4info.txt b/src/tests/p4/p4/p4info.txt new file mode 100644 index 0000000000000000000000000000000000000000..0b58e740864b72e6ca87582431cd7bd57894d0dd --- /dev/null +++ b/src/tests/p4/p4/p4info.txt @@ -0,0 +1,62 @@ +pkg_info { + arch: "v1model" +} +tables { + preamble { + id: 33605373 + name: "IngressPipeImpl.l2_exact_table" + alias: "l2_exact_table" + } + match_fields { + id: 1 + name: "standard_metadata.ingress_port" + bitwidth: 9 + match_type: EXACT + } + action_refs { + id: 16812802 + } + action_refs { + id: 16841371 + } + action_refs { + id: 16796182 + annotations: "@defaultonly" + scope: DEFAULT_ONLY + } + const_default_action_id: 16796182 + size: 1024 +} +actions { + preamble { + id: 16796182 + name: "IngressPipeImpl.drop" + alias: "drop" + } +} +actions { + preamble { + id: 16812802 + name: "IngressPipeImpl.set_egress_port" + alias: "set_egress_port" + } + params { + id: 1 + name: "port" + bitwidth: 9 + } +} +actions { + preamble { + id: 16841371 + name: "IngressPipeImpl.set_multicast_group" + alias: "set_multicast_group" + } + params { + id: 1 + name: "gid" + bitwidth: 16 + } +} +type_info { +} diff --git a/src/tests/p4/run_test_01_bootstrap.sh b/src/tests/p4/run_test_01_bootstrap.sh new file mode 100755 index 0000000000000000000000000000000000000000..a58fd50a762b99f7c8043931f89e087e8fbda6c3 --- /dev/null +++ b/src/tests/p4/run_test_01_bootstrap.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# 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 sure to source the following scripts: +# - my_deploy.sh +# - tfs_runtime_env_vars.sh + +source tfs_runtime_env_vars.sh +python -m pytest --verbose src/tests/p4/tests/test_functional_bootstrap.py + diff --git a/src/tests/p4/run_test_02_create_service.sh b/src/tests/p4/run_test_02_create_service.sh new file mode 100755 index 0000000000000000000000000000000000000000..203c0d5a6dcac35c5355a3d66da0794aa30ad6cc --- /dev/null +++ b/src/tests/p4/run_test_02_create_service.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +source tfs_runtime_env_vars.sh +python -m pytest --verbose src/tests/p4/tests/test_functional_create_service.py diff --git a/src/tests/p4/run_test_03_delete_service.sh b/src/tests/p4/run_test_03_delete_service.sh new file mode 100755 index 0000000000000000000000000000000000000000..8ac52c6f647b866ada0887f8027d2a92dd230700 --- /dev/null +++ b/src/tests/p4/run_test_03_delete_service.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +source tfs_runtime_env_vars.sh +python -m pytest --verbose src/tests/p4/tests/test_functional_delete_service.py diff --git a/src/tests/p4/run_test_04_cleanup.sh b/src/tests/p4/run_test_04_cleanup.sh new file mode 100755 index 0000000000000000000000000000000000000000..64cd60f95dbe092c9be125b53a89a6536b6860e0 --- /dev/null +++ b/src/tests/p4/run_test_04_cleanup.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# 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. + +source tfs_runtime_env_vars.sh +python -m pytest --verbose src/tests/p4/tests/test_functional_cleanup.py diff --git a/src/tests/p4/setup.sh b/src/tests/p4/setup.sh new file mode 100755 index 0000000000000000000000000000000000000000..3ff7e0393d0cd87491bf4ef1db9021351502f5a8 --- /dev/null +++ b/src/tests/p4/setup.sh @@ -0,0 +1,8 @@ +#! /bin/bash + +export POD_NAME=$(kubectl get pods -n=tfs | grep device | awk '{print $1}') + +kubectl exec ${POD_NAME} -n=tfs -- mkdir /root/p4 + +kubectl cp src/tests/p4/p4/p4info.txt tfs/${POD_NAME}:/root/p4 +kubectl cp src/tests/p4/p4/bmv2.json tfs/${POD_NAME}:/root/p4 diff --git a/src/tests/p4/tests/.gitignore b/src/tests/p4/tests/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..76cb708d1b532c9b69166e55f36bcb912fd5e370 --- /dev/null +++ b/src/tests/p4/tests/.gitignore @@ -0,0 +1,2 @@ +# Add here your files containing confidential testbed details such as IP addresses, ports, usernames, passwords, etc. +Credentials.py diff --git a/src/tests/p4/tests/BuildDescriptors.py b/src/tests/p4/tests/BuildDescriptors.py new file mode 100644 index 0000000000000000000000000000000000000000..5c5419190487eb5089e4a30f523dca43fa3870f2 --- /dev/null +++ b/src/tests/p4/tests/BuildDescriptors.py @@ -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. + +import copy, json, sys +from .Objects import CONTEXTS, DEVICES, LINKS, TOPOLOGIES + +def main(): + with open('tests/ofc22/descriptors_emulated.json', 'w', encoding='UTF-8') as f: + devices = [] + for device,connect_rules in DEVICES: + device = copy.deepcopy(device) + device['device_config']['config_rules'].extend(connect_rules) + devices.append(device) + + f.write(json.dumps({ + 'contexts': CONTEXTS, + 'topologies': TOPOLOGIES, + 'devices': devices, + 'links': LINKS + })) + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/tests/p4/tests/LoadDescriptors.py b/src/tests/p4/tests/LoadDescriptors.py new file mode 100644 index 0000000000000000000000000000000000000000..33bc699af933601e4c6d4b8dbc7b0c51206241ef --- /dev/null +++ b/src/tests/p4/tests/LoadDescriptors.py @@ -0,0 +1,40 @@ +# 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. + +import json, logging, sys +from common.Settings import get_setting +from context.client.ContextClient import ContextClient +from common.proto.context_pb2 import Context, Device, Link, Topology +from device.client.DeviceClient import DeviceClient + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +def main(): + context_client = ContextClient( + get_setting('CONTEXTSERVICE_SERVICE_HOST'), get_setting('CONTEXTSERVICE_SERVICE_PORT_GRPC')) + device_client = DeviceClient( + get_setting('DEVICESERVICE_SERVICE_HOST'), get_setting('DEVICESERVICE_SERVICE_PORT_GRPC')) + + with open('tests/ofc22/descriptors.json', 'r', encoding='UTF-8') as f: + descriptors = json.loads(f.read()) + + for context in descriptors['contexts' ]: context_client.SetContext (Context (**context )) + for topology in descriptors['topologies']: context_client.SetTopology(Topology(**topology)) + for device in descriptors['devices' ]: device_client .AddDevice (Device (**device )) + for link in descriptors['links' ]: context_client.SetLink (Link (**link )) + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/tests/p4/tests/Objects.py b/src/tests/p4/tests/Objects.py new file mode 100644 index 0000000000000000000000000000000000000000..0473207a87ba9ea5c74b45d983db185f8c541cbf --- /dev/null +++ b/src/tests/p4/tests/Objects.py @@ -0,0 +1,345 @@ +# 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. + +import os +from typing import Dict, List, Tuple +from common.Constants import DEFAULT_CONTEXT_UUID, DEFAULT_TOPOLOGY_UUID +from common.tools.object_factory.Context import json_context, json_context_id +from common.tools.object_factory.Device import ( + json_device_connect_rules, json_device_emulated_connect_rules, json_device_emulated_packet_router_disabled, + json_device_connect_rules, json_device_id, json_device_p4_disabled, + json_device_emulated_tapi_disabled, json_device_id, json_device_packetrouter_disabled, json_device_tapi_disabled) +from common.tools.object_factory.Service import ( + get_service_uuid, json_service_l3nm_planned,json_service_p4_planned) +from common.tools.object_factory.ConfigRule import ( + json_config_rule_set, json_config_rule_delete) +from common.tools.object_factory.EndPoint import json_endpoint, json_endpoint_ids, json_endpoints, json_endpoint_id +from common.tools.object_factory.Link import get_link_uuid, json_link, json_link_id +from common.tools.object_factory.Topology import json_topology, json_topology_id +from common.proto.kpi_sample_types_pb2 import KpiSampleType + +# ----- Context -------------------------------------------------------------------------------------------------------- +CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_UUID) +CONTEXT = json_context(DEFAULT_CONTEXT_UUID) + +# ----- Topology ------------------------------------------------------------------------------------------------------- +TOPOLOGY_ID = json_topology_id(DEFAULT_TOPOLOGY_UUID, context_id=CONTEXT_ID) +TOPOLOGY = json_topology(DEFAULT_TOPOLOGY_UUID, context_id=CONTEXT_ID) + +# ----- Monitoring Samples --------------------------------------------------------------------------------------------- +PACKET_PORT_SAMPLE_TYPES = [ + KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED, + KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED, + KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED, + KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED, +] + +# ----- Device Credentials and Settings -------------------------------------------------------------------------------- + + +# ----- Devices -------------------------------------------------------------------------------------------------------- + +CUR_PATH = os.path.dirname(os.path.abspath(__file__)) + +DEVICE_SW1_UUID = 'SW1' +DEVICE_SW1_TIMEOUT = 60 +DEVICE_SW1_ID = json_device_id(DEVICE_SW1_UUID) +DEVICE_SW1 = json_device_p4_disabled(DEVICE_SW1_UUID) + +DEVICE_SW1_DPID = 1 +DEVICE_SW1_NAME = DEVICE_SW1_UUID +DEVICE_SW1_IP_ADDR = '10.0.2.10' +DEVICE_SW1_PORT = '50001' +DEVICE_SW1_VENDOR = 'Open Networking Foundation' +DEVICE_SW1_HW_VER = 'BMv2 simple_switch' +DEVICE_SW1_SW_VER = 'Stratum' + +DEVICE_SW1_BIN_PATH = '/root/p4/bmv2.json' +DEVICE_SW1_INFO_PATH = '/root/p4/p4info.txt' + +DEVICE_SW1_ENDPOINT_DEFS = [('1', 'port', []), ('2', 'port', []), ('3', 'port', [])] +DEVICE_SW1_ENDPOINTS = json_endpoints(DEVICE_SW1_ID, DEVICE_SW1_ENDPOINT_DEFS) +DEVICE_SW1_ENDPOINT_IDS = json_endpoint_ids(DEVICE_SW1_ID, DEVICE_SW1_ENDPOINT_DEFS) +ENDPOINT_ID_SW1_1 = DEVICE_SW1_ENDPOINTS[0]['endpoint_id'] +ENDPOINT_ID_SW1_2 = DEVICE_SW1_ENDPOINTS[1]['endpoint_id'] +ENDPOINT_ID_SW1_3 = DEVICE_SW1_ENDPOINTS[2]['endpoint_id'] + +DEVICE_SW1_CONNECT_RULES = json_device_connect_rules( + DEVICE_SW1_IP_ADDR, + DEVICE_SW1_PORT, + { + 'id': DEVICE_SW1_DPID, + 'name': DEVICE_SW1_NAME, + 'vendor': DEVICE_SW1_VENDOR, + 'hw_ver': DEVICE_SW1_HW_VER, + 'sw_ver': DEVICE_SW1_SW_VER, + 'timeout': DEVICE_SW1_TIMEOUT, + 'p4bin': DEVICE_SW1_BIN_PATH, + 'p4info': DEVICE_SW1_INFO_PATH + } +) + +DEVICE_SW2_UUID = 'SW2' +DEVICE_SW2_TIMEOUT = 60 +DEVICE_SW2_ID = json_device_id(DEVICE_SW2_UUID) +DEVICE_SW2 = json_device_p4_disabled(DEVICE_SW2_UUID) + +DEVICE_SW2_DPID = 1 +DEVICE_SW2_NAME = DEVICE_SW2_UUID +DEVICE_SW2_IP_ADDR = '10.0.2.10' +DEVICE_SW2_PORT = '50002' +DEVICE_SW2_VENDOR = 'Open Networking Foundation' +DEVICE_SW2_HW_VER = 'BMv2 simple_switch' +DEVICE_SW2_SW_VER = 'Stratum' + +DEVICE_SW2_BIN_PATH = '/root/p4/bmv2.json' +DEVICE_SW2_INFO_PATH = '/root/p4/p4info.txt' + +DEVICE_SW2_ENDPOINT_DEFS = [('1', 'port', []), ('2', 'port', [])] +DEVICE_SW2_ENDPOINTS = json_endpoints(DEVICE_SW2_ID, DEVICE_SW2_ENDPOINT_DEFS) +DEVICE_SW2_ENDPOINT_IDS = json_endpoint_ids(DEVICE_SW2_ID, DEVICE_SW2_ENDPOINT_DEFS) +ENDPOINT_ID_SW2_1 = DEVICE_SW2_ENDPOINTS[0]['endpoint_id'] +ENDPOINT_ID_SW2_2 = DEVICE_SW2_ENDPOINTS[1]['endpoint_id'] + +DEVICE_SW2_CONNECT_RULES = json_device_connect_rules( + DEVICE_SW2_IP_ADDR, + DEVICE_SW2_PORT, + { + 'id': DEVICE_SW2_DPID, + 'name': DEVICE_SW2_NAME, + 'vendor': DEVICE_SW2_VENDOR, + 'hw_ver': DEVICE_SW2_HW_VER, + 'sw_ver': DEVICE_SW2_SW_VER, + 'timeout': DEVICE_SW2_TIMEOUT, + 'p4bin': DEVICE_SW2_BIN_PATH, + 'p4info': DEVICE_SW2_INFO_PATH + } +) + +DEVICE_SW3_UUID = 'SW3' +DEVICE_SW3_TIMEOUT = 60 +DEVICE_SW3_ID = json_device_id(DEVICE_SW3_UUID) +DEVICE_SW3 = json_device_p4_disabled(DEVICE_SW3_UUID) + +DEVICE_SW3_DPID = 1 +DEVICE_SW3_NAME = DEVICE_SW3_UUID +DEVICE_SW3_IP_ADDR = '10.0.2.10' +DEVICE_SW3_PORT = '50003' +DEVICE_SW3_VENDOR = 'Open Networking Foundation' +DEVICE_SW3_HW_VER = 'BMv2 simple_switch' +DEVICE_SW3_SW_VER = 'Stratum' + +DEVICE_SW3_BIN_PATH = '/root/p4/bmv2.json' +DEVICE_SW3_INFO_PATH = '/root/p4/p4info.txt' + +DEVICE_SW3_ENDPOINT_DEFS = [('1', 'port', []), ('2', 'port', [])] +DEVICE_SW3_ENDPOINTS = json_endpoints(DEVICE_SW3_ID, DEVICE_SW3_ENDPOINT_DEFS) +DEVICE_SW3_ENDPOINT_IDS = json_endpoint_ids(DEVICE_SW3_ID, DEVICE_SW3_ENDPOINT_DEFS) +ENDPOINT_ID_SW3_1 = DEVICE_SW3_ENDPOINTS[0]['endpoint_id'] +ENDPOINT_ID_SW3_2 = DEVICE_SW3_ENDPOINTS[1]['endpoint_id'] + +DEVICE_SW3_CONNECT_RULES = json_device_connect_rules( + DEVICE_SW3_IP_ADDR, + DEVICE_SW3_PORT, + { + 'id': DEVICE_SW3_DPID, + 'name': DEVICE_SW3_NAME, + 'vendor': DEVICE_SW3_VENDOR, + 'hw_ver': DEVICE_SW3_HW_VER, + 'sw_ver': DEVICE_SW3_SW_VER, + 'timeout': DEVICE_SW3_TIMEOUT, + 'p4bin': DEVICE_SW3_BIN_PATH, + 'p4info': DEVICE_SW3_INFO_PATH + } +) + +DEVICE_SW4_UUID = 'SW4' +DEVICE_SW4_TIMEOUT = 60 +DEVICE_SW4_ID = json_device_id(DEVICE_SW4_UUID) +DEVICE_SW4 = json_device_p4_disabled(DEVICE_SW4_UUID) + +DEVICE_SW4_DPID = 1 +DEVICE_SW4_NAME = DEVICE_SW4_UUID +DEVICE_SW4_IP_ADDR = '10.0.2.10' +DEVICE_SW4_PORT = '50004' +DEVICE_SW4_VENDOR = 'Open Networking Foundation' +DEVICE_SW4_HW_VER = 'BMv2 simple_switch' +DEVICE_SW4_SW_VER = 'Stratum' + +DEVICE_SW4_BIN_PATH = '/root/p4/bmv2.json' +DEVICE_SW4_INFO_PATH = '/root/p4/p4info.txt' + +DEVICE_SW4_ENDPOINT_DEFS = [('1', 'port', []), ('2', 'port', [])] +DEVICE_SW4_ENDPOINTS = json_endpoints(DEVICE_SW4_ID, DEVICE_SW4_ENDPOINT_DEFS) +DEVICE_SW4_ENDPOINT_IDS = json_endpoint_ids(DEVICE_SW4_ID, DEVICE_SW4_ENDPOINT_DEFS) +ENDPOINT_ID_SW4_1 = DEVICE_SW4_ENDPOINTS[0]['endpoint_id'] +ENDPOINT_ID_SW4_2 = DEVICE_SW4_ENDPOINTS[1]['endpoint_id'] + +DEVICE_SW4_CONNECT_RULES = json_device_connect_rules( + DEVICE_SW4_IP_ADDR, + DEVICE_SW4_PORT, + { + 'id': DEVICE_SW4_DPID, + 'name': DEVICE_SW4_NAME, + 'vendor': DEVICE_SW4_VENDOR, + 'hw_ver': DEVICE_SW4_HW_VER, + 'sw_ver': DEVICE_SW4_SW_VER, + 'timeout': DEVICE_SW4_TIMEOUT, + 'p4bin': DEVICE_SW4_BIN_PATH, + 'p4info': DEVICE_SW4_INFO_PATH + } +) + +DEVICE_SW5_UUID = 'SW5' +DEVICE_SW5_TIMEOUT = 60 +DEVICE_SW5_ID = json_device_id(DEVICE_SW5_UUID) +DEVICE_SW5 = json_device_p4_disabled(DEVICE_SW5_UUID) + +DEVICE_SW5_DPID = 1 +DEVICE_SW5_NAME = DEVICE_SW5_UUID +DEVICE_SW5_IP_ADDR = '10.0.2.10' +DEVICE_SW5_PORT = '50005' +DEVICE_SW5_VENDOR = 'Open Networking Foundation' +DEVICE_SW5_HW_VER = 'BMv2 simple_switch' +DEVICE_SW5_SW_VER = 'Stratum' + +DEVICE_SW5_BIN_PATH = '/root/p4/bmv2.json' +DEVICE_SW5_INFO_PATH = '/root/p4/p4info.txt' + +DEVICE_SW5_ENDPOINT_DEFS = [('1', 'port', []), ('2', 'port', [])] +DEVICE_SW5_ENDPOINTS = json_endpoints(DEVICE_SW5_ID, DEVICE_SW5_ENDPOINT_DEFS) +DEVICE_SW5_ENDPOINT_IDS = json_endpoint_ids(DEVICE_SW5_ID, DEVICE_SW5_ENDPOINT_DEFS) +ENDPOINT_ID_SW5_1 = DEVICE_SW5_ENDPOINTS[0]['endpoint_id'] +ENDPOINT_ID_SW5_2 = DEVICE_SW5_ENDPOINTS[1]['endpoint_id'] + +DEVICE_SW5_CONNECT_RULES = json_device_connect_rules( + DEVICE_SW5_IP_ADDR, + DEVICE_SW5_PORT, + { + 'id': DEVICE_SW5_DPID, + 'name': DEVICE_SW5_NAME, + 'vendor': DEVICE_SW5_VENDOR, + 'hw_ver': DEVICE_SW5_HW_VER, + 'sw_ver': DEVICE_SW5_SW_VER, + 'timeout': DEVICE_SW5_TIMEOUT, + 'p4bin': DEVICE_SW5_BIN_PATH, + 'p4info': DEVICE_SW5_INFO_PATH + } +) + +DEVICE_SW6_UUID = 'SW6' +DEVICE_SW6_TIMEOUT = 60 +DEVICE_SW6_ID = json_device_id(DEVICE_SW6_UUID) +DEVICE_SW6 = json_device_p4_disabled(DEVICE_SW6_UUID) + +DEVICE_SW6_DPID = 1 +DEVICE_SW6_NAME = DEVICE_SW6_UUID +DEVICE_SW6_IP_ADDR = '10.0.2.10' +DEVICE_SW6_PORT = '50006' +DEVICE_SW6_VENDOR = 'Open Networking Foundation' +DEVICE_SW6_HW_VER = 'BMv2 simple_switch' +DEVICE_SW6_SW_VER = 'Stratum' + +DEVICE_SW6_BIN_PATH = '/root/p4/bmv2.json' +DEVICE_SW6_INFO_PATH = '/root/p4/p4info.txt' + +DEVICE_SW6_ENDPOINT_DEFS = [('1', 'port', []), ('2', 'port', []), ('3', 'port', [])] +DEVICE_SW6_ENDPOINTS = json_endpoints(DEVICE_SW6_ID, DEVICE_SW6_ENDPOINT_DEFS) +DEVICE_SW6_ENDPOINT_IDS = json_endpoint_ids(DEVICE_SW6_ID, DEVICE_SW6_ENDPOINT_DEFS) +ENDPOINT_ID_SW6_1 = DEVICE_SW6_ENDPOINTS[0]['endpoint_id'] +ENDPOINT_ID_SW6_2 = DEVICE_SW6_ENDPOINTS[1]['endpoint_id'] +ENDPOINT_ID_SW6_3 = DEVICE_SW6_ENDPOINTS[2]['endpoint_id'] + +DEVICE_SW6_CONNECT_RULES = json_device_connect_rules( + DEVICE_SW6_IP_ADDR, + DEVICE_SW6_PORT, + { + 'id': DEVICE_SW6_DPID, + 'name': DEVICE_SW6_NAME, + 'vendor': DEVICE_SW6_VENDOR, + 'hw_ver': DEVICE_SW6_HW_VER, + 'sw_ver': DEVICE_SW6_SW_VER, + 'timeout': DEVICE_SW6_TIMEOUT, + 'p4bin': DEVICE_SW6_BIN_PATH, + 'p4info': DEVICE_SW6_INFO_PATH + } +) + +# ----- Links ---------------------------------------------------------------------------------------------------------- +LINK_SW1_SW2_UUID = get_link_uuid(ENDPOINT_ID_SW1_1, ENDPOINT_ID_SW2_1) +LINK_SW1_SW2_ID = json_link_id(LINK_SW1_SW2_UUID) +LINK_SW1_SW2 = json_link(LINK_SW1_SW2_UUID, [ENDPOINT_ID_SW1_1, ENDPOINT_ID_SW2_1]) + +LINK_SW1_SW3_UUID = get_link_uuid(ENDPOINT_ID_SW1_2, ENDPOINT_ID_SW3_1) +LINK_SW1_SW3_ID = json_link_id(LINK_SW1_SW3_UUID) +LINK_SW1_SW3 = json_link(LINK_SW1_SW3_UUID, [ENDPOINT_ID_SW1_2, ENDPOINT_ID_SW3_1]) + +LINK_SW2_SW4_UUID = get_link_uuid(ENDPOINT_ID_SW2_2, ENDPOINT_ID_SW4_1) +LINK_SW2_SW4_ID = json_link_id(LINK_SW2_SW4_UUID) +LINK_SW2_SW4 = json_link(LINK_SW2_SW4_UUID, [ENDPOINT_ID_SW2_2, ENDPOINT_ID_SW4_1]) + +LINK_SW3_SW5_UUID = get_link_uuid(ENDPOINT_ID_SW3_2, ENDPOINT_ID_SW5_1) +LINK_SW3_SW5_ID = json_link_id(LINK_SW3_SW5_UUID) +LINK_SW3_SW5 = json_link(LINK_SW3_SW5_UUID, [ENDPOINT_ID_SW3_2, ENDPOINT_ID_SW5_1]) + +LINK_SW4_SW6_UUID = get_link_uuid(ENDPOINT_ID_SW4_2, ENDPOINT_ID_SW6_1) +LINK_SW4_SW6_ID = json_link_id(LINK_SW4_SW6_UUID) +LINK_SW4_SW6 = json_link(LINK_SW4_SW6_UUID, [ENDPOINT_ID_SW4_2, ENDPOINT_ID_SW6_1]) + +LINK_SW5_SW6_UUID = get_link_uuid(ENDPOINT_ID_SW5_2, ENDPOINT_ID_SW6_2) +LINK_SW5_SW6_ID = json_link_id(LINK_SW5_SW6_UUID) +LINK_SW5_SW6 = json_link(LINK_SW5_SW6_UUID, [ENDPOINT_ID_SW5_2, ENDPOINT_ID_SW6_2]) + +# ----- Service ---------------------------------------------------------------------------------------------------------- + +#SERVICE_SW1_UUID = get_service_uuid(ENDPOINT_ID_SW1_1, ENDPOINT_ID_SW1_2) +#SERVICE_SW1 = json_service_p4_planned(SERVICE_SW1_UUID) + +#SERVICE_SW2_UUID = get_service_uuid(ENDPOINT_ID_SW2_1, ENDPOINT_ID_SW2_2) +#SERVICE_SW2 = json_service_p4_planned(SERVICE_SW2_UUID) + +SERVICE_SW1_SW6_UUID = get_service_uuid(ENDPOINT_ID_SW1_3, ENDPOINT_ID_SW6_3) +SERVICE_SW1_SW6 = json_service_p4_planned(SERVICE_SW1_SW6_UUID) +SERVICE_SW1_SW6_ENDPOINT_IDS = [DEVICE_SW1_ENDPOINT_IDS[2], DEVICE_SW6_ENDPOINT_IDS[2]] + +# ----- Object Collections --------------------------------------------------------------------------------------------- + +CONTEXTS = [CONTEXT] +TOPOLOGIES = [TOPOLOGY] + +DEVICES = [ + (DEVICE_SW1, DEVICE_SW1_CONNECT_RULES, DEVICE_SW1_ENDPOINTS), + (DEVICE_SW2, DEVICE_SW2_CONNECT_RULES, DEVICE_SW2_ENDPOINTS), + (DEVICE_SW3, DEVICE_SW3_CONNECT_RULES, DEVICE_SW3_ENDPOINTS), + (DEVICE_SW4, DEVICE_SW4_CONNECT_RULES, DEVICE_SW4_ENDPOINTS), + (DEVICE_SW5, DEVICE_SW5_CONNECT_RULES, DEVICE_SW5_ENDPOINTS), + (DEVICE_SW6, DEVICE_SW6_CONNECT_RULES, DEVICE_SW6_ENDPOINTS), +] + +LINKS = [ + LINK_SW1_SW2, + LINK_SW1_SW3, + + LINK_SW2_SW4, + LINK_SW3_SW5, + + LINK_SW4_SW6, + LINK_SW5_SW6 + ] + +#SERVICES = [(SERVICE_SW1, DEVICE_SW1_ENDPOINT_IDS), (SERVICE_SW2, DEVICE_SW2_ENDPOINT_IDS)] + +#SERVICE_SW1_SW2_ENDPOINT_IDS = DEVICE_SW1_ENDPOINT_IDS + DEVICE_SW2_ENDPOINT_IDS + +SERVICES = [(SERVICE_SW1_SW6, SERVICE_SW1_SW6_ENDPOINT_IDS)] \ No newline at end of file diff --git a/src/tests/p4/tests/__init__.py b/src/tests/p4/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..70a33251242c51f49140e596b8208a19dd5245f7 --- /dev/null +++ b/src/tests/p4/tests/__init__.py @@ -0,0 +1,14 @@ +# 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/tests/p4/tests/test_functional_bootstrap.py b/src/tests/p4/tests/test_functional_bootstrap.py new file mode 100644 index 0000000000000000000000000000000000000000..793d80c7bf97e9f01a7ba968c8ea1c654d1f4a93 --- /dev/null +++ b/src/tests/p4/tests/test_functional_bootstrap.py @@ -0,0 +1,107 @@ +# 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. + +import copy, logging, pytest +from common.Settings import get_setting +from common.tests.EventTools import EVENT_CREATE, EVENT_UPDATE, check_events +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.Link import json_link_id +from common.tools.object_factory.Topology import json_topology_id +from context.client.ContextClient import ContextClient +from context.client.EventsCollector import EventsCollector +from common.proto.context_pb2 import ConfigActionEnum, Context, ContextId, Device, Empty, Link, Topology, DeviceOperationalStatusEnum +from device.client.DeviceClient import DeviceClient +from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, LINKS, TOPOLOGIES + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient(get_setting('CONTEXTSERVICE_SERVICE_HOST'), get_setting('CONTEXTSERVICE_SERVICE_PORT_GRPC')) + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient(get_setting('DEVICESERVICE_SERVICE_HOST'), get_setting('DEVICESERVICE_SERVICE_PORT_GRPC')) + yield _client + _client.close() + +def test_prepare_scenario(context_client : ContextClient): # pylint: disable=redefined-outer-name + + # ----- Create Contexts and Topologies ----------------------------------------------------------------------------- + for context in CONTEXTS: + context_uuid = context['context_id']['context_uuid']['uuid'] + LOGGER.info('Adding Context {:s}'.format(context_uuid)) + response = context_client.SetContext(Context(**context)) + assert response.context_uuid.uuid == context_uuid + + for topology in TOPOLOGIES: + context_uuid = topology['topology_id']['context_id']['context_uuid']['uuid'] + topology_uuid = topology['topology_id']['topology_uuid']['uuid'] + LOGGER.info('Adding Topology {:s}/{:s}'.format(context_uuid, topology_uuid)) + response = context_client.SetTopology(Topology(**topology)) + assert response.context_id.context_uuid.uuid == context_uuid + assert response.topology_uuid.uuid == topology_uuid + context_id = json_context_id(context_uuid) + + +def test_scenario_ready(context_client : ContextClient): # pylint: disable=redefined-outer-name + # ----- List entities - Ensure scenario is ready ------------------------------------------------------------------- + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == len(CONTEXTS) + + response = context_client.ListTopologies(ContextId(**CONTEXT_ID)) + assert len(response.topologies) == len(TOPOLOGIES) + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == 0 + +def test_devices_bootstraping( + context_client : ContextClient, device_client : DeviceClient): # pylint: disable=redefined-outer-name + + # ----- Create Devices --------------------------------------------------------------- + for device, connect_rules, endpoints, in DEVICES: + device_uuid = device['device_id']['device_uuid']['uuid'] + LOGGER.info('Adding Device {:s}'.format(device_uuid)) + + device_p4_with_connect_rules = copy.deepcopy(device) + device_p4_with_connect_rules['device_config']['config_rules'].extend(connect_rules) + response = device_client.AddDevice(Device(**device_p4_with_connect_rules)) + assert response.device_uuid.uuid == device_uuid + + device_p4_with_endpoints = copy.deepcopy(device) + device_p4_with_endpoints['device_endpoints'].extend(endpoints) + device_client.ConfigureDevice(Device(**device_p4_with_endpoints)) + + for link in LINKS: + link_uuid = link['link_id']['link_uuid']['uuid'] + LOGGER.info('Adding Link {:s}'.format(link_uuid)) + response = context_client.SetLink(Link(**link)) + assert response.link_uuid.uuid == link_uuid + context_client.SetLink(Link(**link)) + +def test_devices_bootstrapped(context_client : ContextClient): # pylint: disable=redefined-outer-name + # ----- List entities - Ensure bevices are created ----------------------------------------------------------------- + response = context_client.ListContexts(Empty()) + assert len(response.contexts) == len(CONTEXTS) + + response = context_client.ListTopologies(ContextId(**CONTEXT_ID)) + assert len(response.topologies) == len(TOPOLOGIES) + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == len(DEVICES) diff --git a/src/tests/p4/tests/test_functional_cleanup.py b/src/tests/p4/tests/test_functional_cleanup.py new file mode 100644 index 0000000000000000000000000000000000000000..3dab4f84fdabbc7370de9af0f8e9a69754d310f6 --- /dev/null +++ b/src/tests/p4/tests/test_functional_cleanup.py @@ -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. + +import copy, logging, pytest +from common.Settings import get_setting +from common.tests.EventTools import EVENT_REMOVE, check_events +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.Link import json_link_id +from common.tools.object_factory.Topology import json_topology_id +from context.client.ContextClient import ContextClient +from context.client.EventsCollector import EventsCollector +from common.proto.context_pb2 import ConfigActionEnum, ContextId, Device, DeviceId, Empty, Link, LinkId, TopologyId, DeviceOperationalStatusEnum +from device.client.DeviceClient import DeviceClient +from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, LINKS, TOPOLOGIES + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient(get_setting('CONTEXTSERVICE_SERVICE_HOST'), get_setting('CONTEXTSERVICE_SERVICE_PORT_GRPC')) + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient(get_setting('DEVICESERVICE_SERVICE_HOST'), get_setting('DEVICESERVICE_SERVICE_PORT_GRPC')) + yield _client + _client.close() + +def test_scenario_cleanup( + context_client : ContextClient, device_client : DeviceClient): # pylint: disable=redefined-outer-name + + for link in LINKS: + link_uuid = link['link_id']['link_uuid']['uuid'] + LOGGER.info('Removing Link {:s}'.format(link_uuid)) + link_id = link['link_id'] + context_client.RemoveLink(LinkId(**link_id)) + + # ----- Delete Devices and Validate Collected Events --------------------------------------------------------------- + for device, _, _ in DEVICES: + + device_id = device['device_id'] + device_uuid = device_id['device_uuid']['uuid'] + LOGGER.info('Deleting Device {:s}'.format(device_uuid)) + device_client.DeleteDevice(DeviceId(**device_id)) + #expected_events.append(('DeviceEvent', EVENT_REMOVE, json_device_id(device_uuid))) + + response = context_client.ListDevices(Empty()) + assert len(response.devices) == 0 + + + # ----- Delete Topologies and Validate Collected Events ------------------------------------------------------------ + for topology in TOPOLOGIES: + topology_id = topology['topology_id'] + context_uuid = topology_id['context_id']['context_uuid']['uuid'] + topology_uuid = topology_id['topology_uuid']['uuid'] + LOGGER.info('Deleting Topology {:s}/{:s}'.format(context_uuid, topology_uuid)) + context_client.RemoveTopology(TopologyId(**topology_id)) + context_id = json_context_id(context_uuid) + #expected_events.append(('TopologyEvent', EVENT_REMOVE, json_topology_id(topology_uuid, context_id=context_id))) + + # ----- Delete Contexts and Validate Collected Events -------------------------------------------------------------- + for context in CONTEXTS: + context_id = context['context_id'] + context_uuid = context_id['context_uuid']['uuid'] + LOGGER.info('Deleting Context {:s}'.format(context_uuid)) + context_client.RemoveContext(ContextId(**context_id)) + #expected_events.append(('ContextEvent', EVENT_REMOVE, json_context_id(context_uuid))) diff --git a/src/tests/p4/tests/test_functional_create_service.py b/src/tests/p4/tests/test_functional_create_service.py new file mode 100644 index 0000000000000000000000000000000000000000..96d16a29990b857f83ec946cbdee9ac3b88de717 --- /dev/null +++ b/src/tests/p4/tests/test_functional_create_service.py @@ -0,0 +1,93 @@ +# 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. + +import copy, logging, pytest +from common.Settings import get_setting +from common.tests.EventTools import EVENT_CREATE, EVENT_UPDATE, check_events +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.Service import json_service_id +from common.tools.object_factory.Link import json_link_id +from common.tools.object_factory.Topology import json_topology_id +from context.client.ContextClient import ContextClient +from context.client.EventsCollector import EventsCollector +from common.proto.context_pb2 import Context, ContextId, Device, Empty, Link, Topology, Service, ServiceId +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient +from tests.p4.tests.Objects import CONTEXT_ID, CONTEXTS, DEVICES, LINKS, TOPOLOGIES, SERVICES +from common.proto.context_pb2 import ConfigActionEnum, Device, DeviceId,\ + DeviceOperationalStatusEnum + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient(get_setting('CONTEXTSERVICE_SERVICE_HOST'), get_setting('CONTEXTSERVICE_SERVICE_PORT_GRPC')) + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient(get_setting('DEVICESERVICE_SERVICE_HOST'), get_setting('DEVICESERVICE_SERVICE_PORT_GRPC')) + yield _client + _client.close() + +@pytest.fixture(scope='session') +def service_client(): + _client = ServiceClient(get_setting('SERVICESERVICE_SERVICE_HOST'), get_setting('SERVICESERVICE_SERVICE_PORT_GRPC')) + yield _client + _client.close() + +def test_rules_entry( + context_client : ContextClient, device_client : DeviceClient, service_client : ServiceClient): # pylint: disable=redefined-outer-name + + + + for device, _, __ in DEVICES: + # Enable device + device_p4_with_operational_status = copy.deepcopy(device) + device_p4_with_operational_status['device_operational_status'] = \ + DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED + device_client.ConfigureDevice(Device(**device_p4_with_operational_status)) + + # ----- Create Services --------------------------------------------------------------- + for service, endpoints in SERVICES: + # Insert Service (table entries) + service_uuid = service['service_id']['service_uuid']['uuid'] + print('Creating Service {:s}'.format(service_uuid)) + service_p4 = copy.deepcopy(service) + service_client.CreateService(Service(**service_p4)) + service_p4['service_endpoint_ids'].extend(endpoints) + service_client.UpdateService(Service(**service_p4)) + + + +""" +con_cl = ContextClient(get_setting('CONTEXTSERVICE_SERVICE_HOST'), get_setting('CONTEXTSERVICE_SERVICE_PORT_GRPC')) +dev_cl = DeviceClient(get_setting('DEVICESERVICE_SERVICE_HOST'), get_setting('DEVICESERVICE_SERVICE_PORT_GRPC')) +srv_cl = ServiceClient(get_setting('SERVICESERVICE_SERVICE_HOST'), get_setting('SERVICESERVICE_SERVICE_PORT_GRPC')) + +for service, endpoints in SERVICES: + service_uuid = service['service_id']['service_uuid']['uuid'] + print('Creating Service {:s}'.format(service_uuid)) + service_p4 = copy.deepcopy(service) + srv_cl.CreateService(Service(**service_p4)) + #service_data = con_cl.GetService(ServiceId(**json_service_id('svc1'))) + #print('service_data = {:s}'.format(grpc_message_to_json_string(service_data))) + service_p4 = copy.deepcopy(service) + service_p4['service_endpoint_ids'].extend(endpoints) + srv_cl.UpdateService(Service(**service_p4)) +""" \ No newline at end of file diff --git a/src/tests/p4/tests/test_functional_delete_service.py b/src/tests/p4/tests/test_functional_delete_service.py new file mode 100644 index 0000000000000000000000000000000000000000..8630686c84259abd242c7b9c2ee65c45b61eb8d4 --- /dev/null +++ b/src/tests/p4/tests/test_functional_delete_service.py @@ -0,0 +1,69 @@ +# 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. + +import copy, logging, pytest +from common.Settings import get_setting +from common.tests.EventTools import EVENT_REMOVE, check_events +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.Service import json_service_id +from common.tools.object_factory.Link import json_link_id +from common.tools.object_factory.Topology import json_topology_id +from context.client.ContextClient import ContextClient +from context.client.EventsCollector import EventsCollector +from common.proto.context_pb2 import ConfigActionEnum, ContextId, Device, DeviceId, Empty, LinkId, TopologyId, Service, ServiceId, DeviceOperationalStatusEnum +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient +from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, LINKS, TOPOLOGIES, SERVICES + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient(get_setting('CONTEXTSERVICE_SERVICE_HOST'), get_setting('CONTEXTSERVICE_SERVICE_PORT_GRPC')) + yield _client + _client.close() + + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient(get_setting('DEVICESERVICE_SERVICE_HOST'), get_setting('DEVICESERVICE_SERVICE_PORT_GRPC')) + yield _client + _client.close() + +@pytest.fixture(scope='session') +def service_client(): + _client = ServiceClient(get_setting('SERVICESERVICE_SERVICE_HOST'), get_setting('SERVICESERVICE_SERVICE_PORT_GRPC')) + yield _client + _client.close() + +def test_rules_delete( + context_client : ContextClient, device_client : DeviceClient, service_client : ServiceClient): # pylint: disable=redefined-outer-name + + # ----- Create Services --------------------------------------------------------------- + for service, endpoints in SERVICES: + # Delete Service (table entries) + service_uuid = service['service_id']['service_uuid']['uuid'] + print('Deleting Service {:s}'.format(service_uuid)) + service_p4 = copy.deepcopy(service) + response = service_client.DeleteService(ServiceId(**json_service_id(service_uuid, CONTEXT_ID))) + + # ----- Disable Devices --------------------------------------------------------------- + for device, _, _ in DEVICES: + device_p4_with_operational_status = copy.deepcopy(device) + device_p4_with_operational_status['device_operational_status'] = \ + DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_DISABLED + device_client.ConfigureDevice(Device(**device_p4_with_operational_status))