package org.dcache.webadmin.model.dataaccess.communication.collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import diskCacheV111.services.space.message.GetLinkGroupsMessage;
import diskCacheV111.services.space.message.GetSpaceTokensMessage;
import diskCacheV111.util.CacheException;
import dmg.cells.nucleus.NoRouteToCellException;
import org.dcache.util.backoff.IBackoffAlgorithm.Status;
import org.dcache.webadmin.model.dataaccess.communication.ContextPaths;
/**
*
* @author jans
*/
public class SpaceTokenCollector extends Collector {
private static final Logger _log
= LoggerFactory.getLogger(SpaceTokenCollector.class);
private void collectSpaceTokens() throws CacheException,
InterruptedException, NoRouteToCellException
{
_log.debug("Retrieving space tokens");
GetSpaceTokensMessage reply
= _cellStub.sendAndWait(new GetSpaceTokensMessage());
_pageCache.put(ContextPaths.SPACETOKENS, reply.getSpaceTokenSet());
_log.debug("Space tokens retrieved successfully");
}
private void collectLinkGroups() throws CacheException,
InterruptedException, NoRouteToCellException
{
_log.debug("Retrieving linkgroups");
GetLinkGroupsMessage reply
= _cellStub.sendAndWait(new GetLinkGroupsMessage());
_pageCache.put(ContextPaths.LINKGROUPS, reply.getLinkGroups());
_log.debug("Linkgroups retrieved successfully");
}
@Override
public Status call() throws InterruptedException {
try {
collectSpaceTokens();
} catch (NoRouteToCellException | CacheException ce) {
_log.debug("problem retrieving space tokens from space manager: {}",
ce.getMessage());
_pageCache.remove(ContextPaths.SPACETOKENS);
return Status.FAILURE;
}
try {
collectLinkGroups();
} catch (NoRouteToCellException | CacheException ce) {
_log.debug("problem retrieving link groups from space manager: {}",
ce.getMessage());
_pageCache.remove(ContextPaths.LINKGROUPS);
return Status.FAILURE;
}
return Status.SUCCESS;
}
public void setSpaceManagerEnabled(String enabled) {
setEnabled( "yes".equalsIgnoreCase(enabled)
|| "on".equalsIgnoreCase(enabled)
|| "true".equalsIgnoreCase(enabled)
|| "enabled".equalsIgnoreCase(enabled));
}
}