class_docstr: This handler handles connection and consumption of the CKAN API.
code: def check_connection(self) -> HandlerStatusResponse:
      response = HandlerStatusResponse(False)
      try:
          self.connect()
          result = self.ckan.action.status_show()
          if "datastore" not in result.get("extensions"):
              """
              If the CKAN instance does not have the datastore extension,
              we can't use it.
              """
              response.message = "CKAN datastore is not enabled"
              response.status = False
              self.is_connected = False
              return response
  
      except Exception as e:
          logger.error(f"Error connecting to CKAN: {e}!")
          self.is_connected = False
          response.error_message = e
  
      if response.success is False and self.is_connected is True:
          self.is_connected = False
  
      response.success = True
      return response
  
file_path: mindsdb/mindsdb/integrations/handlers/ckan_handler/ckan_handler.py
imports: from ckanapi import RemoteCKAN
  import pandas
  from mindsdb.integrations.libs.base import DatabaseHandler
  from mindsdb.integrations.libs.response import HandlerStatusResponse, HandlerResponse, RESPONSE_TYPE
  from mindsdb_sql.parser.ast.base import ASTNode
  from mindsdb_sql.render.sqlalchemy_render import SqlalchemyRender
  from mindsdb.utilities import log
label_desc: Use image node_id 4 for calling the CkanHandler obj's underlying member method code with example usage: obj.check_connection() and returns: response, response