LOG.debug("Workflow job running ..."); LOG.debug("coordJobInfo Try: {}", i); LOG.debug("coordJobInfo StartTime: {}", coordJobInfo.getStartTime()); LOG.debug("coordJobInfo NextMaterizedTime: {}", coordJobInfo.getNextMaterializedTime()); LOG.debug("coordJobInfo EndTime: {}", coordJobInfo.getEndTime()); LOG.debug("coordJobInfo Frequency: {}", coordJobInfo.getFrequency()); LOG.debug("coordJobInfo ConsoleURL: {}", coordJobInfo.getConsoleUrl()); LOG.debug("coordJobInfo Status: {}", coordJobInfo.getStatus()); for (CoordinatorAction action : coordJobInfo.getActions()) { LOG.debug("coordJobInfo Action Id: {}", action.getId()); LOG.debug("coordJobInfo Action NominalTimeL: {}", action.getErrorMessage()); if (coordJobInfo.getStatus() == Job.Status.RUNNING) { continue; } else if (coordJobInfo.getStatus() == Job.Status.PREMATER || coordJobInfo.getStatus() == Job.Status.PREP) {
System.out.println(maskIfNull(job.getId()) + VERBOSE_DELIMITER + maskIfNull(job.getAppName()) + VERBOSE_DELIMITER + maskIfNull(job.getAppPath()) + VERBOSE_DELIMITER + maskIfNull(job.getConsoleUrl()) + VERBOSE_DELIMITER + maskIfNull(job.getUser()) + VERBOSE_DELIMITER + maskIfNull(job.getGroup()) + VERBOSE_DELIMITER + job.getConcurrency() + VERBOSE_DELIMITER + job.getFrequency() + VERBOSE_DELIMITER + job.getTimeUnit() + VERBOSE_DELIMITER + maskIfNull(job.getTimeZone()) + VERBOSE_DELIMITER + job.getTimeout() + VERBOSE_DELIMITER + maskDate(job.getStartTime(), timeZoneId, verbose) + VERBOSE_DELIMITER + maskDate(job.getNextMaterializedTime(), timeZoneId, verbose) + VERBOSE_DELIMITER + job.getStatus() + VERBOSE_DELIMITER + maskDate(job.getLastActionTime(), timeZoneId, verbose) + VERBOSE_DELIMITER + maskDate(job.getEndTime(), timeZoneId, verbose)); System.out.println(String.format(COORD_JOBS_FORMATTER, maskIfNull(job.getId()), maskIfNull(job .getAppName()), job.getStatus(), job.getFrequency(), job.getTimeUnit(), maskDate(job .getStartTime(), timeZoneId, verbose), maskDate(job.getNextMaterializedTime(), timeZoneId, verbose)));
private void getCoordJob(final File outputDir, final String jobId, int maxChildActions) { if (jobId == null || !isCoordinator(jobId)) { return; } try { System.out.print("Getting Details for " + jobId + "..."); final File coordOutputDir = new File(outputDir, jobId); if (!createOutputDirectory(coordOutputDir)) { return; } final CoordinatorJob job = client.getCoordJobInfo(jobId); try (DiagBundleEntryWriter bundleEntryWriter = new DiagBundleEntryWriter(coordOutputDir, "info.txt")) { persistCoordinatorJobInfo(maxChildActions, job, bundleEntryWriter); } storeCommonDetails(coordOutputDir, jobId, "coordinator", job.getConf()); System.out.println("Done"); final List<CoordinatorAction> coordinatorActions = job.getActions(); for (int i = 0; i != coordinatorActions.size() && i < maxChildActions; ++i) { storeWorkflowJobDetails(outputDir, coordinatorActions.get(i).getExternalId(), maxChildActions); } } catch (IOException | OozieClientException e) { System.err.printf(String.format("Exception occurred during the retrieval of coordinator information:%s%n", e.getMessage())); } }
public List<OozieResourceEntity> joinOozieResourceSensitivity(String site, List<CoordinatorJob> coordinatorJobs) { OozieSensitivityMetadataDAO oozieSensitivityMetadataDAO = new OozieSensitivityMetadataDAOImpl(); Map<String, String> sensitivityMap = oozieSensitivityMetadataDAO.getOozieSensitivityMap(site); LOG.info("Joining Resource with Sensitivity data .."); List<OozieResourceEntity> result = new ArrayList<>(); for (CoordinatorJob eachJob : coordinatorJobs) { OozieResourceEntity entity = new OozieResourceEntity(eachJob.getId(), eachJob.getAppName(), sensitivityMap.get(eachJob.getId())); result.add(entity); } return result; }
private void printBundleJob(BundleJob bundleJob, boolean localtime, boolean verbose) { System.out.println("Job ID : " + bundleJob.getId()); System.out.println(RULER); List<CoordinatorJob> coordinators = bundleJob.getCoordinators(); System.out.println("Job Name : " + maskIfNull(bundleJob.getAppName())); System.out.println("App Path : " + maskIfNull(bundleJob.getAppPath())); System.out.println("Status : " + bundleJob.getStatus()); System.out.println("Kickoff time : " + bundleJob.getKickoffTime()); System.out.println(RULER); System.out.println(String.format(BUNDLE_COORD_JOBS_FORMATTER, "Job ID", "Status", "Freq", "Unit", "Started", "Next Materialized")); System.out.println(RULER); for (CoordinatorJob job : coordinators) { System.out.println(String.format(BUNDLE_COORD_JOBS_FORMATTER, maskIfNull(job.getId()), job.getStatus(), job .getFrequency(), job.getTimeUnit(), maskDate(job.getStartTime(), localtime), maskDate(job .getNextMaterializedTime(), localtime))); System.out.println(RULER); } }
bundleEntryWriter.writeString("COORDINATOR\n") .writeString("-----------\n") .writeStringValue("Coordinator Id : ", job.getId()) .writeStringValue("Name : ", job.getAppName()) .writeStringValue("App Path : ", job.getAppPath()) .writeStringValue("User : ", job.getUser()) .writeStringValue("ACL : ", job.getAcl()) .writeStringValue("Status : ", job.getStatus().toString()) .writeStringValue("Console URL : ", job.getConsoleUrl()) .writeStringValue("External Id : ", job.getExternalId()) .writeStringValue("Bundle Id : ", job.getBundleId()) .writeStringValue("Frequency : ", job.getFrequency()) .writeStringValue("Time Unit : ", job.getTimeUnit().toString()) .writeDateValue("Start Time : ", job.getStartTime()) .writeDateValue("End Time : ", job.getEndTime()) .writeDateValue("Last Action Time : ", job.getLastActionTime()) .writeDateValue("Next Materialized Time : ", job.getNextMaterializedTime()) .writeDateValue("Pause Time : ", job.getPauseTime()) .writeStringValue("Timezone : ", job.getTimeZone()) .writeIntValue("Concurrency : ", job.getConcurrency()) .writeIntValue("Timeout : ", job.getTimeout()) .writeStringValue("Execution Order : ", job.getExecutionOrder().toString()) .writeIntValue("Action Count : ", job.getActions().size()) .writeNewLine() .writeString("ACTIONS\n") final List<CoordinatorAction> coordinatorActions = job.getActions(); for (int i = 0; i < maxChildActions && i != coordinatorActions.size(); ++i) { final CoordinatorAction action = coordinatorActions.get(i);
@VisibleForTesting void printCoordJob(CoordinatorJob coordJob, String timeZoneId, boolean verbose) { System.out.println("Job ID : " + coordJob.getId()); List<CoordinatorAction> actions = coordJob.getActions(); System.out.println("Job Name : " + maskIfNull(coordJob.getAppName())); System.out.println("App Path : " + maskIfNull(coordJob.getAppPath())); System.out.println("Status : " + coordJob.getStatus()); System.out.println("Start Time : " + maskDate(coordJob.getStartTime(), timeZoneId, false)); System.out.println("End Time : " + maskDate(coordJob.getEndTime(), timeZoneId, false)); System.out.println("Pause Time : " + maskDate(coordJob.getPauseTime(), timeZoneId, false)); System.out.println("Concurrency : " + coordJob.getConcurrency()); System.out.println(RULER);
private void printCoordJob(CoordinatorJob coordJob, boolean localtime, boolean verbose) { System.out.println("Job ID : " + coordJob.getId()); List<CoordinatorAction> actions = coordJob.getActions(); System.out.println("Job Name : " + maskIfNull(coordJob.getAppName())); System.out.println("App Path : " + maskIfNull(coordJob.getAppPath())); System.out.println("Status : " + coordJob.getStatus()); System.out.println(RULER);
@Override public boolean evaluate() throws Exception { Job.Status status = client.getCoordJobInfo(jobId).getStatus(); return status != Job.Status.PREP; } });
assertTrue(!(job.getStatus().equals(CoordinatorJob.Status.PREP))); List<CoordinatorAction> actions = job.getActions(); assertTrue(actions.size() > 0);
public Void call() throws Exception { String oozieUrl = getContextURL(); OozieClient wc = new OozieClient(oozieUrl); String jobId = MockDagEngineService.JOB_ID + "1" + MockDagEngineService.JOB_ID_END; assertEquals(RestConstants.JOB_SHOW_LOG, wc.getJobLog(jobId)); WorkflowAction wfAction = wc.getWorkflowActionInfo(jobId); assertEquals(jobId, wfAction.getId()); CoordinatorJob job = wc.getCoordJobInfo(MockCoordinatorEngineService.JOB_ID + "1" + MockCoordinatorEngineService.JOB_ID_END); assertEquals("group", job.getAcl()); assertEquals("RUNNING", job.getStatus().toString()); assertEquals("user", job.getUser()); assertEquals(MockCoordinatorEngineService.offset, new Integer(1)); assertEquals(MockCoordinatorEngineService.length, new Integer(1000)); BundleJob bundleJob = wc.getBundleJobInfo(jobId); assertEquals("SUCCEEDED", bundleJob.getStatus().toString()); assertEquals("user", bundleJob.getUser()); return null; } });
private void startCoordAction(final String jobId, final CoordinatorAction.Status coordActionStatus) throws CommandException, JPAExecutorException { new CoordMaterializeTransitionXCommand(jobId, 3600).call(); new CoordActionInputCheckXCommand(jobId + "@1", jobId).call(); waitFor(50 * 1000, new Predicate() { public boolean evaluate() throws Exception { CoordinatorActionBean actionBean = CoordActionQueryExecutor.getInstance().get( CoordActionQuery.GET_COORD_ACTION, jobId + "@1"); return !actionBean.getStatus().equals(CoordinatorAction.Status.WAITING); } }); CoordinatorAction actionBean = CoordActionQueryExecutor.getInstance().get(CoordActionQuery.GET_COORD_ACTION, jobId + "@1"); assertFalse(actionBean.getStatus().equals(coordActionStatus)); CoordinatorJob coordJob = CoordJobQueryExecutor.getInstance().get(CoordJobQuery.GET_COORD_JOB, jobId); new CoordActionStartXCommand(actionBean.getId(), coordJob.getUser(), coordJob.getAppName(), actionBean.getJobId()).call(); }
private void _testGetJob(String jobId, String appPath) throws Exception { CoordinatorEngine ce = new CoordinatorEngine(getTestUser()); CoordinatorJob job = ce.getCoordJob(jobId); assertEquals(jobId, job.getId()); assertEquals(job.getAppPath(), appPath); }
private CoordinatorActionBean createCoordinatorActionBean(CoordinatorJob job) throws IOException { CoordinatorActionBean actionBean = new CoordinatorActionBean(); String actionId = Services.get().get(UUIDService.class).generateChildId(job.getId(), "1"); actionBean.setJobId(job.getId()); actionBean.setId(actionId); Configuration jobConf = new XConfiguration(new StringReader(job.getConf())); actionBean.setRunConf(XmlUtils.prettyPrint(jobConf).toString()); return actionBean; }
void storeLastCoordinators(final File outputDir, int numCoordinators, int maxChildActions) { if (numCoordinators == 0) { return; } try { final List<CoordinatorJob> jobs = client.getCoordJobsInfo(null, 0, numCoordinators); for (CoordinatorJob job : jobs) { getCoordJob(outputDir, job.getId(), maxChildActions); } } catch (OozieClientException e) { System.err.printf("Exception occurred during the retrieval of information on the last %d coordinator(s): %s.%n", numCoordinators, e.getMessage()); } }
public boolean evaluate() throws Exception { CoordinatorJob job = ce.getCoordJob(jobId); List<CoordinatorAction> actions = job.getActions(); return actions.size() > 0; } });
System.out.println("Coordinator Name : " + maskIfNull(coord.getAppName())); System.out.println("Coord Action ID : " + maskIfNull(action.getId())); System.out.println("Action Status : " + action.getStatus()); System.out .println(String.format(BULK_RESPONSE_FORMATTER, maskIfNull(bundle.getAppName()), maskIfNull(bundle.getId()), maskIfNull(coord.getAppName()), maskIfNull(action.getId()), action.getStatus(), maskIfNull(action.getExternalId()), maskDate(action.getCreatedTime(), timeZoneId, false),
System.out.println(wc.getCoordJobInfo(commandLine.getOptionValue(CONFIG_CONTENT_OPTION)).getConf());
@VisibleForTesting void printCoordJob(CoordinatorJob coordJob, String timeZoneId, boolean verbose) { System.out.println("Job ID : " + coordJob.getId()); List<CoordinatorAction> actions = coordJob.getActions(); System.out.println("Job Name : " + maskIfNull(coordJob.getAppName())); System.out.println("App Path : " + maskIfNull(coordJob.getAppPath())); System.out.println("Status : " + coordJob.getStatus()); System.out.println("Start Time : " + maskDate(coordJob.getStartTime(), timeZoneId, false)); System.out.println("End Time : " + maskDate(coordJob.getEndTime(), timeZoneId, false)); System.out.println("Pause Time : " + maskDate(coordJob.getPauseTime(), timeZoneId, false)); System.out.println("Concurrency : " + coordJob.getConcurrency()); System.out.println(RULER);
private void printBundleJob(BundleJob bundleJob, boolean localtime, boolean verbose) { System.out.println("Job ID : " + bundleJob.getId()); System.out.println(RULER); List<CoordinatorJob> coordinators = bundleJob.getCoordinators(); System.out.println("Job Name : " + maskIfNull(bundleJob.getAppName())); System.out.println("App Path : " + maskIfNull(bundleJob.getAppPath())); System.out.println("Status : " + bundleJob.getStatus()); System.out.println("Kickoff time : " + bundleJob.getKickoffTime()); System.out.println(RULER); System.out.println(String.format(BUNDLE_COORD_JOBS_FORMATTER, "Job ID", "Status", "Freq", "Unit", "Started", "Next Materialized")); System.out.println(RULER); for (CoordinatorJob job : coordinators) { System.out.println(String.format(BUNDLE_COORD_JOBS_FORMATTER, maskIfNull(job.getId()), job.getStatus(), job .getFrequency(), job.getTimeUnit(), maskDate(job.getStartTime(), localtime), maskDate(job .getNextMaterializedTime(), localtime))); System.out.println(RULER); } }