// Path: flyJenkins/src/main/java/com/agun/flyJenkins/FlyFactory.java
// public class FlyFactory {
// 
// 	public static PeriodWork getPeriodWork(){
// 		Jenkins jenkins = Jenkins.getInstance();
// 		ExtensionList<PeriodWork> extensionList  = jenkins.getExtensionList(PeriodWork.class);
// 		PeriodWork periodWork = extensionList.get(PeriodWork.class);
// 		return periodWork;
// 	}
// 	
// 	public static DeployInfo getDeployInfo(){
// 		Jenkins jenkins = Jenkins.getInstance();
// 		ExtensionList<DeployInfo> extensionList  = jenkins.getExtensionList(DeployInfo.class);
// 		DeployInfo deployInfo = extensionList.get(DeployInfo.class);
// 		return deployInfo;
// 	}
// 	
// 	public static IncreaseIndexer getIncreaseIndexer(){
// 		return IncreaseIndexer.getInstance();
// 	}
// 	
// 	public static Map<String, Object> getPropertiesOfJob(String name){
// 		Jenkins jenkins = Jenkins.getInstance();
// 	
// 		List<Item> itemList = jenkins.getAllItems();
// 	
// 		for(Item item : itemList){
// 			for(Job job : item.getAllJobs()){
// 				if(name.equals(job.getName())){
// 					return job.getProperties();
// 				}
// 			}
// 		}
// 		return null;
// 	}
// 	
// 	
// 	public static NetworkSpace getNetworkSpace(){
// 		return NetworkSpace.getInstance();
// 	}
// 	
// 	
// 	public static String getRootPathOfJob(String name){
// 		Jenkins jenkins = Jenkins.getInstance();
// 		List<Item> itemList = jenkins.getAllItems();
// 		for(Item item : itemList){
// 			for(Job job : item.getAllJobs()){
// 				if(name.equals(job.getName())){
// 					return job.getRootDir().getAbsolutePath();
// 				}
// 			}
// 		}
// 		return null;
// 	}
// }
// 
// Path: flyJenkins/src/main/java/com/agun/flyJenkins/schedule/PeriodWork.java
// @Extension
// public class PeriodWork extends PeriodicWork {
// 	
// 	private RequestQueue requestQueue = new RequestQueue();
// 	private DeploySurveillant deploySurveillant = new DeploySurveillant();
// 	
// 	public RequestQueue getRequestQueue(){
// 		return requestQueue;
// 	}
// 
// 	public DeploySurveillant getDeploySurveillant(){
// 		return deploySurveillant;
// 	}
// 	
// 	public Map<String, DeployReport> getDeployReportMap(){
// 		return deploySurveillant.getDeployReportMap();
// 	}
// 	
// 	@Override
// 	public long getRecurrencePeriod() {
// 		//return MIN;
// 		return 10000;
// 	}
// 
// 	@IgnoreJRERequirement
// 	@Override
// 	protected void doRun() throws Exception {
// 		deploySurveillant.process();
// 	}
// }


import hudson.ExtensionList;
import java.util.Hashtable;
import java.util.Map;
import jenkins.model.Jenkins;
import com.agun.flyJenkins.FlyFactory;
import com.agun.flyJenkins.schedule.PeriodWork;

package com.agun.flyJenkins.request;





/**
 * process 를 kill 하는 request 를 request queue 에 요청 한다.
 * 
 * @author agun
 *
 */

public class ProcessKill implements Requester {
	public Object request(String host, Object arg) {
		int pid = (Integer) arg;
		Map<String, Object> argMap = new Hashtable<String, Object>();
		argMap.put("host", host);
		argMap.put("pid", pid);
		RequestMap requestMap = new RequestMap();
		requestMap.setType(1);
		requestMap.setArg(argMap);
		
		/**
		 * request 를 queue 저장
		 */

// Path: flyJenkins/src/main/java/com/agun/flyJenkins/FlyFactory.java
// public class FlyFactory {
// 
// 	public static PeriodWork getPeriodWork(){
// 		Jenkins jenkins = Jenkins.getInstance();
// 		ExtensionList<PeriodWork> extensionList  = jenkins.getExtensionList(PeriodWork.class);
// 		PeriodWork periodWork = extensionList.get(PeriodWork.class);
// 		return periodWork;
// 	}
// 	
// 	public static DeployInfo getDeployInfo(){
// 		Jenkins jenkins = Jenkins.getInstance();
// 		ExtensionList<DeployInfo> extensionList  = jenkins.getExtensionList(DeployInfo.class);
// 		DeployInfo deployInfo = extensionList.get(DeployInfo.class);
// 		return deployInfo;
// 	}
// 	
// 	public static IncreaseIndexer getIncreaseIndexer(){
// 		return IncreaseIndexer.getInstance();
// 	}
// 	
// 	public static Map<String, Object> getPropertiesOfJob(String name){
// 		Jenkins jenkins = Jenkins.getInstance();
// 	
// 		List<Item> itemList = jenkins.getAllItems();
// 	
// 		for(Item item : itemList){
// 			for(Job job : item.getAllJobs()){
// 				if(name.equals(job.getName())){
// 					return job.getProperties();
// 				}
// 			}
// 		}
// 		return null;
// 	}
// 	
// 	
// 	public static NetworkSpace getNetworkSpace(){
// 		return NetworkSpace.getInstance();
// 	}
// 	
// 	
// 	public static String getRootPathOfJob(String name){
// 		Jenkins jenkins = Jenkins.getInstance();
// 		List<Item> itemList = jenkins.getAllItems();
// 		for(Item item : itemList){
// 			for(Job job : item.getAllJobs()){
// 				if(name.equals(job.getName())){
// 					return job.getRootDir().getAbsolutePath();
// 				}
// 			}
// 		}
// 		return null;
// 	}
// }
// 
// Path: flyJenkins/src/main/java/com/agun/flyJenkins/schedule/PeriodWork.java
// @Extension
// public class PeriodWork extends PeriodicWork {
// 	
// 	private RequestQueue requestQueue = new RequestQueue();
// 	private DeploySurveillant deploySurveillant = new DeploySurveillant();
// 	
// 	public RequestQueue getRequestQueue(){
// 		return requestQueue;
// 	}
// 
// 	public DeploySurveillant getDeploySurveillant(){
// 		return deploySurveillant;
// 	}
// 	
// 	public Map<String, DeployReport> getDeployReportMap(){
// 		return deploySurveillant.getDeployReportMap();
// 	}
// 	
// 	@Override
// 	public long getRecurrencePeriod() {
// 		//return MIN;
// 		return 10000;
// 	}
// 
// 	@IgnoreJRERequirement
// 	@Override
// 	protected void doRun() throws Exception {
// 		deploySurveillant.process();
// 	}
// }


// Path: flyJenkins/src/main/java/com/agun/flyJenkins/request/ProcessKill.java
import hudson.ExtensionList;
import java.util.Hashtable;
import java.util.Map;
import jenkins.model.Jenkins;
import com.agun.flyJenkins.FlyFactory;
import com.agun.flyJenkins.schedule.PeriodWork;

package com.agun.flyJenkins.request;





/**
 * process 를 kill 하는 request 를 request queue 에 요청 한다.
 * 
 * @author agun
 *
 */

public class ProcessKill implements Requester {
	public Object request(String host, Object arg) {
		int pid = (Integer) arg;
		Map<String, Object> argMap = new Hashtable<String, Object>();
		argMap.put("host", host);
		argMap.put("pid", pid);
		RequestMap requestMap = new RequestMap();
		requestMap.setType(1);
		requestMap.setArg(argMap);
		
		/**
		 * request 를 queue 저장
		 */

		PeriodWork periodWork = FlyFactory.getPeriodWork();
