package org.ourgrid.broker.business.requester; import java.util.ArrayList; import java.util.List; import org.ourgrid.broker.business.dao.BrokerDAOFactory; import org.ourgrid.broker.business.dao.JobDAO; import org.ourgrid.broker.business.messages.BrokerControlMessages; import org.ourgrid.broker.business.scheduler.SchedulerIF; import org.ourgrid.broker.request.CleanAllFinishedJobsRequestTO; import org.ourgrid.common.internal.IResponseTO; import org.ourgrid.common.internal.RequesterIF; import org.ourgrid.common.internal.response.LoggerResponseTO; public class CleanAllFinishedJobsRequester implements RequesterIF<CleanAllFinishedJobsRequestTO> { public List<IResponseTO> execute(CleanAllFinishedJobsRequestTO request) { List<IResponseTO> responses = new ArrayList<IResponseTO>(); responses.add(new LoggerResponseTO("Trying to clean all finished jobs.", LoggerResponseTO.INFO)); String senderPubKey = request.getSenderPublicKey(); if (!request.isThisMyPublicKey()) { responses.add(new LoggerResponseTO(BrokerControlMessages.getUnknownSenderControllingBrokerMessage(senderPubKey), LoggerResponseTO.WARN)); return responses; } if (!request.canComponentBeUsed()) { responses.add(new LoggerResponseTO(BrokerControlMessages.getComponentNotStartedMessage(), LoggerResponseTO.ERROR)); return responses; } JobDAO jobDAO = BrokerDAOFactory.getInstance().getJobDAO(); jobDAO.setBrokerControlClientAddress(request.getBrokerControlClientAddress()); for(SchedulerIF scheduler: jobDAO.getSchedulers()) { scheduler.cleanAllFinishedJobs(responses); } return responses; } }