package com.intuit.tank.scheduleManager;
/*
* #%L
* VmManager
* %%
* Copyright (C) 2011 - 2015 Intuit Inc.
* %%
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
* #L%
*/
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.intuit.tank.vm.agent.messages.AgentMngrAPIRequest;
import com.intuit.tank.vm.agent.messages.AgentMngrAPIResponse;
import com.intuit.tank.vm.scheduleManager.JobRequestData;
import com.intuit.tank.vm.scheduleManager.ScheduleManager;
public class ScheduleManagerImpl implements ScheduleManager {
private static Logger logger = LogManager.getLogger(ScheduleManagerImpl.class);
private static Map<String, JobRequestData> elements = new ConcurrentHashMap<String, JobRequestData>();
/**
* @{inheritDoc
*/
@Override
public void addJob(AgentMngrAPIRequest request) {
logger.debug("adding job for job id " + request.getJobId());
JobRequestData data = new JobRequestData(request);
elements.put(request.getJobId(), data);
}
/**
* @{inheritDoc
*/
@Override
public void addAgent(AgentMngrAPIResponse agent) {
JobRequestData data = elements.get(agent.getJobId());
if (data != null) {
logger.debug("Received agent job Id " + agent.getJobId());
data.addAgent(agent);
} else {
logger.warn("Received agent for unknown job | Id sent is " + agent.getJobId());
}
}
/**
* @{inheritDoc
*/
@Override
public JobRequestData getJob(String jobId) {
logger.debug("getting job id " + jobId);
return elements.get(jobId);
}
}