package org.dcache.webadmin.controller.impl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.dcache.webadmin.controller.CellAdminService; import org.dcache.webadmin.controller.exceptions.CellAdminServiceException; import org.dcache.webadmin.model.businessobjects.CellResponse; import org.dcache.webadmin.model.dataaccess.DAOFactory; import org.dcache.webadmin.model.dataaccess.DomainsDAO; import org.dcache.webadmin.model.exceptions.DAOException; /** * * @author jans */ public class StandardCellAdminService implements CellAdminService { private static final Logger _log = LoggerFactory.getLogger( StandardCellAdminService.class); private DAOFactory _daoFactory; public StandardCellAdminService(DAOFactory daoFactory) { _daoFactory = daoFactory; } @Override public Map<String, List<String>> getDomainMap() { return getDomainsDAO().getDomainsMap(); } @Override public String sendCommand(String target, String command) throws CellAdminServiceException { _log.debug("Sending command {} to cell {}", command, target); try { Set<String> targets = new HashSet<>(); targets.add(target); Set<CellResponse> responses = getDomainsDAO().sendCommand(targets, command); CellResponse response = new CellResponse(); if (responses.iterator().hasNext()) { response = responses.iterator().next(); } return response.getResponse(); } catch (DAOException e) { throw new CellAdminServiceException(e); } } private DomainsDAO getDomainsDAO() { return _daoFactory.getDomainsDAO(); } }