Connects to all the physical bridges in Kubevirt Node app to deal with the case that the physical port is disabled.
Change-Id: I9706cd4b670fbbb7ffdaaa2924fb893c801b2253
diff --git a/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/codec/KubevirtPhyInterfaceCodec.java b/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/codec/KubevirtPhyInterfaceCodec.java
index 3ba0164..796a1b1 100644
--- a/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/codec/KubevirtPhyInterfaceCodec.java
+++ b/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/codec/KubevirtPhyInterfaceCodec.java
@@ -15,11 +15,13 @@
*/
package org.onosproject.kubevirtnode.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.kubevirtnode.api.DefaultKubevirtPhyInterface;
import org.onosproject.kubevirtnode.api.KubevirtPhyInterface;
+import org.onosproject.net.DeviceId;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.onlab.util.Tools.nullIsIllegal;
@@ -31,6 +33,7 @@
private static final String NETWORK = "network";
private static final String INTERFACE = "intf";
+ private static final String PHYS_BRIDGE_ID = "physBridgeId";
private static final String MISSING_MESSAGE = " is required in KubevirtPhyInterface";
@@ -38,9 +41,15 @@
public ObjectNode encode(KubevirtPhyInterface phyIntf, CodecContext context) {
checkNotNull(phyIntf, "Kubevirt physical interface cannot be null");
- return context.mapper().createObjectNode()
+ ObjectNode result = context.mapper().createObjectNode()
.put(NETWORK, phyIntf.network())
.put(INTERFACE, phyIntf.intf());
+
+ if (phyIntf.physBridge() != null) {
+ result.put(PHYS_BRIDGE_ID, phyIntf.physBridge().toString());
+ }
+
+ return result;
}
@Override
@@ -54,9 +63,15 @@
String intf = nullIsIllegal(json.get(INTERFACE).asText(),
INTERFACE + MISSING_MESSAGE);
- return DefaultKubevirtPhyInterface.builder()
+ KubevirtPhyInterface.Builder builder = DefaultKubevirtPhyInterface.builder()
.network(network)
- .intf(intf)
- .build();
+ .intf(intf);
+
+ JsonNode physBridgeJson = json.get(PHYS_BRIDGE_ID);
+ if (physBridgeJson != null) {
+ builder.physBridge(DeviceId.deviceId(physBridgeJson.asText()));
+ }
+
+ return builder.build();
}
}