package org.ourgrid.discoveryservice.business.requester;
import java.util.ArrayList;
import java.util.List;
import org.ourgrid.common.internal.IResponseTO;
import org.ourgrid.common.internal.RequesterIF;
import org.ourgrid.common.internal.response.LoggerResponseTO;
import org.ourgrid.discoveryservice.business.dao.DiscoveryServiceDAO;
import org.ourgrid.discoveryservice.business.dao.DiscoveryServiceDAOFactory;
import org.ourgrid.discoveryservice.business.messages.DiscoveryServiceControlMessages;
import org.ourgrid.discoveryservice.request.DSIsUpRequestTO;
import org.ourgrid.discoveryservice.response.DSGetDiscoveryServicesResponseTO;
/**
* Requirement 511
*/
public class DSIsUpRequester implements RequesterIF<DSIsUpRequestTO>{
public List<IResponseTO> execute(DSIsUpRequestTO request) {
List<IResponseTO> responses = new ArrayList<IResponseTO>();
DiscoveryServiceDAO discoveryServiceDAO = DiscoveryServiceDAOFactory.getInstance().getDiscoveryServiceDAO();
if (discoveryServiceDAO.getDSInfo(request.getDsAddress()) == null) {
responses.add(new LoggerResponseTO(
DiscoveryServiceControlMessages.getDSNotMemberOfNetworkMessage(request.getDsAddress()),
LoggerResponseTO.WARN));
return responses;
}
discoveryServiceDAO.dsIsUp(request.getDsAddress());
DSGetDiscoveryServicesResponseTO getDSResponseTO = new DSGetDiscoveryServicesResponseTO();
getDSResponseTO.setDsAddress(request.getDsAddress());
responses.add(getDSResponseTO);
responses.add(new LoggerResponseTO(DiscoveryServiceControlMessages.getDiscoveryServiceIsUpNotificationMessage(request.getDsAddress()), LoggerResponseTO.INFO));
// List<String> onlinePeers = discoveryServiceDAO.getMyOnlinePeers();
//
// //FIXME wrong place to do that
// DSHereIsRemoteWorkerProvidersListResponseTO hereIsTo = new DSHereIsRemoteWorkerProvidersListResponseTO();
// hereIsTo.setStubAddress(request.getDsAddress());
// hereIsTo.setWorkerProviders(onlinePeers);
//
// responses.add(hereIsTo);
return responses;
}
}