text: """
  Starting point of CSI driver GRP server
  """
  from concurrent import futures
  import time
  import logging
  import os
  
  import grpc
  
  import csi_pb2_grpc
  from identityserver import IdentityServer
  from controllerserver import ControllerServer
  from nodeserver import NodeServer
  from kadalulib import logging_setup
  
  
  _ONE_DAY_IN_SECONDS = 60 * 60 * 24
  
  
  def main():
      """
      Register Controller Server, Node server and Identity Server and start
      the GRPC server in required endpoint
      """
      logging_setup()
  
      server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
      csi_pb2_grpc.add_ControllerServicer_to_server(ControllerServer(), server)
      csi_pb2_grpc.add_NodeServicer_to_server(NodeServer(), server)
      csi_pb2_grpc.add_IdentityServicer_to_server(IdentityServer(), server)
  
      server.add_insecure_port(os.environ.get("CSI_ENDPOINT", "unix://plugin/csi.sock"))
      logging.info("Server started")
      server.start()
      try:
          while True:
              time.sleep(_ONE_DAY_IN_SECONDS)
      except KeyboardInterrupt:
          server.stop(0)
  
  
  if __name__ == '__main__':
      main()