Class DirectoryCleaner
- java.lang.Object
-
- org.apache.storm.daemon.logviewer.utils.DirectoryCleaner
-
public class DirectoryCleaner extends Object
Provide methods to help Logviewer to clean up files in directories and to get a list of files without worrying about excessive memory usage.
-
-
Field Summary
Fields Modifier and Type Field Description static intMAX_NUMBER_OF_FILES_FOR_DIR
-
Constructor Summary
Constructors Constructor Description DirectoryCleaner(StormMetricsRegistry metricsRegistry)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.storm.daemon.logviewer.utils.DeletionMetadeleteOldestWhileTooLarge(List<Path> dirs, long quota, boolean forPerDir, Set<Path> activeDirs)If totalSize of files exceeds the either the per-worker quota or global quota, Logviewer deletes oldest inactive log files in a worker directory or in all worker dirs.List<Path>getFilesForDir(Path dir)Lists files in directory.DirectoryStream<Path>getStreamForDirectory(Path dir)Creates DirectoryStream for give directory.
-
-
-
Field Detail
-
MAX_NUMBER_OF_FILES_FOR_DIR
public static final int MAX_NUMBER_OF_FILES_FOR_DIR
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DirectoryCleaner
public DirectoryCleaner(StormMetricsRegistry metricsRegistry)
-
-
Method Detail
-
getStreamForDirectory
public DirectoryStream<Path> getStreamForDirectory(Path dir) throws IOException
Creates DirectoryStream for give directory.- Parameters:
dir- File instance representing specific directory- Returns:
- DirectoryStream
- Throws:
IOException
-
deleteOldestWhileTooLarge
public org.apache.storm.daemon.logviewer.utils.DeletionMeta deleteOldestWhileTooLarge(List<Path> dirs, long quota, boolean forPerDir, Set<Path> activeDirs) throws IOException
If totalSize of files exceeds the either the per-worker quota or global quota, Logviewer deletes oldest inactive log files in a worker directory or in all worker dirs. We use the parameter forPerDir to switch between the two deletion modes.- Parameters:
dirs- the list of directories to be scanned for deletionquota- the per-dir quota or the total quota for the all directoriesforPerDir- if true, deletion happens for a single dir; otherwise, for all directories globallyactiveDirs- only for global deletion, we want to skip the active logs in activeDirs- Returns:
- number of files deleted
- Throws:
IOException
-
getFilesForDir
public List<Path> getFilesForDir(Path dir) throws IOException
Lists files in directory. Note that to avoid memory problem, we only return the first 1024 files in a directory.- Parameters:
dir- directory to get file list- Returns:
- files in directory
- Throws:
IOException
-
-