package org.radargun.stages.monitor; import java.util.List; import org.radargun.DistStageAck; import org.radargun.StageResult; import org.radargun.config.Stage; import org.radargun.stages.AbstractDistStage; import org.radargun.sysmonitor.MasterMonitors; import org.radargun.sysmonitor.SlaveMonitors; /** * * Stop collecting JVM statistics on each slave node and return collected statistics to the master node. * * @author Alan Field <afield@redhat.com> */ @Stage(doc = "Stop collecting statistics on each slave node and return collected statistics to the master node.", deprecatedName = "jvm-monitor-stop") public class MonitorStopStage extends AbstractDistStage { @Override public DistStageAck executeOnSlave() { SlaveMonitors slaveMonitors = (SlaveMonitors) slaveState.get(SlaveMonitors.MONITORS); if (slaveMonitors != null) { slaveMonitors.stop(); return successfulResponse(); } else { return errorResponse("No Monitors object found on slave: " + slaveState.getSlaveIndex()); } } @Override public StageResult processAckOnMaster(List<DistStageAck> acks) { MasterMonitors masterMonitors = (MasterMonitors) masterState.get(MasterMonitors.MONITORS); if (masterMonitors != null) { masterMonitors.stop(); return StageResult.SUCCESS; } else { log.warn("No monitor found on master!"); return errorResult(); } } }