diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeListCommand.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeListCommand.java
index 4d5d900..937ce3d 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeListCommand.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeListCommand.java
@@ -67,17 +67,7 @@
         ObjectMapper mapper = new ObjectMapper();
         ArrayNode result = mapper.createArrayNode();
         for (OpenstackNode osNode : osNodes) {
-            result.add(mapper.createObjectNode()
-                    .put("hostname", osNode.hostname())
-                    .put("type", osNode.type().name())
-                    .put("integrationBridge", osNode.intgBridge().toString())
-                    .put("managementIp", osNode.managementIp().toString())
-                    .put("dataIp", osNode.dataIp().toString())
-                    .put("vlanIntf", osNode.vlanIntf())
-                    .put("tunnelPortNum", osNode.tunnelPortNum().toString())
-                    .put("vlanPortNum", osNode.vlanPortNum().toString())
-                    .put("uplinkPort", osNode.uplinkPort())
-                    .put("state", osNode.state().name()));
+            result.add(jsonForEntity(osNode, OpenstackNode.class));
         }
         return result;
     }
diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/codec/OpenstackNodeCodec.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/codec/OpenstackNodeCodec.java
index 9341725..f488429 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/codec/OpenstackNodeCodec.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/codec/OpenstackNodeCodec.java
@@ -44,6 +44,9 @@
 
     private static final String TYPE = "type";
     private static final String INTEGRATION_BRIDGE = "integrationBridge";
+    private static final String TUNNEL_PORT_NUM = "tunnelPortNum";
+    private static final String VLAN_PORT_NUM = "vlanPortNum";
+    private static final String STATE = "state";
 
     private static final String MISSING_MESSAGE = " is required in OpenstackNode";
 
@@ -55,7 +58,8 @@
                 .put(HOST_NAME, node.hostname())
                 .put(TYPE, node.type().name())
                 .put(MANAGEMENT_IP, node.managementIp().toString())
-                .put(INTEGRATION_BRIDGE, node.intgBridge().toString());
+                .put(INTEGRATION_BRIDGE, node.intgBridge().toString())
+                .put(STATE, node.state().name());
 
         OpenstackNode.NodeType type = node.type();
 
@@ -71,6 +75,14 @@
             result.put(DATA_IP, node.dataIp().toString());
         }
 
+        if (node.tunnelPortNum() != null) {
+            result.put(TUNNEL_PORT_NUM, node.tunnelPortNum().toString());
+        }
+
+        if (node.vlanPortNum() != null) {
+            result.put(VLAN_PORT_NUM, node.vlanPortNum().toString());
+        }
+
         return result;
     }
 
