ONOS-6742 Refactored OpenstackNode

- Removed gateway node uplink interface configuration steps
- Added checking group states
- Refactored interface, store, manager and handler

Change-Id: I9149edbec6481b15377848c8f24bdc5c6c73adc4
diff --git a/apps/openstacknode/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeListCommand.java b/apps/openstacknode/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeListCommand.java
index 65a77e6..ceed2a7 100644
--- a/apps/openstacknode/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeListCommand.java
+++ b/apps/openstacknode/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeListCommand.java
@@ -19,11 +19,13 @@
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.google.common.collect.Lists;
 import org.apache.karaf.shell.commands.Command;
 import org.onosproject.cli.AbstractShellCommand;
-import org.onosproject.openstacknode.OpenstackNode;
-import org.onosproject.openstacknode.OpenstackNodeService;
+import org.onosproject.openstacknode.api.OpenstackNode;
+import org.onosproject.openstacknode.api.OpenstackNodeService;
 
+import java.util.Comparator;
 import java.util.List;
 
 /**
@@ -37,43 +39,45 @@
 
     @Override
     protected void execute() {
-        OpenstackNodeService nodeService = AbstractShellCommand.get(OpenstackNodeService.class);
-        List<OpenstackNode> nodes = nodeService.nodes();
-        nodes.sort(OpenstackNode.OPENSTACK_NODE_COMPARATOR);
+        OpenstackNodeService osNodeService = AbstractShellCommand.get(OpenstackNodeService.class);
+        List<OpenstackNode> osNodes = Lists.newArrayList(osNodeService.nodes());
+        osNodes.sort(Comparator.comparing(OpenstackNode::hostname));
 
         if (outputJson()) {
-            print("%s", json(nodes));
+            print("%s", json(osNodes));
         } else {
             print(FORMAT, "Hostname", "Type", "Integration Bridge", "Router Bridge",
                     "Management IP", "Data IP", "VLAN Intf", "State");
-            for (OpenstackNode node : nodes) {
+            for (OpenstackNode osNode : osNodes) {
                 print(FORMAT,
-                        node.hostname(),
-                        node.type(),
-                        node.intBridge(),
-                        node.routerBridge().isPresent() ? node.routerBridge().get() : "",
-                        node.managementIp(),
-                        node.dataIp().isPresent() ? node.dataIp().get() : "",
-                        node.vlanPort().isPresent() ? node.vlanPort().get() : "",
-                        node.state());
+                        osNode.hostname(),
+                        osNode.type(),
+                        osNode.intgBridge(),
+                        osNode.routerBridge() != null ? osNode.routerBridge() : "",
+                        osNode.managementIp(),
+                        osNode.dataIp() != null ? osNode.dataIp() : "",
+                        osNode.vlanIntf() != null ? osNode.vlanIntf() : "",
+                        osNode.state());
             }
-            print("Total %s nodes", nodeService.nodes().size());
+            print("Total %s nodes", osNodeService.nodes().size());
         }
     }
 
-    private JsonNode json(List<OpenstackNode> nodes) {
+    private JsonNode json(List<OpenstackNode> osNodes) {
         ObjectMapper mapper = new ObjectMapper();
         ArrayNode result = mapper.createArrayNode();
-        for (OpenstackNode node : nodes) {
+        for (OpenstackNode osNode : osNodes) {
             result.add(mapper.createObjectNode()
-                    .put("hostname", node.hostname())
-                    .put("type", node.type().name())
-                    .put("intBridge", node.intBridge().toString())
-                    .put("routerBridge", node.routerBridge().toString())
-                    .put("managementIp", node.managementIp().toString())
-                    .put("dataIp", node.dataIp().toString())
-                    .put("vlanPort", node.vlanPort().toString())
-                    .put("state", node.state().name()));
+                    .put("hostname", osNode.hostname())
+                    .put("type", osNode.type().name())
+                    .put("integrationBridge", osNode.intgBridge().toString())
+                    .put("routerBridge", osNode.routerBridge().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("state", osNode.state().name()));
         }
         return result;
     }