@GET @Path("/jobs") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public JobsInfo getJobs(@Context HttpServletRequest hsr) { init(); JobsInfo allJobs = new JobsInfo(); for (Job job : appCtx.getAllJobs().values()) { // getAllJobs only gives you a partial we want a full Job fullJob = appCtx.getJob(job.getID()); if (fullJob == null) { continue; } allJobs.add(new JobInfo(fullJob, hasAccess(fullJob, hsr))); } return allJobs; }
@GET @Path("/jobs/{jobid}") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML }) public JobInfo getJob(@Context HttpServletRequest hsr, @PathParam("jobid") String jid) { init(); Job job = getJobFromJobIdString(jid, appCtx); return new JobInfo(job, hasAccess(job, hsr)); }
@Override protected void render(Block html) { TBODY<TABLE<Hamlet>> tbody = html. h2("Active Jobs"). table("#jobs"). thead(). tr(). th(".id", "Job ID"). th(".name", "Name"). th(".state", "State"). th("Map Progress"). th("Maps Total"). th("Maps Completed"). th("Reduce Progress"). th("Reduces Total"). th("Reduces Completed")._()._(). tbody(); for (Job j : appContext.getAllJobs().values()) { JobInfo job = new JobInfo(j, false); tbody. tr(). td(). span().$title(String.valueOf(job.getId()))._(). // for sorting a(url("job", job.getId()), job.getId())._(). td(job.getName()). td(job.getState()). td(). span().$title(job.getMapProgressPercent())._(). // for sorting div(_PROGRESSBAR). $title(join(job.getMapProgressPercent(), '%')). // tooltip div(_PROGRESSBAR_VALUE). $style(join("width:", job.getMapProgressPercent(), '%'))._()._()._(). td(String.valueOf(job.getMapsTotal())). td(String.valueOf(job.getMapsCompleted())). td(). span().$title(job.getReduceProgressPercent())._(). // for sorting div(_PROGRESSBAR). $title(join(job.getReduceProgressPercent(), '%')). // tooltip div(_PROGRESSBAR_VALUE). $style(join("width:", job.getReduceProgressPercent(), '%'))._()._()._(). td(String.valueOf(job.getReducesTotal())). td(String.valueOf(job.getReducesCompleted()))._(); } tbody._()._(); }