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.dao.PeerEntry; import org.ourgrid.broker.business.messages.BrokerControlMessages; import org.ourgrid.broker.business.scheduler.SchedulerIF; import org.ourgrid.broker.request.LWPDoNotifyFailureRequestTO; import org.ourgrid.common.internal.IResponseTO; import org.ourgrid.common.internal.RequesterIF; import org.ourgrid.common.internal.response.LoggerResponseTO; public class LWPDoNotifyFailureRequester implements RequesterIF<LWPDoNotifyFailureRequestTO> { public List<IResponseTO> execute(LWPDoNotifyFailureRequestTO request) { List<IResponseTO> responses = new ArrayList<IResponseTO>(); PeerEntry peerEntry = BrokerDAOFactory.getInstance().getPeerDAO().getPeerEntry(request.getPeerAddress()); if (peerEntry == null) { responses.add(new LoggerResponseTO(BrokerControlMessages.getNoPeerWithSuchEntityIDMessage(request.getPeerID()), LoggerResponseTO.WARN)); return responses; } else if (peerEntry.isDown()){ responses.add(new LoggerResponseTO(BrokerControlMessages.getPeerAlreadyDownMessage(request.getPeerID()), LoggerResponseTO.WARN)); return responses; } peerEntry.setAsDown(); responses.add(new LoggerResponseTO(BrokerControlMessages.getPeerIsDownMessage(request.getPeerID()), LoggerResponseTO.DEBUG)); JobDAO jobDAO = BrokerDAOFactory.getInstance().getJobDAO(); for(SchedulerIF scheduler: jobDAO.getSchedulers()) { scheduler.localWorkerProviderFailure(request.getPeerID()); } return responses; } }