Support existing VMs running on the newly added node

- Added openstack node state event
- Made openstack switching to listen to the node state events and
  add existing VMs running in the complete state node

Change-Id: I7b7186c3b889376a4bc0385313433604dcd93d70
diff --git a/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNode.java b/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNode.java
index 563dea7..4508bdd 100644
--- a/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNode.java
+++ b/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNode.java
@@ -19,6 +19,7 @@
 import com.google.common.base.Strings;
 import org.onlab.packet.IpAddress;
 import org.onosproject.net.DeviceId;
+import org.onosproject.openstacknode.OpenstackNodeEvent.NodeState;
 import org.onosproject.openstacknode.OpenstackNodeService.NodeType;
 
 import java.util.Comparator;
@@ -27,6 +28,7 @@
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
+import static org.onosproject.openstacknode.OpenstackNodeEvent.NodeState.INIT;
 
 /**
  * Representation of a compute/gateway node for OpenstackSwitching/Routing service.
@@ -39,7 +41,7 @@
     private final IpAddress dataIp;
     private final DeviceId integrationBridge;
     private final Optional<DeviceId> routerBridge;
-    private final OpenstackNodeState state;
+    private final NodeState state;
 
     public static final Comparator<OpenstackNode> OPENSTACK_NODE_COMPARATOR =
             (node1, node2) -> node1.hostname().compareTo(node2.hostname());
@@ -50,7 +52,7 @@
                           IpAddress dataIp,
                           DeviceId integrationBridge,
                           Optional<DeviceId> routerBridge,
-                          OpenstackNodeState state) {
+                          NodeState state) {
         this.hostname = hostname;
         this.type = type;
         this.managementIp = managementIp;
@@ -67,7 +69,7 @@
      * @param state openstack node init state
      * @return openstack node
      */
-    public static OpenstackNode getUpdatedNode(OpenstackNode node, OpenstackNodeState state) {
+    public static OpenstackNode getUpdatedNode(OpenstackNode node, NodeState state) {
         return new OpenstackNode(node.hostname,
                 node.type,
                 node.managementIp,
@@ -137,7 +139,7 @@
      *
      * @return init state
      */
-    public OpenstackNodeState state() {
+    public NodeState state() {
         return state;
     }
 
@@ -212,7 +214,7 @@
         private IpAddress dataIp;
         private DeviceId integrationBridge;
         private Optional<DeviceId> routerBridge = Optional.empty();
-        private OpenstackNodeState state = OpenstackNodeState.noState();
+        private NodeState state = INIT;
 
         private Builder() {
         }
@@ -305,7 +307,7 @@
          * @param state node init state
          * @return openstack node builder
          */
-        public Builder state(OpenstackNodeState state) {
+        public Builder state(NodeState state) {
             this.state = state;
             return this;
         }