Support openstack controller node status check feature
Change-Id: I285b977ae32dd6d140aca7f25b00962db77b1054
diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DistributedOpenstackNodeStore.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DistributedOpenstackNodeStore.java
index be49135..4b40775 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DistributedOpenstackNodeStore.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DistributedOpenstackNodeStore.java
@@ -166,23 +166,6 @@
@Override
public void event(MapEvent<String, OpenstackNode> event) {
- OpenstackNode node;
-
- if (event.type() == INSERT || event.type() == UPDATE) {
- node = event.newValue().value();
- } else {
- node = event.oldValue().value();
- }
-
- // we do not notify the controller node related event
- // controller node event should be handled in different way
- if (node.type() == CONTROLLER) {
- // TODO: need to find a way to check the controller node availability
- log.info("node {} is detected", node.hostname());
-
- return;
- }
-
switch (event.type()) {
case INSERT:
log.debug("OpenStack node created {}", event.newValue());
@@ -198,6 +181,13 @@
OPENSTACK_NODE_UPDATED,
event.newValue().value()
));
+
+ // if the event is about controller node, we will not
+ // process COMPLETE and INCOMPLETE state
+ if (isControllerNode(event)) {
+ return;
+ }
+
if (event.newValue().value().state() == COMPLETE) {
notifyDelegate(new OpenstackNodeEvent(
OPENSTACK_NODE_COMPLETE,
@@ -223,5 +213,25 @@
break;
}
}
+
+ /**
+ * Checks the openstack node whether a controller node or not with
+ * the given MapEvent.
+ *
+ * @param event map event
+ * @return controller node indicator flag
+ */
+ private boolean isControllerNode(MapEvent<String, OpenstackNode> event) {
+
+ OpenstackNode node;
+
+ if (event.type() == INSERT || event.type() == UPDATE) {
+ node = event.newValue().value();
+ } else {
+ node = event.oldValue().value();
+ }
+
+ return node.type() == CONTROLLER;
+ }
}
}