String exitCode = ""+spooler_task.exit_code();
String eventClass = "";
String eventId = ""+spooler_task.id();
Variable_set parameters = spooler.create_variable_set();
parameters.merge(spooler_task.params());
if(orderJob){
jobChain = spooler_task.order().job_chain().name();
orderId = spooler_task.order().id();
parameters.merge(spooler_task.order().params());
eventId = orderId;
}
try{
HashSet parameterNames = new HashSet();
spooler_log.debug1("reading parameters:");
eventClass = parameters.var("scheduler_event_class");
if (eventClass==null || eventClass.length()==0){
throw new Exception("Parameter scheduler_event_class is missing.");
}
if (parameters.var("scheduler_event_action")!=null && parameters.var("scheduler_event_action").length()>0){
action=parameters.var("scheduler_event_action");
spooler_log.debug1("...parameter[scheduler_event_action]: "+action);
parameterNames.add("scheduler_event_action");
}
if (action.equalsIgnoreCase("remove")){
orderId = "";
jobChain="";
jobName="";
schedulerHost="";
schedulerTCPPort="";
exitCode="";
eventId="";
if (parameters.var("scheduler_event_job")!=null && parameters.var("scheduler_event_job").length()>0){
jobName=parameters.var("scheduler_event_job");
spooler_log.debug1("...parameter[scheduler_event_job]: "+jobName);
parameterNames.add("scheduler_event_job");
}
if (parameters.var("scheduler_event_host")!=null && parameters.var("scheduler_event_host").length()>0){
schedulerHost=parameters.var("scheduler_event_host");
spooler_log.debug1("...parameter[scheduler_event_host]: "+schedulerHost);
parameterNames.add("scheduler_event_host");
}
if (parameters.var("scheduler_event_port")!=null && parameters.var("scheduler_event_port").length()>0){
schedulerTCPPort=parameters.var("scheduler_event_port");
spooler_log.debug1("...parameter[scheduler_event_port]: "+schedulerTCPPort);
parameterNames.add("scheduler_event_port");
}
if (parameters.var("scheduler_event_exit_code")!=null && parameters.var("scheduler_event_exit_code").length()>0){
exitCode=parameters.var("scheduler_event_exit_code");
spooler_log.debug1("...parameter[scheduler_event_exit_code]: "+exitCode);
parameterNames.add("scheduler_event_exit_code");
}
}
parameterNames.add("scheduler_event_class");
spooler_log.debug1("...parameter[scheduler_event]: "+eventClass);
if (parameters.var("scheduler_event_id")!=null && parameters.var("scheduler_event_id").length()>0){
eventId=parameters.var("scheduler_event_id");
spooler_log.debug1("...parameter[scheduler_event_id]: "+eventId);
parameterNames.add("scheduler_event_id");
}
if (parameters.var("supervisor_job_chain")!=null && parameters.var("supervisor_job_chain").length()>0){
supervisorJobChain=parameters.var("supervisor_job_chain");
spooler_log.debug1("...parameter[supervisor_job_chain]: "+supervisorJobChain);
parameterNames.add("supervisor_job_chain");
}
if (parameters.var("scheduler_event_expires")!=null && parameters.var("scheduler_event_expires").length()>0){
expires=parameters.var("scheduler_event_expires");
spooler_log.debug1("...parameter[scheduler_event_expires]: "+expires);
parameterNames.add("scheduler_event_expires");
}
if (parameters.var("scheduler_event_expiration_cycle")!=null && parameters.var("scheduler_event_expiration_cycle").length()>0){
expCycle=parameters.var("scheduler_event_expiration_cycle");
spooler_log.debug1("...parameter[scheduler_event_expiration_cycle]: "+expCycle);
parameterNames.add("scheduler_event_expiration_cycle");
}
if (parameters.var("scheduler_event_expiration_period")!=null && parameters.var("scheduler_event_expiration_period").length()>0){
expPeriod=parameters.var("scheduler_event_expiration_period");
spooler_log.debug1("...parameter[scheduler_event_expiration_period]: "+expPeriod);
parameterNames.add("scheduler_event_expiration_period");
}
if (parameters.var("scheduler_event_handler_host")!=null && parameters.var("scheduler_event_handler_host").length()>0){
eventHandlerHost=parameters.var("scheduler_event_handler_host");
spooler_log.debug1("...parameter[scheduler_event_handler_host]: "+eventHandlerHost);
parameterNames.add("scheduler_event_handler_host");
}
if (parameters.var("scheduler_event_handler_port")!=null && parameters.var("scheduler_event_handler_port").length()>0){
eventHandlerTCPPort=Integer.parseInt(parameters.var("scheduler_event_handler_port"));
spooler_log.debug1("...parameter[scheduler_event_handler_port]: "+eventHandlerTCPPort);
parameterNames.add("scheduler_event_handler_port");
}
if (expires.length()==0 && (expCycle.length()>0 || expPeriod.length()>0)){
Calendar exp = JobSchedulerEventJob.calculateExpirationDate(expCycle, expPeriod);
expires = SOSDate.getTimeAsString(exp.getTime());
}
// use all other parameters as event parameters:
String[] paramNames = parameters.names().split(";");
for (int i = 0; i < paramNames.length; i++) {
String paramName = paramNames[i];
if (!parameterNames.contains(paramName)){
String paramValue = parameters.var(paramName);
spooler_log.debug1("...event parameter["+paramName+"]: "+paramValue);
eventParameters.put(paramName, paramValue);
}
}