Add node IP attribute in k8s node class with minor code refactoring

Change-Id: I4c1c86c95acfeb38569b91c1677e4ce8af90460f
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 2a938e0..4f4e6bf 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
@@ -48,6 +48,7 @@
     private static final String SEGMENT_ID = "segmentId";
     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 INTEGRATION_BRIDGE = "integrationBridge";
     private static final String EXTERNAL_BRIDGE = "externalBridge";
     private static final String LOCAL_BRIDGE = "localBridge";
@@ -71,7 +72,8 @@
                 .put(MODE, node.mode().name())
                 .put(SEGMENT_ID, node.segmentId())
                 .put(STATE, node.state().name())
-                .put(MANAGEMENT_IP, node.managementIp().toString());
+                .put(MANAGEMENT_IP, node.managementIp().toString())
+                .put(NODE_IP, node.nodeIp().toString());
 
         if (node.intgBridge() != null) {
             result.put(INTEGRATION_BRIDGE, node.intgBridge().toString());
@@ -130,13 +132,16 @@
                 TYPE + MISSING_MESSAGE);
         String mIp = nullIsIllegal(json.get(MANAGEMENT_IP).asText(),
                 MANAGEMENT_IP + MISSING_MESSAGE);
+        String nIp = nullIsIllegal(json.get(NODE_IP).asText(),
+                NODE_IP + MISSING_MESSAGE);
 
         DefaultK8sNode.Builder nodeBuilder = DefaultK8sNode.builder()
                 .clusterName(clusterName)
                 .hostname(hostname)
                 .type(K8sNode.Type.valueOf(type))
                 .state(K8sNodeState.INIT)
-                .managementIp(IpAddress.valueOf(mIp));
+                .managementIp(IpAddress.valueOf(mIp))
+                .nodeIp(IpAddress.valueOf(nIp));
 
         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 bf81f85a..30606f0 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
@@ -203,6 +203,7 @@
         String hostname = node.getMetadata().getName();
         IpAddress managementIp = null;
         IpAddress dataIp = null;
+        IpAddress nodeIp = null;
 
         // pass-through mode: we use host IP as the management and data IP
         // normal mode: we use K8S node's internal IP as the management and data IP
@@ -215,11 +216,17 @@
                 managementIp = info.hostIp();
                 dataIp = info.hostIp();
             }
+            for (NodeAddress nodeAddress:node.getStatus().getAddresses()) {
+                if (nodeAddress.getType().equals(INTERNAL_IP)) {
+                    nodeIp = IpAddress.valueOf(nodeAddress.getAddress());
+                }
+            }
         } else {
             for (NodeAddress nodeAddress:node.getStatus().getAddresses()) {
                 if (nodeAddress.getType().equals(INTERNAL_IP)) {
                     managementIp = IpAddress.valueOf(nodeAddress.getAddress());
                     dataIp = IpAddress.valueOf(nodeAddress.getAddress());
+                    nodeIp = IpAddress.valueOf(nodeAddress.getAddress());
                 }
             }
         }
@@ -267,6 +274,7 @@
                 .hostname(hostname)
                 .managementIp(managementIp)
                 .dataIp(dataIp)
+                .nodeIp(nodeIp)
                 .extIntf(extIntf)
                 .type(nodeType)
                 .segmentId(config.segmentId())