package com.intuit.tank.vmManager; /* * #%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 javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.intuit.tank.api.cloud.VMTracker; import com.intuit.tank.vm.vmManager.VMInstanceRequest; import com.intuit.tank.vm.vmManager.VMJobRequest; import com.intuit.tank.vm.vmManager.VMKillRequest; import com.intuit.tank.vm.vmManager.VMRequest; import com.intuit.tank.vm.vmManager.VMUpdateStateRequest; import com.intuit.tank.vm.vmManager.VmMessageProcessor; import com.intuit.tank.vmManager.environment.CreateInstance; import com.intuit.tank.vmManager.environment.JobRequest; import com.intuit.tank.vmManager.environment.KillInstance; /** * * VmMessageProcessorImpl * * @author dangleton * */ @ApplicationScoped public class VmMessageProcessorImpl implements VmMessageProcessor { static Logger logger = LogManager.getLogger(VmMessageProcessorImpl.class); @Inject private VMQueue vmQueue; @Inject private VMTracker vmTracker; /** * @param messageObject */ @Override public void handleVMRequest(VMRequest messageObject) { if (messageObject instanceof VMInstanceRequest) { logger.debug("vmManager received VMInstanceRequest"); CreateInstance instance = new CreateInstance((VMInstanceRequest) messageObject, vmTracker); instance.run(); } else if (messageObject instanceof VMJobRequest) { JobRequest instance = new JobRequest((VMJobRequest) messageObject, vmTracker); instance.run(); } else if (messageObject instanceof VMKillRequest) { logger.debug("vmManager received VMKillRequest"); KillInstance instance = new KillInstance((VMKillRequest) messageObject); vmQueue.execute(instance); } else if (messageObject instanceof VMUpdateStateRequest) { logger.debug("vmManager received VMUpdateStateRequest"); // UpdateInstances instance = new UpdateInstances((VMUpdateStateRequest) messageObject); // vmQueue.execute(instance); } else { logger.error("JMS Object: Message Type Not Expected"); } } }