package org.openstack.atlas.jobs;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openstack.atlas.service.domain.entities.JobName;
import org.openstack.atlas.service.domain.entities.JobStateVal;
import org.openstack.atlas.service.domain.events.entities.Alert;
import org.openstack.atlas.service.domain.events.repository.LoadBalancerEventRepository;
import org.openstack.atlas.service.domain.services.helpers.AlertHelper;
import org.openstack.atlas.service.domain.services.helpers.AlertType;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.stereotype.Component;
import java.util.Calendar;
@Component
public class EventsDeletionJob extends AbstractJob {
private final Log LOG = LogFactory.getLog(EventsDeletionJob.class);
@Autowired
LoadBalancerEventRepository loadBalancerEventRepository;
@Override
public Log getLogger() {
return LOG;
}
@Override
public JobName getJobName() {
return JobName.ATOM_EVENTS_DELETION_JOB;
}
@Override
public void setup(JobExecutionContext jobExecutionContext) throws JobExecutionException {
}
@Override
public void run() throws Exception {
try {
//LoadBalancerEvent
LOG.info("Loadbalancer events deletion job started...");
LOG.info(String.format("Attempting to remove loadbalancer events from the database... "));
loadBalancerEventRepository.removeLoadBalancerEventEntries();
LOG.info("LoadBalancer events deletion job completed.");
//LoadBalancerServiceEvent
LOG.info("Loadbalancer service events deletion job started...");
LOG.info(String.format("Attempting to remove loadbalancer service events from the database... "));
loadBalancerEventRepository.removeLoadBalancerServiceEventEntries();
LOG.info("LoadBalancer service events deletion job completed.");
//NodeEvent
LOG.info("Node events deletion job started...");
LOG.info(String.format("Attempting to remove node events from the database... "));
loadBalancerEventRepository.removeNodeEventEntries();
LOG.info("Node events deletion job completed.");
//NodeServiceEvent
LOG.info("Node service events deletion job started...");
LOG.info(String.format("Attempting to remove old node service events from the database... "));
loadBalancerEventRepository.removeNodeServiceEventEntries();
LOG.info("Node service events deletion job completed.");
//VirtualIpEvent
LOG.info("Virtual ip events deletion job started...");
LOG.info(String.format("Attempting to remove virtual ip events from the database... "));
loadBalancerEventRepository.removeVirtualIpEventEntries();
LOG.info("Virtual ip events deletion job completed.");
//ConnectionLimitEvent
LOG.info("Connection limit events deletion job started...");
LOG.info(String.format("Attempting to remove connection limit events from the database... "));
loadBalancerEventRepository.removeConnectionLimitEventEntries();
LOG.info("Connection limit events deletion job completed.");
//SessionPersistenceEvent
LOG.info("Session persistence events deletion job started...");
LOG.info(String.format("Attempting to remove session persistence events from the database... "));
loadBalancerEventRepository.removeSessionPersistenceEventEntries();
LOG.info("Session persistence events deletion job completed.");
//AccessListEvent
LOG.info("Access list events deletion job started...");
LOG.info(String.format("Attempting to remove access list events from the database... "));
loadBalancerEventRepository.removeAccessListEventEntries();
LOG.info("Access list events deletion job completed.");
//HealthMonitorEvent
LOG.info("Health monitor events deletion job started...");
LOG.info(String.format("Attempting to remove health monitor events from the database... "));
loadBalancerEventRepository.removeHealthMonitorEventEntries();
LOG.info("Health monitor events deletion job completed.");
} catch (Exception e) {
Alert alert = AlertHelper.createAlert(1, 1, e, AlertType.API_FAILURE.name(), "Failed removing an event entry...");
alertRepository.save(alert);
throw e;
}
}
@Override
public void cleanup() {
}
}