code: def dispatch(self, command):
          
          log.info("Dispatch on %s", command)
          if not command:
              return "OK"
          
          action, params = self.parse_command(command)
          log.debug("Action = %s, Params = %s", action, params)
          try:
              function = getattr(self, "do_" + action, None)
              if function:
                  function(*params)
              return "OK"
          except KeyboardInterrupt:
              raise
          except Exception as exc:
              log.exception("Problem executing action %s", action)
              return "ERROR: %s" % exc
docs: Pass a command along with its params to a suitable handler
          
          If the command is blank, succeed silently
          If the command has no handler, succeed silently
          If the handler raises an exception, fail with the exception message