diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeCheckCommand.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeCheckCommand.java
index ccaff29..057f29e 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeCheckCommand.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/cli/OpenstackNodeCheckCommand.java
@@ -86,7 +86,12 @@
         } else {
             print("[Integration Bridge Status]");
             Device device = deviceService.getDevice(osNode.intgBridge());
+            Device ovsdbDevice = deviceService.getDevice(osNode.ovsdb());
             if (device != null) {
+                print("%s OvsdbDeviceId=%s available=%s",
+                        deviceService.isAvailable(ovsdbDevice.id()) ? MSG_OK : MSG_ERROR,
+                        ovsdbDevice.id(),
+                        deviceService.isAvailable(ovsdbDevice.id()));
                 print("%s %s=%s available=%s %s",
                         deviceService.isAvailable(device.id()) ? MSG_OK : MSG_ERROR,
                         INTEGRATION_BRIDGE,
diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/web/OpenstackNodeWebResource.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/web/OpenstackNodeWebResource.java
index c64cab7..673a46e 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/web/OpenstackNodeWebResource.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/web/OpenstackNodeWebResource.java
@@ -65,11 +65,13 @@
     private static final String DELETE = "DELETE";
     private static final String QUERY = "QUERY";
     private static final String INIT = "INIT";
+    private static final String NOT_EXIST = "Not exist";
+    private static final String STATE = "State";
 
     private static final String HOST_NAME = "hostname";
     private static final String ERROR_MESSAGE = " cannot be null";
 
-    private final ObjectNode root = mapper().createObjectNode();
+    private final ObjectNode  root = mapper().createObjectNode();
     private final ArrayNode osJsonNodes = root.putArray("nodes");
 
     private final OpenstackNodeAdminService osNodeAdminService =
@@ -184,6 +186,24 @@
     }
 
     /**
+     * Obtains the state of the openstack node.
+     *
+     * @param hostname hostname of the openstack
+     * @return the state of the openstack node in Json
+     */
+    @GET
+    @Produces(MediaType.APPLICATION_JSON)
+    @Path("state/{hostname}")
+    public Response stateOfNode(@PathParam("hostname") String hostname) {
+        log.trace(String.format(MESSAGE_NODE, QUERY));
+
+        OpenstackNode osNode = osNodeService.node(hostname);
+        String nodeState = osNode != null ? osNode.state().toString() : NOT_EXIST;
+
+        return ok(mapper().createObjectNode().put(STATE, nodeState)).build();
+    }
+
+    /**
      * Initializes openstack node.
      *
      * @param hostname hostname of openstack node
