Search in sources :

Example 1 with DistributionAgentState

use of org.apache.sling.distribution.agent.DistributionAgentState in project sling by apache.

the class SimpleDistributionAgent method getState.

@Nonnull
public DistributionAgentState getState() {
    DistributionAgentState agentState = DistributionAgentState.IDLE;
    // if it is passive and it is not a queueing agent
    if (isPassive() && distributionPackageImporter != null) {
        return DistributionAgentState.PAUSED;
    }
    for (String queueName : getQueueNames()) {
        DistributionQueue queue = getQueue(queueName);
        DistributionQueueState state = queue.getStatus().getState();
        if (DistributionQueueState.BLOCKED == state) {
            return DistributionAgentState.BLOCKED;
        }
        if (DistributionQueueState.RUNNING == state) {
            agentState = DistributionAgentState.RUNNING;
        }
    }
    return agentState;
}
Also used : DistributionAgentState(org.apache.sling.distribution.agent.DistributionAgentState) SimpleAgentDistributionQueue(org.apache.sling.distribution.queue.impl.SimpleAgentDistributionQueue) DistributionQueue(org.apache.sling.distribution.queue.DistributionQueue) DistributionQueueState(org.apache.sling.distribution.queue.DistributionQueueState) Nonnull(javax.annotation.Nonnull)

Example 2 with DistributionAgentState

use of org.apache.sling.distribution.agent.DistributionAgentState in project sling by apache.

the class ExtendedDistributionServiceResourceProvider method getChildResourceProperties.

@Override
protected Map<String, Object> getChildResourceProperties(DistributionComponent<?> component, String childResourceName) {
    DistributionComponentKind kind = component.getKind();
    if (DistributionComponentKind.AGENT == kind) {
        DistributionAgent agent = (DistributionAgent) component.getService();
        if (agent != null && childResourceName != null) {
            if (childResourceName.startsWith(QUEUES_PATH)) {
                SimplePathInfo queuePathInfo = SimplePathInfo.parsePathInfo(QUEUES_PATH, childResourceName);
                return getQueueProperties(agent, queuePathInfo);
            } else if (childResourceName.startsWith(LOG_PATH)) {
                Map<String, Object> result = new HashMap<String, Object>();
                result.put(SLING_RESOURCE_TYPE, DistributionResourceTypes.LOG_RESOURCE_TYPE);
                DistributionLog distributionLog = agent.getLog();
                result.put(INTERNAL_ADAPTABLE, distributionLog);
                return result;
            } else if (childResourceName.startsWith(STATUS_PATH)) {
                Map<String, Object> result = new HashMap<String, Object>();
                DistributionAgentState agentState = agent.getState();
                result.put("state", agentState.name());
                return result;
            }
        }
    }
    return null;
}
Also used : DistributionAgentState(org.apache.sling.distribution.agent.DistributionAgentState) DistributionAgent(org.apache.sling.distribution.agent.DistributionAgent) DistributionComponentKind(org.apache.sling.distribution.component.impl.DistributionComponentKind) HashMap(java.util.HashMap) SimplePathInfo(org.apache.sling.distribution.resources.impl.common.SimplePathInfo) DistributionLog(org.apache.sling.distribution.log.DistributionLog) HashMap(java.util.HashMap) Map(java.util.Map)

Aggregations

DistributionAgentState (org.apache.sling.distribution.agent.DistributionAgentState)2 HashMap (java.util.HashMap)1 Map (java.util.Map)1 Nonnull (javax.annotation.Nonnull)1 DistributionAgent (org.apache.sling.distribution.agent.DistributionAgent)1 DistributionComponentKind (org.apache.sling.distribution.component.impl.DistributionComponentKind)1 DistributionLog (org.apache.sling.distribution.log.DistributionLog)1 DistributionQueue (org.apache.sling.distribution.queue.DistributionQueue)1 DistributionQueueState (org.apache.sling.distribution.queue.DistributionQueueState)1 SimpleAgentDistributionQueue (org.apache.sling.distribution.queue.impl.SimpleAgentDistributionQueue)1 SimplePathInfo (org.apache.sling.distribution.resources.impl.common.SimplePathInfo)1