/** {@inheritDoc} */ @Override protected MenuResult<TaskEntry> invoke(ManageTasks app) throws ClientException { TaskEntry taskEntry = null; try { taskEntry = app.getTaskClient().getTaskEntry(taskId); List<LocalizableMessage> logs = taskEntry.getLogMessages(); app.getOutputStream().println(); // Create a table for the last log entry TableBuilder table = new TableBuilder(); table.appendHeading(INFO_TASKINFO_FIELD_LOG.get()); if (logs != null && !logs.isEmpty()) { for (LocalizableMessage log : logs) { table.startRow(); table.appendCell(log); } } else { table.startRow(); table.appendCell(INFO_TASKINFO_NONE.get()); } StringWriter sw = new StringWriter(); TextTablePrinter tablePrinter = new TextTablePrinter(sw); tablePrinter.setTotalWidth(80); tablePrinter.setIndentWidth(INDENT); tablePrinter.setColumnWidth(0, 0); table.print(tablePrinter); app.getOutputStream().println(LocalizableMessage.raw(sw.getBuffer().toString())); app.getOutputStream().println(); } catch (Exception e) { app.println(ERR_TASKINFO_ACCESSING_LOGS.get(taskId, e.getMessage())); } return MenuResult.success(taskEntry); }
/** {@inheritDoc} */ @Override public MenuResult<Void> invoke(ManageTasks app) throws ClientException { if (taskIds != null && !taskIds.isEmpty()) { if (cancelableIndices != null && !cancelableIndices.isEmpty()) { // Prompt for the task number Integer index = null; String line = app.readLineOfInput( INFO_TASKINFO_CMD_CANCEL_NUMBER_PROMPT.get(cancelableIndices.get(0))); if (line.length() == 0) { line = String.valueOf(cancelableIndices.get(0)); } try { int i = Integer.parseInt(line); if (!cancelableIndices.contains(i)) { app.println(ERR_TASKINFO_NOT_CANCELABLE_TASK_INDEX.get(i)); } else { index = i - 1; } } catch (NumberFormatException nfe) { // ignore; } if (index != null) { String taskId = taskIds.get(index); try { CancelTask ct = new CancelTask(taskId); MenuResult<TaskEntry> result = ct.invoke(app); if (result.isSuccess()) { return MenuResult.success(); } else { return MenuResult.again(); } } catch (Exception e) { app.println(ERR_TASKINFO_CANCELING_TASK.get(taskId, e.getMessage())); return MenuResult.again(); } } else { app.println(ERR_TASKINFO_INVALID_MENU_KEY.get(line)); return MenuResult.again(); } } else { app.println(INFO_TASKINFO_NO_CANCELABLE_TASKS.get()); return MenuResult.cancel(); } } else { app.println(INFO_TASKINFO_NO_TASKS.get()); return MenuResult.cancel(); } }
/** {@inheritDoc} */ @Override public MenuResult<TaskEntry> invoke(ManageTasks app) throws ClientException { try { TaskEntry entry = app.getTaskClient().getTaskEntry(taskId); if (entry.isCancelable()) { app.getTaskClient().cancelTask(taskId); app.println(INFO_TASKINFO_CMD_CANCEL_SUCCESS.get(taskId)); return MenuResult.success(entry); } else { app.println(ERR_TASKINFO_TASK_NOT_CANCELABLE_TASK.get(taskId)); return MenuResult.again(); } } catch (Exception e) { app.println(ERR_TASKINFO_CANCELING_TASK.get(taskId, e.getMessage())); return MenuResult.again(); } }
/** {@inheritDoc} */ @Override public MenuResult<TaskEntry> invoke(ManageTasks app) throws ClientException { LocalizableMessage m; TaskEntry taskEntry; try { taskEntry = app.getTaskClient().getTaskEntry(taskId); TableBuilder table = new TableBuilder(); table.appendHeading(INFO_TASKINFO_DETAILS.get()); table.startRow(); table.appendCell(INFO_TASKINFO_FIELD_ID.get()); table.appendCell(taskEntry.getId()); table.startRow(); table.appendCell(INFO_TASKINFO_FIELD_TYPE.get()); table.appendCell(taskEntry.getType()); table.startRow(); table.appendCell(INFO_TASKINFO_FIELD_STATUS.get()); table.appendCell(taskEntry.getState()); table.startRow(); table.appendCell(INFO_TASKINFO_FIELD_SCHEDULED_START.get()); if (TaskState.isRecurring(taskEntry.getTaskState())) { m = taskEntry.getScheduleTab(); table.appendCell(m); } else { m = taskEntry.getScheduledStartTime(); if (m == null || m.equals(LocalizableMessage.EMPTY)) { table.appendCell(INFO_TASKINFO_IMMEDIATE_EXECUTION.get()); } else { table.appendCell(m); } table.startRow(); table.appendCell(INFO_TASKINFO_FIELD_ACTUAL_START.get()); table.appendCell(taskEntry.getActualStartTime()); table.startRow(); table.appendCell(INFO_TASKINFO_FIELD_COMPLETION_TIME.get()); table.appendCell(taskEntry.getCompletionTime()); } writeMultiValueCells( table, INFO_TASKINFO_FIELD_DEPENDENCY.get(), taskEntry.getDependencyIds()); table.startRow(); table.appendCell(INFO_TASKINFO_FIELD_FAILED_DEPENDENCY_ACTION.get()); m = taskEntry.getFailedDependencyAction(); table.appendCell(m != null ? m : INFO_TASKINFO_NONE.get()); writeMultiValueCells( table, INFO_TASKINFO_FIELD_NOTIFY_ON_COMPLETION.get(), taskEntry.getCompletionNotificationEmailAddresses(), INFO_TASKINFO_NONE_SPECIFIED.get()); writeMultiValueCells( table, INFO_TASKINFO_FIELD_NOTIFY_ON_ERROR.get(), taskEntry.getErrorNotificationEmailAddresses(), INFO_TASKINFO_NONE_SPECIFIED.get()); StringWriter sw = new StringWriter(); TextTablePrinter tablePrinter = new TextTablePrinter(sw); tablePrinter.setTotalWidth(80); tablePrinter.setIndentWidth(INDENT); tablePrinter.setColumnWidth(1, 0); table.print(tablePrinter); app.getOutputStream().println(); app.getOutputStream().println(LocalizableMessage.raw(sw.getBuffer().toString())); // Create a table for the task options table = new TableBuilder(); table.appendHeading(INFO_TASKINFO_OPTIONS.get(taskEntry.getType())); Map<LocalizableMessage, List<String>> taskSpecificAttrs = taskEntry.getTaskSpecificAttributeValuePairs(); for (LocalizableMessage attrName : taskSpecificAttrs.keySet()) { table.startRow(); table.appendCell(attrName); List<String> values = taskSpecificAttrs.get(attrName); if (!values.isEmpty()) { table.appendCell(values.get(0)); } if (values.size() > 1) { for (int i = 1; i < values.size(); i++) { table.startRow(); table.appendCell(); table.appendCell(values.get(i)); } } } sw = new StringWriter(); tablePrinter = new TextTablePrinter(sw); tablePrinter.setTotalWidth(80); tablePrinter.setIndentWidth(INDENT); tablePrinter.setColumnWidth(1, 0); table.print(tablePrinter); app.getOutputStream().println(LocalizableMessage.raw(sw.getBuffer().toString())); // Print the last log message if any List<LocalizableMessage> logs = taskEntry.getLogMessages(); if (logs != null && !logs.isEmpty()) { // Create a table for the last log entry table = new TableBuilder(); table.appendHeading(INFO_TASKINFO_FIELD_LAST_LOG.get()); table.startRow(); table.appendCell(logs.get(logs.size() - 1)); sw = new StringWriter(); tablePrinter = new TextTablePrinter(sw); tablePrinter.setTotalWidth(80); tablePrinter.setIndentWidth(INDENT); tablePrinter.setColumnWidth(0, 0); table.print(tablePrinter); app.getOutputStream().println(LocalizableMessage.raw(sw.getBuffer().toString())); } app.getOutputStream().println(); } catch (Exception e) { app.println(ERR_TASKINFO_RETRIEVING_TASK_ENTRY.get(taskId, e.getMessage())); return MenuResult.again(); } return MenuResult.success(taskEntry); }