package com.mozilla.grouperfish.batch.handlers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.mozilla.grouperfish.batch.scheduling.Helpers;
import com.mozilla.grouperfish.model.Fail;
import com.mozilla.grouperfish.model.Task;
import com.mozilla.grouperfish.services.api.FileSystem;
import com.mozilla.grouperfish.services.api.FileSystem.Denied;
import com.mozilla.grouperfish.services.api.FileSystem.NotFound;
public class CleanupHandler implements TaskHandler {
private static final Logger log = LoggerFactory.getLogger(CleanupHandler.class);
private final FileSystem fs;
public CleanupHandler(FileSystem fs) {
this.fs = fs;
}
@Override
public Task handle(final Task task) throws Fail {
try {
fs.removeRecursively(Helpers.taskDirectory(task));
}
catch (final Denied denied) {
throw Fail.hard(task, "Could not cleanup task directory.", denied);
}
catch (final NotFound e) {
// ok, ignore
log.debug("Missing task directory during cleanup, this can indicate problems. Task: %s", task);
}
return task;
}
}