package org.stagemonitor.core.elasticsearch;
import java.util.TimerTask;
/**
* A task that runs periodically and deletes old Elasticsearch logstash-style indices
*/
public class DeleteIndicesTask extends TimerTask {
private final String indexPrefix;
private final int deleteIndicesOlderThanDays;
private final ElasticsearchClient elasticsearchClient;
private final IndexSelector indexSelector;
public DeleteIndicesTask(IndexSelector indexSelector, String indexPrefix, int deleteIndicesOlderThanDays, ElasticsearchClient elasticsearchClient) {
this.indexSelector = indexSelector;
this.indexPrefix = indexPrefix;
this.deleteIndicesOlderThanDays = deleteIndicesOlderThanDays;
this.elasticsearchClient = elasticsearchClient;
}
@Override
public void run() {
final String indexPatternOlderThanDays = indexSelector.getIndexPatternOlderThanDays(indexPrefix, deleteIndicesOlderThanDays);
elasticsearchClient.deleteIndices(indexPatternOlderThanDays);
}
}