[ONOS-7683] Initial implementation of openstack telemetry service
Change-Id: I621bed9cff108af194998b7a1e8269a9a6ffd32c
diff --git a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/impl/GrpcTelemetryManager.java b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/impl/GrpcTelemetryManager.java
index 20ded3e..8812cca 100644
--- a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/impl/GrpcTelemetryManager.java
+++ b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/impl/GrpcTelemetryManager.java
@@ -16,13 +16,14 @@
package org.onosproject.openstacktelemetry.impl;
import io.grpc.ManagedChannel;
-import io.grpc.ManagedChannelBuilder;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Service;
import org.onosproject.openstacktelemetry.api.GrpcTelemetryAdminService;
-import org.onosproject.openstacktelemetry.api.config.GrpcTelemetryConfig;
+import org.onosproject.openstacktelemetry.api.OpenstackTelemetryService;
import org.onosproject.openstacktelemetry.api.config.TelemetryConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,16 +37,25 @@
private final Logger log = LoggerFactory.getLogger(getClass());
+ @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+ protected OpenstackTelemetryService openstackTelemetryService;
+
private ManagedChannel channel = null;
@Activate
protected void activate() {
+
+ openstackTelemetryService.addTelemetryService(this);
+
log.info("Started");
}
@Deactivate
protected void deactivate() {
stop();
+
+ openstackTelemetryService.removeTelemetryService(this);
+
log.info("Stopped");
}
@@ -56,22 +66,24 @@
return;
}
- GrpcTelemetryConfig grpcConfig = (GrpcTelemetryConfig) config;
- channel = ManagedChannelBuilder
- .forAddress(grpcConfig.address(), grpcConfig.port())
- .maxInboundMessageSize(grpcConfig.maxInboundMsgSize())
- .usePlaintext(grpcConfig.usePlaintext())
- .build();
+ // FIXME do not activate grpc service for now due to deps conflict
+// GrpcTelemetryConfig grpcConfig = (GrpcTelemetryConfig) config;
+// channel = ManagedChannelBuilder
+// .forAddress(grpcConfig.address(), grpcConfig.port())
+// .maxInboundMessageSize(grpcConfig.maxInboundMsgSize())
+// .usePlaintext(grpcConfig.usePlaintext())
+// .build();
log.info("gRPC producer has Started");
}
@Override
public void stop() {
- if (channel != null) {
- channel.shutdown();
- channel = null;
- }
+ // FIXME do not activate grpc service for now due to deps conflict
+// if (channel != null) {
+// channel.shutdown();
+// channel = null;
+// }
log.info("gRPC producer has Stopped");
}
@@ -85,6 +97,16 @@
@Override
public Object publish(Object record) {
// TODO: need to find a way to invoke gRPC endpoint using channel
+
+ if (channel == null) {
+ log.warn("gRPC telemetry service has not been enabled!");
+ }
+
return null;
}
+
+ @Override
+ public boolean isRunning() {
+ return channel != null;
+ }
}