/** */ @GET @Path("/jobs/mins/{mins}/{tomins}") @Produces(MediaType.APPLICATION_JSON) public Response getJobByIdMins(@PathParam("mins") int mins, @PathParam("tomins") int tomins) { List<LGJob> jobs = Utils.getJobManager().getAllByMins(mins, tomins); if (Utils.getLemongraph().client == null) { return Response.status(404).entity("Not found").build(); } JSONObject ob = new JSONObject(); for (LGJob job : jobs) { ob.put(job.getJobId(),job.toJson()); } return Response.status(200).entity(ob.toString()).build(); }
/** */ @GET @Deprecated @Path("/jobs/days/olderthan/{days}") @Produces(MediaType.APPLICATION_JSON) public Response getJobByIdOlderThanDays(@PathParam("days") int days) { List<LGJob> jobs = Utils.getJobManager().getAllByOlderThanDays(days); if (Utils.getLemongraph().client == null) { return Response.status(404).entity("Not found").build(); } JSONObject ob = new JSONObject(); for (LGJob job : jobs) { ob.put(job.getJobId(),job.toJson()); } return Response.status(200).entity(ob.toString()).build(); }
/** */ @GET @Path("/jobs/age/{days}") @Produces(MediaType.APPLICATION_JSON) public Response getJobByIdAge(@PathParam("days") int days) { List<LGJob> jobs = Utils.getJobManager().getAllByAge(days); if (Utils.getLemongraph().client == null) { return Response.status(404).entity("Not found").build(); } JSONObject ob = new JSONObject(); for (LGJob job : jobs) { ob.put(job.getJobId(),job.toJson()); } return Response.status(200).entity(ob.toString()).build(); }
/** Gets the last X jobs by create_date */ @GET @Path("/jobs/last/{count}") @Produces(MediaType.APPLICATION_JSON) public Response getJobsCount(@PathParam("count") int count) { List<LGJob> jobs = Utils.getJobManager().getLast(count); if (Utils.getLemongraph().client == null) { return Response.status(404).entity("Not found").build(); } JSONObject ob = new JSONObject(); for (LGJob job : jobs) { ob.put(job.getJobId(),job.toJson()); } return Response.status(200).entity(ob.toString(1)).build(); }
/** Just gives you jobId: status */ @GET @Path("jobs/status") @Produces(MediaType.APPLICATION_JSON) public Response jobActiveByStatus() { List<LGJob> jobs = Utils.getJobManager().getAllLimitFields("_id", "status", "reason"); JSONObject ob = new JSONObject(); for (LGJob job : jobs) { JSONObject t = new JSONObject(); t.put("status", job.getStatusString(job.getStatus())); t.put("reason", job.getReason()); ob.put(job.getJobId(), t); } return Response.status(200).entity(ob.toString(1)).build(); }
/** * Adds an entry to jobs to "taskErrorsMap"to jobId:[] * @param job LGJob * @param taskId String for task ID * @param error LGJobError * @throws NullPointerException thrown when failing to add task for valid LGJob */ public void updateErrorsForTask(LGJob job, String taskId, LGJobError error) throws NullPointerException { if(job != null && !job.getJobId().equals("") && !taskId.equals("")) { open(); job.addTaskError(taskId, error); MONGO_DB_STORE.appendToList("jobs", job.getJobId(), "taskErrorsMap." + taskId, error.toJson()); } }
public boolean updateJobConfig(LGJob job, JSONObject config) { job.setJobConfig(config.toString());//updates the job config on LGJob object open(); MONGO_DB_STORE.appendToJob(job.getJobId(), "jobConfig", config.toString());//updates the jobConfig in mongo return true; }
/** * Remove all errors from errorMap by TaskId * @param job LGJob * @param taskId String for task ID */ public static void removeErrorsForJobByTaskId(LGJob job, String taskId) { open(); job.removeErrorsByTaskId(taskId); JSONObject item = new JSONObject().put("taskId", taskId); MONGO_DB_STORE.removeFromList("jobs", job.getJobId(), "jobErrors", item); }
public HashMap<String, LGJob> getByJobIds(JSONArray jobIds) { Query<LGJob> query = createQuery().field("_id").hasAnyOf(jobIds); HashMap<String, LGJob> jobs = new HashMap<>(); Iterator queryIterator = query.iterator(); while(queryIterator.hasNext()) { LGJob job = (LGJob) queryIterator.next(); String jobId = job.getJobId(); jobs.put(jobId, job); } return jobs; }
public boolean deleteJob(LGJob job) { if (job.getStatus() == LGJob.STATUS_PROCESSING) { log.error("Delete Failed: job is in processing state."+job.getJobId()); return false; } open(); JOB_DAO.delete(job); return true; }
public static LGJob setStartTime(LGJob job) { String jobId = job.getJobId(); long startTime = System.currentTimeMillis(); job.setStartTime(startTime); open(); MONGO_DB_STORE.appendToJob(jobId, "startTime", startTime);;//updates the field in mongoDB return job; }
@Override public WriteResult delete(LGJob inJob) { LGJob lgjob = getByJobId(inJob.getJobId()); Map<String, LGTask> taskMap = lgjob.getTaskMap(); for (Map.Entry<String, LGTask> entry : taskMap.entrySet()) { LGTask lgt = entry.getValue(); this.deleteTaskFromJob(lgjob,lgt); } return super.delete(lgjob); }
public boolean hasJobExpired(LGJob lg) { // 0 means run forever if (lg.getTTL() <= 0) { return false; } long runTime = (System.currentTimeMillis() - lg.getStartTime())/1000; if (runTime > lg.getTTL()) { log.warn("Job:"+lg.getJobId()+" has EXPIRED"); setStatus(lg, LGJob.STATUS_EXPIRED); return true; } return false; }
public static void updateJobHistorySuccess(LGJob job, String taskId, int graphChanges, int maxGraphId, int numberOfNewTasksCreated, int currentId) { if (job == null || (taskId == null) || (taskId.equals("") || job.getJobId().equals(""))){ return; // Most likely a seed job.? } open(); LGTask lgt = TASK_DAO.getByTaskId(taskId); if (lgt == null) { return; } LGJobHistory history = new LGJobHistory(LGJobHistory.LGHISTORY_TYPE_TASK, "adapter", taskId, lgt.getAdapterName() + " completed task", lgt.getStartTime(), System.currentTimeMillis(), graphChanges, maxGraphId , numberOfNewTasksCreated, currentId); updateJobHistory(job, history); }
/** * Updates an LGJob's history field and updates the jobHistory entry in mongodb * @param job LGJob * @param history LGJobHistory */ public static void updateJobHistory(LGJob job, LGJobHistory history) { open(); job.addHistory(history); JSONObject jHistory = history.toJson(); MONGO_DB_STORE.appendToList("jobs", job.getJobId(), "jobHistory", jHistory); }
/** * Handling new job errors * @param job LGJob * @param error LGJobError */ public static void updateErrorsForJob(LGJob job, LGJobError error) { open(); job.addError(error); JSONObject jError = error.toJson(); MONGO_DB_STORE.appendToList("jobs", job.getJobId(), "jobErrors", jError); }
/** Update graphActivity Value * @param job LGJob * @param graphActivity Int graph activity * */ public static void updateGraphActivity(LGJob job, int graphActivity) { if (job.getGraphActivity() < graphActivity) { open(); job.setGraphActivity(graphActivity); MONGO_DB_STORE.appendToJob(job.getJobId(), "graphActivity", graphActivity); } }
public static LGJob setEndTime(LGJob job) { String jobId = job.getJobId(); long endTime = System.currentTimeMillis(); job.setEndTime(endTime); long runningTime = job.calculateCurrentRunningTimeSeconds(); job.setTotalRunningTimeSeconds(runningTime); open(); MONGO_DB_STORE.appendToJob(jobId, "endTime", endTime);;//updates the field in mongoDB MONGO_DB_STORE.appendToJob(jobId, "totalRunningTimeSeconds", runningTime);;//updates the field in mongoDB return job; }
public void deleteTaskFromJob(LGJob jobIn, LGTask task) { LGJob job = getByJobId(jobIn.getJobId()); // Need to remove the reference first! job.delTask(task.getTaskId()); getDatastore().save(job); taskDAO.delete(task); }