package com.intuit.tank.job; /* * #%L * JSF Support Beans * %% * 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 javax.inject.Inject; import javax.inject.Named; import com.intuit.tank.service.impl.v1.cloud.JobController; import com.intuit.tank.vm.api.enumerated.JobQueueStatus; import com.intuit.tank.vm.api.enumerated.JobStatus; @Named public class JobQueueAction { @Inject private JobController controller; /** * Runs the job for the given jobId * * @param jobId */ public void run(JobNodeBean node) { if (node instanceof ActJobNodeBean) { ActJobNodeBean jobNode = (ActJobNodeBean) node; if (jobNode.getStatus().equals(JobQueueStatus.Created.name())) { controller.startJob(jobNode.getId()); } else { if (jobNode.getStatus().equals(JobStatus.Paused.name()) || jobNode.getStatus().equals(JobStatus.RampPaused.name())) { controller.restartJob(jobNode.getId()); } else { controller.startJob(jobNode.getId()); } } } else if (node instanceof VMNodeBean) { VMNodeBean agentNode = (VMNodeBean) node; if (agentNode.getStatus().equals(JobStatus.Paused.name()) || agentNode.getStatus().equals(JobStatus.RampPaused.name())) { controller.restartAgent(agentNode.getId()); } } } /** * Pauses the job for the given jobId */ public void pause(JobNodeBean node) { if (node instanceof ActJobNodeBean) { ActJobNodeBean jobNode = (ActJobNodeBean) node; controller.pauseJob(jobNode.getId()); } else if (node instanceof VMNodeBean) { VMNodeBean agentNode = (VMNodeBean) node; controller.pauseAgent(agentNode.getId()); } } /** * Pauses the job for the given jobId */ public void pauseRamp(JobNodeBean node) { if (node instanceof ActJobNodeBean) { ActJobNodeBean jobNode = (ActJobNodeBean) node; controller.pauseRampJob(jobNode.getId()); } else if (node instanceof VMNodeBean) { VMNodeBean agentNode = (VMNodeBean) node; controller.pauseRampInstance(agentNode.getId()); } } /** * Kills the job for the given jobId * * @param jobId */ public void kill(JobNodeBean node) { if (node instanceof ActJobNodeBean) { ActJobNodeBean jobNode = (ActJobNodeBean) node; controller.killJob(jobNode.getId()); } else if (node instanceof VMNodeBean) { VMNodeBean agentNode = (VMNodeBean) node; controller.killInstance(agentNode.getId()); } } /** * Stops the job with the given jobId */ public void stop(JobNodeBean node) { if (node instanceof ActJobNodeBean) { ActJobNodeBean jobNode = (ActJobNodeBean) node; controller.stopJob(jobNode.getId()); } else if (node instanceof VMNodeBean) { VMNodeBean agentNode = (VMNodeBean) node; controller.stopAgent(agentNode.getId()); } } }