Remove bridges and associated flow rules when removing k8s nodes
Change-Id: Iab54503a4bb75874f69e8e1623bb11c66cad9eee
(cherry picked from commit dc1df642f320123f8b31d6f2a62e7ac6498c87d0)
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sHostService.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sHostService.java
index cf7b77f..57c2598 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sHostService.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sHostService.java
@@ -65,4 +65,12 @@
* @return kubernetes host
*/
K8sHost hostByTunBridge(DeviceId deviceId);
+
+ /**
+ * Returns the host with the specified router bridge device ID.
+ *
+ * @param deviceId router bridge's device ID
+ * @return kubernetes host
+ */
+ K8sHost hostByRouterBridge(DeviceId deviceId);
}
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeEvent.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeEvent.java
index e9209184..efa1d2f 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeEvent.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeEvent.java
@@ -50,7 +50,12 @@
/**
* Signifies that the node state is incomplete.
*/
- K8S_NODE_INCOMPLETE
+ K8S_NODE_INCOMPLETE,
+
+ /**
+ * Signifies that the node state is off-boarded.
+ */
+ K8S_NODE_OFF_BOARDED
}
/**
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeHandler.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeHandler.java
index 0ef7302..3ad369f 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeHandler.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeHandler.java
@@ -75,4 +75,11 @@
* @param k8sNode kubernetes node
*/
void processPostOnBoardState(K8sNode k8sNode);
+
+ /**
+ * Processes the given node for off boarded state.
+ *
+ * @param k8sNode kubernetes node
+ */
+ void processOffBoardedState(K8sNode k8sNode);
}
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeState.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeState.java
index 3311ac6..9cc68e2 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeState.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNodeState.java
@@ -117,6 +117,20 @@
public K8sNodeState nextState() {
return INIT;
}
+ },
+ /**
+ * Indicates node is removed.
+ */
+ OFF_BOARDED {
+ @Override
+ public void process(K8sNodeHandler handler, K8sNode node) {
+ handler.processOffBoardedState(node);
+ }
+
+ @Override
+ public K8sNodeState nextState() {
+ return OFF_BOARDED;
+ }
};
/**