Fixed gateway nodes are stuck in PORT_CREATED state

We don't need to double check group state when handling GROUP_ADDED or
GROUP_UPDATED event, which results in race when multiple gateway nodes
exist.

Change-Id: I8c2cff7ab56f7739e05c99ce2c535615661bdc04
diff --git a/apps/openstacknode/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java b/apps/openstacknode/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java
index 9c06445..d3597ee 100644
--- a/apps/openstacknode/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java
+++ b/apps/openstacknode/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java
@@ -538,8 +538,7 @@
                     .setOutput(cNode.tunnelPortNum())
                     .build();
             GroupBucket bucket = createSelectGroupBucket(treatment);
-            if (osGroup == null || osGroup.state() != Group.GroupState.ADDED ||
-                    !osGroup.buckets().buckets().contains(bucket)) {
+            if (osGroup == null || !osGroup.buckets().buckets().contains(bucket)) {
                 return false;
             }
         }
@@ -551,8 +550,7 @@
                     .setOutput(cNode.vlanPortNum())
                     .build();
             GroupBucket bucket = createSelectGroupBucket(treatment);
-            if (osGroup == null || osGroup.state() != Group.GroupState.ADDED ||
-                    !osGroup.buckets().buckets().contains(bucket)) {
+            if (osGroup == null || !osGroup.buckets().buckets().contains(bucket)) {
                 return false;
             }
         }
@@ -763,11 +761,12 @@
         }
 
         private void processGroup(Group group) {
-            OpenstackNode osNode = osNodeService.nodes().stream()
-                    .filter(n -> n.gatewayGroupId(VXLAN).equals(group.id()) ||
-                            n.gatewayGroupId(VLAN).equals(group.id()))
+            OpenstackNode osNode = osNodeService.nodes(COMPUTE).stream()
+                    .filter(n -> n.state() == PORT_CREATED &&
+                            (n.gatewayGroupId(VXLAN).equals(group.id()) ||
+                            n.gatewayGroupId(VLAN).equals(group.id())))
                     .findAny().orElse(null);
-            if (osNode != null && osNode.state() == PORT_CREATED) {
+            if (osNode != null) {
                 bootstrapNode(osNode);
             }
             osNodeService.nodes(GATEWAY).stream()