docs: def handleRestartRequest(self, req: Request) -> None:
          """
          Handles transaction of type POOL_RESTART
          Can schedule or cancel restart to a newer
          version at specified time
  
          :param req:
          """
          txn = req.operation
          if txn[TXN_TYPE] != POOL_RESTART:
              return
  
          action = txn[ACTION]
          if action == START:
              when = dateutil.parser.parse(txn[DATETIME]) \
                  if DATETIME in txn.keys() and txn[DATETIME] not in ["0", "", None] \
                  else None
              fail_timeout = txn.get(TIMEOUT, self.defaultActionTimeout)
              self.requestRestart(when, fail_timeout)
              return
  
          if action == CANCEL:
              if self.scheduledAction:
                  self._cancelScheduledRestart()
                  logger.info("Node '{}' cancels restart".format(
                      self.nodeName))
              return
  
          logger.error(
              "Got {} transaction with unsupported action {}".format(
                  POOL_RESTART, action))