Support NodePort communication model at k8s passthrough mode
Change-Id: I2179ebc9a4812493619c56aa270d8fc4821efbb2
diff --git a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/codec/K8sNodeCodec.java b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/codec/K8sNodeCodec.java
index 4f4e6bf..6e00655 100644
--- a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/codec/K8sNodeCodec.java
+++ b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/codec/K8sNodeCodec.java
@@ -24,6 +24,7 @@
import org.onosproject.codec.JsonCodec;
import org.onosproject.k8snode.api.DefaultK8sNode;
import org.onosproject.k8snode.api.K8sNode;
+import org.onosproject.k8snode.api.K8sNodeInfo;
import org.onosproject.k8snode.api.K8sNodeState;
import org.onosproject.net.DeviceId;
import org.slf4j.Logger;
@@ -49,6 +50,7 @@
private static final String MANAGEMENT_IP = "managementIp";
private static final String DATA_IP = "dataIp";
private static final String NODE_IP = "nodeIp";
+ private static final String NODE_MAC = "nodeMac";
private static final String INTEGRATION_BRIDGE = "integrationBridge";
private static final String EXTERNAL_BRIDGE = "externalBridge";
private static final String LOCAL_BRIDGE = "localBridge";
@@ -95,6 +97,10 @@
result.put(DATA_IP, node.dataIp().toString());
}
+ if (node.nodeMac() != null) {
+ result.put(NODE_MAC, node.nodeMac().toString());
+ }
+
if (node.extIntf() != null) {
result.put(EXTERNAL_INTF, node.extIntf());
}
@@ -135,13 +141,15 @@
String nIp = nullIsIllegal(json.get(NODE_IP).asText(),
NODE_IP + MISSING_MESSAGE);
+ K8sNodeInfo nodeInfo = new K8sNodeInfo(IpAddress.valueOf(nIp), null);
+
DefaultK8sNode.Builder nodeBuilder = DefaultK8sNode.builder()
.clusterName(clusterName)
.hostname(hostname)
.type(K8sNode.Type.valueOf(type))
.state(K8sNodeState.INIT)
.managementIp(IpAddress.valueOf(mIp))
- .nodeIp(IpAddress.valueOf(nIp));
+ .nodeInfo(nodeInfo);
if (json.get(DATA_IP) != null) {
nodeBuilder.dataIp(IpAddress.valueOf(json.get(DATA_IP).asText()));
diff --git a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DefaultK8sApiConfigHandler.java b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DefaultK8sApiConfigHandler.java
index 30606f0..c688740 100644
--- a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DefaultK8sApiConfigHandler.java
+++ b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DefaultK8sApiConfigHandler.java
@@ -39,6 +39,7 @@
import org.onosproject.k8snode.api.K8sHostState;
import org.onosproject.k8snode.api.K8sNode;
import org.onosproject.k8snode.api.K8sNodeAdminService;
+import org.onosproject.k8snode.api.K8sNodeInfo;
import org.onosproject.k8snode.api.K8sRouterBridge;
import org.onosproject.k8snode.api.K8sTunnelBridge;
import org.osgi.service.component.annotations.Activate;
@@ -274,7 +275,7 @@
.hostname(hostname)
.managementIp(managementIp)
.dataIp(dataIp)
- .nodeIp(nodeIp)
+ .nodeInfo(new K8sNodeInfo(nodeIp, null))
.extIntf(extIntf)
.type(nodeType)
.segmentId(config.segmentId())
diff --git a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DistributedK8sNodeStore.java b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DistributedK8sNodeStore.java
index 8d3e926..90ec2a0 100644
--- a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DistributedK8sNodeStore.java
+++ b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DistributedK8sNodeStore.java
@@ -25,6 +25,7 @@
import org.onosproject.k8snode.api.K8sExternalNetwork;
import org.onosproject.k8snode.api.K8sNode;
import org.onosproject.k8snode.api.K8sNodeEvent;
+import org.onosproject.k8snode.api.K8sNodeInfo;
import org.onosproject.k8snode.api.K8sNodeState;
import org.onosproject.k8snode.api.K8sNodeStore;
import org.onosproject.k8snode.api.K8sNodeStoreDelegate;
@@ -79,6 +80,7 @@
.register(K8sNode.class)
.register(DefaultK8sNode.class)
.register(K8sNode.Type.class)
+ .register(K8sNodeInfo.class)
.register(K8sNodeState.class)
.register(K8sApiConfig.Mode.class)
.register(K8sExternalNetwork.class)