Support injecting novaMetadataIp and novaMetadataPort through cfg
Change-Id: Ida449424235b70a791e8ed1d423f021f6d6726f7
diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/codec/NeutronConfigCodec.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/codec/NeutronConfigCodec.java
index 5acf180..48ca3ac 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/codec/NeutronConfigCodec.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/codec/NeutronConfigCodec.java
@@ -16,11 +16,12 @@
package org.onosproject.openstacknode.codec;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.onosproject.codec.CodecContext;
import org.onosproject.codec.JsonCodec;
-import org.onosproject.openstacknode.api.NeutronConfig;
import org.onosproject.openstacknode.api.DefaultNeutronConfig;
+import org.onosproject.openstacknode.api.NeutronConfig;
import static org.onlab.util.Tools.nullIsIllegal;
@@ -31,14 +32,26 @@
private static final String USE_METADATA_PROXY = "useMetadataProxy";
private static final String METADATA_PROXY_SECRET = "metadataProxySecret";
+ private static final String NOVA_METADATA_IP = "novaMetadataIp";
+ private static final String NOVA_METADATA_PORT = "novaMetadataPort";
- private static final String MISSING_MESSAGE = " is required in OpenstackNode";
+ private static final String MISSING_MESSAGE = " is required in NeutronConfig";
@Override
public ObjectNode encode(NeutronConfig entity, CodecContext context) {
- return context.mapper().createObjectNode()
- .put(USE_METADATA_PROXY, entity.useMetadataProxy())
+ ObjectNode node = context.mapper().createObjectNode();
+ node.put(USE_METADATA_PROXY, entity.useMetadataProxy())
.put(METADATA_PROXY_SECRET, entity.metadataProxySecret());
+
+ if (entity.novaMetadataIp() != null) {
+ node.put(NOVA_METADATA_IP, entity.novaMetadataIp());
+ }
+
+ if (entity.novaMetadataPort() != null) {
+ node.put(NOVA_METADATA_PORT, entity.novaMetadataPort());
+ }
+
+ return node;
}
@Override
@@ -53,9 +66,22 @@
String metadataProxySecret = nullIsIllegal(json.get(METADATA_PROXY_SECRET).asText(),
METADATA_PROXY_SECRET + MISSING_MESSAGE);
- return DefaultNeutronConfig.builder()
+ NeutronConfig.Builder builder = DefaultNeutronConfig.builder()
.useMetadataProxy(useMetadataProxy)
- .metadataProxySecret(metadataProxySecret)
- .build();
+ .metadataProxySecret(metadataProxySecret);
+
+ JsonNode novaMetadataIp = json.get(NOVA_METADATA_IP);
+
+ if (novaMetadataIp != null) {
+ builder.novaMetadataIp(novaMetadataIp.asText());
+ }
+
+ JsonNode novaMetadataPort = json.get(NOVA_METADATA_PORT);
+
+ if (novaMetadataPort != null) {
+ builder.novaMetadataPort(novaMetadataPort.asInt());
+ }
+
+ return builder.build();
}
}