Package org.apache.storm.daemon.logviewer.utils

## Class WorkerLogs

- java.lang.Object
- - org.apache.storm.daemon.logviewer.utils.WorkerLogs

-     public class WorkerLogs
      extends Object

  A class that knows about how to operate with worker log directory.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `WORKER_YAML` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `WorkerLogs​(Map<String,​Object> stormConf, Path logRootDir, StormMetricsRegistry metricsRegistry)` | Constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Set<String>` | `getAliveIds​(int nowSecs)` | Retrieve the set of alive worker IDs.
    `SortedSet<Path>` | `getAliveWorkerDirs()` | Return a sorted set of paths that were written by workers that are now active.
    `List<Path>` | `getAllLogsForRootDir()` | Return a list of all log files from worker directories in root log directory.
    `Set<Path>` | `getAllWorkerDirs()` | Return a set of all worker directories in all topology directories in root log directory.
    `SortedSet<Path>` | `getLogDirs​(Set<Path> logDirs, Predicate<String> predicate)` | Finds directories for specific worker ids that can be cleaned up.
    `Optional<Path>` | `getMetadataFileForWorkerLogDir​(Path logDir)` | Return a metadata file (worker.yaml) for given worker log directory.
    `String` | `getTopologyOwnerFromMetadataFile​(Path metaFile)` | Return topology owner from worker meta file.
    `static String` | `getTopologyPortWorkerLog​(Path file)` | Return the path of the worker log with the format of topoId/port/worker.log.*
    `String` | `getWorkerIdFromMetadataFile​(Path metaFile)` | Return worker id from worker meta file.
    `void` | `setLogFilePermission​(String fileName)` | Set permission of log file so that logviewer can serve the file.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### WORKER_YAML

          public static final String WORKER_YAML

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### WorkerLogs

          public WorkerLogs​(Map<String,​Object> stormConf,
                            Path logRootDir,
                            StormMetricsRegistry metricsRegistry)

      Constructor.
      Parameters:
        `stormConf` - storm configuration
        `logRootDir` - the log root directory
        `metricsRegistry` - The logviewer metrics registry

  - ### Method Detail

    - #### setLogFilePermission

          public void setLogFilePermission​(String fileName)
                                    throws IOException

      Set permission of log file so that logviewer can serve the file.
      Parameters:
        `fileName` - log file
      Throws:
        `IOException`

    - #### getAllLogsForRootDir

          public List<Path> getAllLogsForRootDir()
                                          throws IOException

      Return a list of all log files from worker directories in root log directory.
      Throws:
        `IOException`

    - #### getAllWorkerDirs

          public Set<Path> getAllWorkerDirs()

      Return a set of all worker directories in all topology directories in root log directory.

    - #### getAliveWorkerDirs

          public SortedSet<Path> getAliveWorkerDirs()
                                             throws IOException

      Return a sorted set of paths that were written by workers that are now active.
      Throws:
        `IOException`

    - #### getMetadataFileForWorkerLogDir

          public Optional<Path> getMetadataFileForWorkerLogDir​(Path logDir)
                                                        throws IOException

      Return a metadata file (worker.yaml) for given worker log directory.
      Parameters:
        `logDir` - worker log directory
      Throws:
        `IOException`

    - #### getWorkerIdFromMetadataFile

          public String getWorkerIdFromMetadataFile​(Path metaFile)

      Return worker id from worker meta file.
      Parameters:
        `metaFile` - metadata file

    - #### getTopologyOwnerFromMetadataFile

          public String getTopologyOwnerFromMetadataFile​(Path metaFile)

      Return topology owner from worker meta file.
      Parameters:
        `metaFile` - metadata file

    - #### getAliveIds

          public Set<String> getAliveIds​(int nowSecs)
                                  throws IOException

      Retrieve the set of alive worker IDs.
      Parameters:
        `nowSecs` - current time in seconds
      Throws:
        `IOException`

    - #### getLogDirs

          public SortedSet<Path> getLogDirs​(Set<Path> logDirs,
                                            Predicate<String> predicate)

      Finds directories for specific worker ids that can be cleaned up.
      Parameters:
        `logDirs` - directories to check whether they're worker directories or not
        `predicate` - a check on a worker id to see if the log dir should be included
      Returns:
        directories that can be cleaned up.

    - #### getTopologyPortWorkerLog

          public static String getTopologyPortWorkerLog​(Path file)

      Return the path of the worker log with the format of topoId/port/worker.log.*
      Parameters:
        `file` - worker log