public JSONObject getJobConfig(LGPayload payload) { JSONObject generic_job_config = payload.getJobConfig(); JSONObject new_job_config = new JSONObject(payload.getJobConfig().toString());//create a deep copy of job_config if(generic_job_config.has("adapters")) { JSONObject adapters = new JSONObject(generic_job_config.get("adapters").toString()); new_job_config.remove("adapters"); if(adapters.has(this.getAdapterName())) {//adapters section has entries for this adapter JSONObject unique = adapters.getJSONObject(this.getAdapterName()); Iterator<?> keys = unique.keys(); while(keys.hasNext()) { String key = keys.next().toString(); new_job_config.put(key, unique.get(key)); } } } return new_job_config; }
private void handleLgCommand(String cmd, LGJob job, LGPayload payload) { String jobId = job.getJobId(); JSONObject cmdConfig = payload.getJobConfig(); JSONObject cmdData; log.info("EXECUTE LG_INTERNAL_COMMAND: "+cmd+" job_id: " + jobId+ " coord_id: " + boltId + " data:" + cmdConfig.toString()); if (cmdConfig.has(LGConstants.LG_INTERNAL_DATA)) { cmdData = new JSONObject(cmdConfig.getString(LGConstants.LG_INTERNAL_DATA)); } else { log.error("LG_COMMAND missing LG_INTERNAL_DATA in payload.jobConfig! Aborting Command."); return; } if (graphStoreMode == GRAPH_STORE_INTERNAL) { log.info("Internal graph mode does not support LG_INTERNAL_COMMANDS"); } else if (graphStoreMode == GRAPH_STORE_LEMONGRAPH) { if (cmd.equalsIgnoreCase(LGConstants.LG_INTERNAL_OP_EXECUTE_ON_ADAPTERS )) { handleLgCommandPostAction(job, cmdData); } } }
/** * @param jobId LG job ID to send to * @param approvedAdapters List of approved adapter names * @param seedPayload LGPayload for seeding a new job * */ public void sendAddToJobToCommandController(String jobId, ArrayList<String> approvedAdapters, LGPayload seedPayload) throws Exception { openConnections(); int ttl = 0; if (seedPayload.getJobConfig().has("ttl")) { ttl = seedPayload.getJobConfig().getInt("ttl"); } try { LemonGraph.getGraph(jobId); //verify the job already exists in LemonGraph } catch(Exception e) { throw new Exception("job:"+jobId+" doesn't exist. First perform a job create. Error:"+e.getMessage()); } seedPayload.setJobId(jobId); LGCommand cmd = new LGCommand(LGCommand.COMMAND_TYPE_ADD, jobId, ttl, 255, approvedAdapters, seedPayload); channel.basicPublish("", LGConstants.LEMONGRENADE_COORDINATORCMD , new AMQP.BasicProperties.Builder().priority(LGConstants.QUEUE_PRIORITY_NEW_JOB).build() , cmd.toByteArray()); }
/** * See api/Job.java for complete description * @param jobId LG job ID to send to * @param approvedAdapters List of approved adapter names * @param seedPayload LGPayload to send to Command Controller */ public void sendPostActionCommandController(String jobId, ArrayList<String> approvedAdapters, LGPayload seedPayload) throws Exception { openConnections(); int ttl = 0; if (seedPayload.getJobConfig().has("ttl")) { ttl = seedPayload.getJobConfig().getInt("ttl"); } seedPayload.setJobId(jobId); LGCommand cmd = new LGCommand(LGCommand.COMMAND_TYPE_POST_ACTION, jobId, ttl, 255, approvedAdapters, seedPayload); channel.basicPublish("", LGConstants.LEMONGRENADE_COORDINATORCMD , new AMQP.BasicProperties.Builder().priority(LGConstants.QUEUE_PRIORITY_NEW_JOB).build() , cmd.toByteArray()); }
if (payload.getJobConfig().has(LGConstants.LG_INTERNAL_OP)) { String cmd = payload.getJobConfig().getString(LGConstants.LG_INTERNAL_OP); log.info("Processing lg_internal_op :" + cmd); handleLgCommand(cmd, job, payload);
public LGJob sendNewJobToCommandController(ArrayList<String> approvedAdapters, LGPayload seedPayload) throws Exception { openConnections(); int ttl = 0; if (seedPayload.getJobConfig().has("ttl")) { ttl = seedPayload.getJobConfig().getInt("ttl"); if ((graphStore != null) && (graphStore.equalsIgnoreCase("lemongraph"))) { try { jobId = LemonGraph.createGraph(jobId, seedPayload.getJobConfig()); //Adds new job to LEMONGRAPH and gets jobId } catch(Exception e) { throw e; LGJob job = new LGJob(jobId, approvedAdapters, seedPayload.getJobConfig());
log.info("Built new tasks list for job [" + job.getJobId() + "] taskList: " + newTasks.toString()); for (LGTask t : newTasks) { LGPayload newPayload = new LGPayload(payload.getJobId(), payload.getTaskId(), payload.getJobConfig()); newPayload.addRequestNode(updatedVersion); sendTaskToAdapter(job, t, newPayload);
JSONObject jconfig = lgp.getJobConfig(); String resetReason = ""; if (jconfig.has(LGConstants.LG_RESET_REASON)) {
JSONObject jconfig = lgp.getJobConfig();
LGJob job = new LGJob(jobId, incomingCmd.getAdapterList(), lgp.getJobConfig()); LGJobHistory lgHistory = new LGJobHistory(LGJobHistory.LGHISTORY_TYPE_COMMAND, "Add", "", "Add command received",System.currentTimeMillis(), 0, 0, 0 , 0, 0);
job = JobManager.getJob(jobId); } else { job = new LGJob(jobId, incomingCmd.getAdapterList(), lgp.getJobConfig()); JobManager.addJob(job);