Add a simple health check logic for the kubevirt-node app

Change-Id: If87474c40785d4b9284eab8833f7a9c162286c46
diff --git a/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/web/KubevirtNodeWebResource.java b/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/web/KubevirtNodeWebResource.java
index b18f42d..06b06e8 100644
--- a/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/web/KubevirtNodeWebResource.java
+++ b/apps/kubevirt-node/app/src/main/java/org/onosproject/kubevirtnode/web/KubevirtNodeWebResource.java
@@ -19,6 +19,8 @@
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.collect.Sets;
+import org.onosproject.kubevirtnode.api.KubevirtApiConfig;
+import org.onosproject.kubevirtnode.api.KubevirtApiConfigService;
 import org.onosproject.kubevirtnode.api.KubevirtNode;
 import org.onosproject.kubevirtnode.api.KubevirtNodeAdminService;
 import org.onosproject.kubevirtnode.api.KubevirtNodeState;
@@ -68,6 +70,9 @@
     private static final String QUERY = "QUERY";
     private static final String NOT_EXIST = "Not exist";
     private static final String STATE = "State";
+    private static final String API_CONFIG = "apiConfig";
+    private static final String OK = "ok";
+    private static final String ERROR = "error";
     private static final String RESULT = "Result";
 
     private static final long SLEEP_MS = 5000; // we wait 5s for init each node
@@ -268,6 +273,25 @@
         return ok(mapper().createObjectNode()).build();
     }
 
+    /**
+     * Returns the health check result.
+     *
+     * @return 200 OK with health check result, 404 not found
+     */
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("healthz")
+    public Response healthz() {
+        KubevirtApiConfigService configService = get(KubevirtApiConfigService.class);
+        KubevirtApiConfig config = configService.apiConfig();
+
+        // TODO: we need to add more health check items
+        ObjectNode jsonResult = mapper().createObjectNode();
+        String result = config != null ? OK : ERROR;
+        jsonResult.put(API_CONFIG, result);
+        return ok(jsonResult).build();
+    }
+
     private void syncRulesBase(KubevirtNode node) {
         KubevirtNode updated = node.updateState(INIT);
         KubevirtNodeAdminService service = get(KubevirtNodeAdminService.class);