package com.hubspot.singularity.smtp;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Optional;
import com.hubspot.singularity.ExtendedTaskState;
import com.hubspot.singularity.SingularityDisastersData;
import com.hubspot.singularity.SingularityRequest;
import com.hubspot.singularity.SingularityTask;
import com.hubspot.singularity.SingularityTaskHistory;
import com.hubspot.singularity.SingularityTaskId;
import com.hubspot.singularity.api.SingularityPauseRequest;
import com.hubspot.singularity.api.SingularityScaleRequest;
public class NoopMailer implements SingularityMailer {
private static final Logger LOG = LoggerFactory.getLogger(NoopMailer.class);
private static final NoopMailer INSTANCE = new NoopMailer();
private NoopMailer() {}
public static NoopMailer getInstance() {
return INSTANCE;
}
@Override
public void sendTaskOverdueMail(Optional<SingularityTask> task, SingularityTaskId taskId, SingularityRequest request, long runTime, long expectedRuntime) {
logNotSendingEmail("task overdue");
}
@Override
public void queueTaskCompletedMail(Optional<SingularityTask> task, SingularityTaskId taskId, SingularityRequest request, ExtendedTaskState taskState) {
logNotSendingEmail("task completed");
}
@Override
public void sendTaskCompletedMail(SingularityTaskHistory taskHistory, SingularityRequest request) {
logNotSendingEmail("task completed");
}
@Override
public void sendRequestPausedMail(SingularityRequest request, Optional<SingularityPauseRequest> pauseRequest, Optional<String> user) {
logNotSendingEmail("request paused");
}
@Override
public void sendRequestUnpausedMail(SingularityRequest request, Optional<String> user, Optional<String> message) {
logNotSendingEmail("request unpaused");
}
@Override
public void sendRequestScaledMail(SingularityRequest request, Optional<SingularityScaleRequest> newScaleRequest, Optional<Integer> formerInstances, Optional<String> user) {
logNotSendingEmail("request scaled");
}
@Override
public void sendRequestRemovedMail(SingularityRequest request, Optional<String> user, Optional<String> message) {
logNotSendingEmail("request removed");
}
@Override
public void sendRequestInCooldownMail(SingularityRequest request) {
logNotSendingEmail("request in cooldown");
}
private void logNotSendingEmail(String type) {
LOG.debug("Not sending " + type + " mail - no SMTP configuration is present");
}
@Override
public void sendDisasterMail(final SingularityDisastersData disastersData) {
logNotSendingEmail("new disaster");
}
}