Refactor: move telemetry config from componentCfg to configs.xml
1. Support to export the metrics to multiple targets
2. Add a set of properties to kafka config (key, topic, etc.)
3. Add distributedStore to manage telemetry configs
4. Add CLI to query stored telemetry configs
5. Add a set of telemetry loaders to import xml definitions
6. Add unit tests for telemetry cfg, xml cfg loader and dist store
7. Add missing javadoc for a set of implementation classes
Change-Id: I39480c9a6ac07357184d2e1094b9c9f4d36fd8b1
diff --git a/apps/openstacktelemetry/app/src/test/java/org/onosproject/openstacktelemetry/config/DefaultGrpcTelemetryConfigTest.java b/apps/openstacktelemetry/app/src/test/java/org/onosproject/openstacktelemetry/config/DefaultGrpcTelemetryConfigTest.java
index 1a7f752..c56247f 100644
--- a/apps/openstacktelemetry/app/src/test/java/org/onosproject/openstacktelemetry/config/DefaultGrpcTelemetryConfigTest.java
+++ b/apps/openstacktelemetry/app/src/test/java/org/onosproject/openstacktelemetry/config/DefaultGrpcTelemetryConfigTest.java
@@ -15,17 +15,27 @@
*/
package org.onosproject.openstacktelemetry.config;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
import com.google.common.testing.EqualsTester;
import org.junit.Before;
import org.junit.Test;
import org.onosproject.openstacktelemetry.api.config.GrpcTelemetryConfig;
+import org.onosproject.openstacktelemetry.api.config.TelemetryConfig;
+import org.onosproject.openstacktelemetry.impl.DefaultTelemetryConfig;
import java.util.Map;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
+import static org.onosproject.openstacktelemetry.api.config.TelemetryConfig.ConfigType.GRPC;
+import static org.onosproject.openstacktelemetry.config.DefaultGrpcTelemetryConfig.ADDRESS;
+import static org.onosproject.openstacktelemetry.config.DefaultGrpcTelemetryConfig.MAX_INBOUND_MSG_SIZE;
+import static org.onosproject.openstacktelemetry.config.DefaultGrpcTelemetryConfig.PORT;
+import static org.onosproject.openstacktelemetry.config.DefaultGrpcTelemetryConfig.USE_PLAINTEXT;
+import static org.onosproject.openstacktelemetry.config.DefaultGrpcTelemetryConfig.fromTelemetryConfig;
/**
* Unit tests for DefaultGrpcTelemetryConfig class.
@@ -45,9 +55,11 @@
private static final boolean USE_PLAIN_TEXT_2 = true;
private static final Map<String, Object> CONFIG_MAP_1 =
- ImmutableMap.of("key1", "value1");
+ ImmutableMap.of("key1", "value1");
private static final Map<String, Object> CONFIG_MAP_2 =
- ImmutableMap.of("key2", "value2");
+ ImmutableMap.of("key2", "value2");
+
+ private static final String DUMMY = "dummy";
private GrpcTelemetryConfig config1;
private GrpcTelemetryConfig sameAsConfig1;
@@ -122,4 +134,24 @@
assertThat(config.usePlaintext(), is(USE_PLAIN_TEXT_1));
assertThat(config.configMap(), is(CONFIG_MAP_1));
}
-}
+
+ /**
+ * Tests props extraction.
+ */
+ @Test
+ public void testPropsExtraction() {
+ Map<String, String> props = Maps.newConcurrentMap();
+ props.put(ADDRESS, IP_ADDRESS_1);
+ props.put(PORT, String.valueOf(PORT_1));
+ props.put(MAX_INBOUND_MSG_SIZE, String.valueOf(MSG_SIZE_1));
+ props.put(USE_PLAINTEXT, String.valueOf(USE_PLAIN_TEXT_1));
+ TelemetryConfig config = new DefaultTelemetryConfig(DUMMY, GRPC,
+ ImmutableList.of(), DUMMY, DUMMY, false, props);
+
+ GrpcTelemetryConfig grpcConfig = fromTelemetryConfig(config);
+ assertThat(grpcConfig.address(), is(IP_ADDRESS_1));
+ assertThat(grpcConfig.port(), is(PORT_1));
+ assertThat(grpcConfig.maxInboundMsgSize(), is(MSG_SIZE_1));
+ assertThat(grpcConfig.usePlaintext(), is(USE_PLAIN_TEXT_1));
+ }
+}
\ No newline at end of file