private void printCoordAction(CoordinatorAction coordAction, boolean contains) { System.out.println("ID : " + maskIfNull(coordAction.getId())); System.out.println(RULER); System.out.println("Action Number : " + coordAction.getActionNumber()); System.out.println("Console URL : " + maskIfNull(coordAction.getConsoleUrl())); System.out.println("Error Code : " + maskIfNull(coordAction.getErrorCode())); System.out.println("Error Message : " + maskIfNull(coordAction.getErrorMessage())); System.out.println("External ID : " + maskIfNull(coordAction.getExternalId())); System.out.println("External Status : " + maskIfNull(coordAction.getExternalStatus())); System.out.println("Job ID : " + maskIfNull(coordAction.getJobId())); System.out.println("Tracker URI : " + maskIfNull(coordAction.getTrackerUri())); System.out.println("Created : " + maskDate(coordAction.getCreatedTime(), contains)); System.out.println("Nominal Time : " + maskDate(coordAction.getNominalTime(), contains)); System.out.println("Status : " + coordAction.getStatus()); System.out.println("Last Modified : " + maskDate(coordAction.getLastModifiedTime(), contains)); System.out.println("Missing Dependencies : " + maskIfNull(coordAction.getMissingDependencies())); System.out.println(RULER); }
private String getFirstMissingDependencies(CoordinatorAction action) { StringBuilder allDeps = new StringBuilder(); String missingDep = action.getMissingDependencies(); boolean depExists = false; if (missingDep != null && !missingDep.isEmpty()) { allDeps.append(missingDep.split(INSTANCE_SEPARATOR)[0]); depExists = true; } String pushDeps = action.getPushMissingDependencies(); if (pushDeps != null && !pushDeps.isEmpty()) { if(depExists) { allDeps.append(INSTANCE_SEPARATOR); } allDeps.append(pushDeps.split(INSTANCE_SEPARATOR)[0]); } return allDeps.toString(); }
private void printCoordActions(List<CoordinatorAction> actions) { if (actions != null && actions.size() > 0) { System.out.println("Action ID" + VERBOSE_DELIMITER + "Nominal Time"); System.out.println(RULER); for (CoordinatorAction action : actions) { System.out.println(maskIfNull(action.getId()) + VERBOSE_DELIMITER + maskDate(action.getNominalTime(), null,false)); } } else { System.out.println("No Actions match your criteria!"); } }
LOG.debug("coordJobInfo Status: {}", coordJobInfo.getStatus()); for (CoordinatorAction action : coordJobInfo.getActions()) { LOG.debug("coordJobInfo Action Id: {}", action.getId()); LOG.debug("coordJobInfo Action NominalTimeL: {}", action.getNominalTime()); LOG.debug("coordJobInfo Action Runconf: {}", action.getRunConf()); LOG.debug("coordJobInfo Action Status: {}", action.getStatus()); LOG.debug("coordJobInfo ActionConsoleURL: {}", action.getConsoleUrl()); LOG.debug("coordJobInfo ActionErrorMessage: {}", action.getErrorMessage());
System.out.println("Coord Action ID : " + maskIfNull(action.getId())); System.out.println("Action Status : " + action.getStatus()); System.out.println("External ID : " + maskIfNull(action.getExternalId())); System.out.println("Created Time : " + maskDate(action.getCreatedTime(), timeZoneId, false)); System.out.println("User : " + maskIfNull(bundle.getUser())); System.out.println("Error Message : " + maskIfNull(action.getErrorMessage())); System.out.println(RULER); .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), maskIfNull(action.getErrorMessage()))); System.out.println(RULER);
private void printCoordActionsStatus(List<CoordinatorAction> actions) { if (actions != null && actions.size() > 0) { System.out.println("Action ID" + VERBOSE_DELIMITER + "Nominal Time" + VERBOSE_DELIMITER + "Status"); System.out.println(RULER); for (CoordinatorAction action : actions) { System.out.println(maskIfNull(action.getId()) + VERBOSE_DELIMITER + maskDate(action.getNominalTime(), null, false) + VERBOSE_DELIMITER + maskIfNull(action.getStatus().name())); } } }
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(); }
assertTrue(actions.size() > 0); CoordinatorAction action = actions.get(0); System.out.println("status=" + action.getStatus()); String missingDeps = action.getMissingDependencies(); System.out.println("..Missing deps=" + missingDeps); if (!(missingDeps == null || missingDeps.equals(""))) {
assertEquals(bean.getMissingDependencies(), "!!${coord:latest(0)}#${coord:latest(-1)}"); CoordinatorJobBean job = getCoordJobs(jobId); Reader reader = IOUtils.getResourceAsReader("coord-multiple-input-instance4.xml", -1); bean = coordClient.getCoordActionInfo(actionId); sleep(1000); assertEquals(bean.getMissingDependencies(), "!!${coord:future(0, 1)}");
assertEquals(list.get(1).getCreatedTime(), service.startTime); assertEquals(list.get(3).getLastModifiedTime(), service.endTime); assertEquals(list.get(4).getCreatedTime(), service.startTime); assertEquals(list.get(4).getLastModifiedTime(), service.endTime); new HashMap<String, String[]>()); service = (DummyXLogStreamingService) services.get(XLogStreamingService.class); assertEquals(list.get(0).getCreatedTime(), service.startTime); assertEquals(list.get(4).getLastModifiedTime(), service.endTime); new HashMap<String, String[]>()); service = (DummyXLogStreamingService) services.get(XLogStreamingService.class); assertEquals(list.get(0).getCreatedTime(), service.startTime); assertEquals(list.get(4).getLastModifiedTime(), service.endTime); DateUtils.formatDateOozieTZ(list.get(1).getCreatedTime()) + "::" + DateUtils.formatDateOozieTZ(list.get(4).getLastModifiedTime()) + ",", RestConstants.JOB_LOG_DATE, new StringWriter(), new HashMap<String, String[]>()); service = (DummyXLogStreamingService) services.get(XLogStreamingService.class); assertEquals(list.get(1).getCreatedTime().toString(), service.startTime.toString()); assertEquals(list.get(4).getLastModifiedTime().toString(), service.endTime.toString()); DateUtils.formatDateOozieTZ(list.get(1).getCreatedTime()) + "::" + DateUtils.formatDateOozieTZ(list.get(2).getLastModifiedTime()) + "," + DateUtils.formatDateOozieTZ(list.get(3).getCreatedTime()) + "::" + DateUtils.formatDateOozieTZ(list.get(5).getLastModifiedTime()), RestConstants.JOB_LOG_DATE, new StringWriter(), new HashMap<String, String[]>()); service = (DummyXLogStreamingService) services.get(XLogStreamingService.class);
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())); } }
coordinatorJob.getStatus()); for (CoordinatorAction action : coordinatorJob.getActions()) { LOG.debug("bundleJobInfo Action Id: {}", action.getId()); LOG.debug("bundleJobInfo Action NominalTimeL: {}", action.getNominalTime()); LOG.debug("bundleJobInfo Action Runconf: {}", action.getRunConf()); LOG.debug("bundleJobInfo Action Status: {}", action.getStatus()); LOG.debug("bundleJobInfo ActionConsoleURL: {}", action.getConsoleUrl()); LOG.debug("bundleJobInfo ActionErrorMessage: {}", action.getErrorMessage());
System.out.println("Coord Action ID : " + maskIfNull(action.getId())); System.out.println("Action Status : " + action.getStatus()); System.out.println("External ID : " + maskIfNull(action.getExternalId())); System.out.println("Created Time : " + maskDate(action.getCreatedTime(), timeZoneId, false)); System.out.println("User : " + maskIfNull(bundle.getUser())); System.out.println("Error Message : " + maskIfNull(action.getErrorMessage())); System.out.println(RULER); .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), maskIfNull(action.getErrorMessage()))); System.out.println(RULER);
private void printCoordActionsStatus(List<CoordinatorAction> actions) { if (actions != null && actions.size() > 0) { System.out.println("Action ID" + VERBOSE_DELIMITER + "Nominal Time" + VERBOSE_DELIMITER + "Status"); System.out.println(RULER); for (CoordinatorAction action : actions) { System.out.println(maskIfNull(action.getId()) + VERBOSE_DELIMITER + maskDate(action.getNominalTime(), null, false) + VERBOSE_DELIMITER + maskIfNull(action.getStatus().name())); } } }
private void startCoordAction(final String jobId) throws CommandException, JPAExecutorException { new CoordMaterializeTransitionXCommand(jobId, 3600).call(); new CoordActionInputCheckXCommand(jobId + "@1", jobId).call(); new CoordPushDependencyCheckXCommand(jobId + "@1").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("Action status should not be waiting", actionBean.getStatus().equals(CoordinatorAction.Status.WAITING)); 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.READY); } }); CoordinatorJob coordJob = CoordJobQueryExecutor.getInstance().get(CoordJobQuery.GET_COORD_JOB, jobId); new CoordActionStartXCommand(actionBean.getId(), coordJob.getUser(), coordJob.getAppName(), actionBean.getJobId()).call(); }
private void printRerunCoordActions(List<CoordinatorAction> actions) { if (actions != null && actions.size() > 0) { System.out.println("Action ID" + VERBOSE_DELIMITER + "Nominal Time"); System.out.println(RULER); for (CoordinatorAction action : actions) { System.out.println(maskIfNull(action.getId()) + VERBOSE_DELIMITER + maskDate(action.getNominalTime(), false)); } } else { System.out.println("No Actions match your rerun criteria!"); } }
assertTrue(actions.size() > 0); CoordinatorAction action = actions.get(0); String missingDeps = action.getMissingDependencies(); System.out.println("..Missing deps=" + missingDeps); assertEquals(new URI(getTestCaseFileUri("workflows/2009/02/01/consume_me")), new URI(missingDeps));