def METHOD_NAME(self, tag=None):
    """ Return Task info for all public tasks.
        i.e - not internal.
    """
    self.log.debug("Entry.")
    subRes = {}
    with self._lock:
        for taskID, task in self._tasks.items():
            if not tag or tag in task.getTags():
                try:
                    subRes[taskID] = task.getInfo()
                except se.UnknownTask:
                    # Return info for existing tasks only.
                    self.log.warn("Unknown task %s. "
                                  "Maybe task was already cleared.",
                                  taskID)
    self.log.debug("Return. Response: %s", subRes)
    return subRes