/** * Copyright 2011 Intuit Inc. All Rights Reserved */ package com.intuit.tank.perfManager.workLoads; /* * #%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.List; import javax.inject.Inject; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.intuit.tank.vm.api.enumerated.WatsAgentCommand; import com.intuit.tank.vm.perfManager.AgentChannel; /** * AgentChannelImpl communication channel for agents. * * @author dangleton * */ public class AgentChannelImpl implements AgentChannel { private static final Logger LOG = LogManager.getLogger(AgentChannelImpl.class); @Inject private JobManager jobManager; public void stopAgents(List<String> instanceIds) { sendCmd(instanceIds, WatsAgentCommand.stop); } public void pauseAgents(List<String> instanceIds) { sendCmd(instanceIds, WatsAgentCommand.pause); } public void pauseRamp(List<String> instanceIds) { sendCmd(instanceIds, WatsAgentCommand.pause_ramp); } public void resumeRamp(List<String> instanceIds) { sendCmd(instanceIds, WatsAgentCommand.resume_ramp); } public void killAgents(List<String> instanceIds) { sendCmd(instanceIds, WatsAgentCommand.kill); } public void restartAgents(List<String> instanceIds) { sendCmd(instanceIds, WatsAgentCommand.resume_ramp); } private void sendCmd(List<String> ids, WatsAgentCommand cmd) { for (String instanceId : ids) { LOG.info("sending message " + cmd + " to instance with id " + instanceId); jobManager.sendCommand(instanceId, cmd); } } }