Support onboard kubernetes nodes through K8S API configuration
Change-Id: I060a443f45ef9c974d030415a30e9376fc82d124
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 e3f371a..71c3914 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
@@ -30,7 +30,7 @@
/**
* Processes the given node for device created state.
- * It creates required ports on the bridges based on the node type
+ * It creates required ports on the bridges based on the node type.
*
* @param k8sNode kubernetes node
*/
@@ -50,4 +50,20 @@
* @param k8sNode kubernetes node
*/
void processIncompleteState(K8sNode k8sNode);
+
+ /**
+ * Processes the given node for pre-on-board state.
+ * It creates required bridges on OVS by referring to node type.
+ * It creates required ports on the bridges based on the node type.
+ *
+ * @param k8sNode kubernetes node
+ */
+ void processPreOnBoardState(K8sNode k8sNode);
+
+ /**
+ * Processes the given node for on boarded state.
+ *
+ * @param k8sNode kubernetes node
+ */
+ void processOnBoardedState(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 88c66c5..2cdbe94 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
@@ -21,6 +21,34 @@
public enum K8sNodeState {
/**
+ * Indicates the node is in pre-on-board.
+ */
+ PRE_ON_BOARD {
+ @Override
+ public void process(K8sNodeHandler handler, K8sNode node) {
+ handler.processPreOnBoardState(node);
+ }
+
+ @Override
+ public K8sNodeState nextState() {
+ return ON_BOARDED;
+ }
+ },
+ /**
+ * Indicates the node is on-boarded.
+ */
+ ON_BOARDED {
+ @Override
+ public void process(K8sNodeHandler handler, K8sNode node) {
+ handler.processOnBoardedState(node);
+ }
+
+ @Override
+ public K8sNodeState nextState() {
+ return ON_BOARDED;
+ }
+ },
+ /**
* Indicates the node is newly added.
*/
INIT {