Commits (2)
......@@ -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
......
......@@ -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:
......
......@@ -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)
......
......@@ -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,
......
......@@ -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);
......
......@@ -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) {
......
......@@ -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);
}
......
......@@ -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;
......
# Add here your files containing confidential testbed details such as IP addresses, ports, usernames, passwords, etc.
descriptors_real.json
# 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
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
};
}
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
};
}
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
};
}
# 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.
#!/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
#!/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
# Add here your files containing confidential testbed details such as IP addresses, ports, usernames, passwords, etc.
Credentials.py
# 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)