package com.dgrid.handlers; import com.dgrid.api.BaseJobletTypeHandler; import com.dgrid.api.JobletTypeHandler; import com.dgrid.gen.JOB_STATUS; import com.dgrid.gen.Joblet; import com.dgrid.gen.JobletResult; import com.dgrid.service.DGridClient; public class AgentShutdownTypeHandler extends BaseJobletTypeHandler implements JobletTypeHandler { public static final String EXIT_VALUE_PARAM = "exitValue"; public JobletResult execute(Joblet joblet, DGridClient gridClient) throws Exception { log.trace("execute()"); int exitCode = 0; try { exitCode = (joblet.getParameters().get(EXIT_VALUE_PARAM) != null) ? Integer .parseInt(joblet.getParameters().get(EXIT_VALUE_PARAM)) : 0; } catch (NumberFormatException e) { } // need to self-complete this job gridClient.completeJoblet(joblet.getId(), new JobletResult(0, 0l, 0, 1, JOB_STATUS.COMPLETED, "", joblet), "Shutting down agent"); System.exit(exitCode); return null; } }