private void WriteEstimateResult(String estimateResult) { DefaultOutputWriter outputWriter = getContext().getOutputWriter(); Map cost = JSON.parseObject(estimateResult, Map.class); Map<String, Object> kvs = (Map) ((Map) cost.get("Cost")).get("PAI"); String outputStr = ""; for (Map.Entry<String, Object> entry : kvs.entrySet()) { if ("Input".equalsIgnoreCase(entry.getKey())) { if (entry.getValue().toString().isEmpty()) { outputWriter.writeError("Estimate Failed, empty Input returned."); return; } outputStr += String.format("%s:%s Bytes\n", entry.getKey(), entry.getValue()); } else if ("WorkerNumber".equalsIgnoreCase(entry.getKey())) { if (entry.getValue().toString().isEmpty()) { outputWriter.writeError("Estimate Failed, empty WorkerNumber returned."); return; } outputStr += String.format("%s:%s", entry.getKey(), entry.getValue()); } } outputWriter.writeResult(outputStr); }
writer.writeDebug("ODPSConsole Start"); try { writer.writeError(ODPSConsoleConstants.FAILED_MESSAGE + e.getMessage()); if (StringUtils.isNullOrEmpty(e.getMessage())) { writer.writeError(StringUtils.stringifyException(e)); writer.writeDebug(e); writer.writeError(ODPSConsoleConstants.FAILED_MESSAGE + e.getMessage()); if (StringUtils.isNullOrEmpty(e.getMessage())) { writer.writeError(StringUtils.stringifyException(e)); writer.writeDebug(e); sessionContext.getOutputWriter().writeDebug("ODPSConsole End");
public void writeDebug(String str) { if (getSessionContext().isDebug()) { System.err.println("[DEBUG]:" + str); } }
public static void printModelInfo(DefaultOutputWriter writer, OfflineModel model) { writer.writeResult("\n+-------------------------------------------------+"); writer.writeResult("| Name: " + model.getName()); writer.writeResult("| Project: " + model.getProject()); writer.writeResult("| Owner: " + model.getOwner()); writer.writeResult("| CreateTime: " + ODPSConsoleUtils.formatDate(model.getCreatedTime())); writer.writeResult("| LastModifiedTime: " + ODPSConsoleUtils.formatDate(model.getLastModifiedTime())); if (model.getType() != null) { // in case of service is old and console is new writer.writeResult("| Type: " + model.getType()); } writer.writeResult("+-------------------------------------------------+\n"); System.out.flush(); }
private void reportSummary(Instance.TaskSummary taskSummary, DefaultOutputWriter writer) { // 输出summary信息 try { if (taskSummary == null || "".equals(taskSummary.toString().trim())) { return; } // print Summary String summary = taskSummary.getSummaryText(); writer.writeError("Summary:"); writer.writeError(summary); } catch (Exception e) { writer.writeError("can not get summary. " + e.getMessage()); } }
private void getOnlineUpdateInfo() { final String onlineCheckURL = updateURL + "/" + VERSION_SOURCE; try { URL url = new URL(onlineCheckURL); URLConnection conn = url.openConnection(); conn.setConnectTimeout(CONNECT_TIME_OUT); conn.setReadTimeout(READ_TIME_OUT); BufferedReader in = new BufferedReader(new InputStreamReader( conn.getInputStream(), "UTF-8")); String inputLine; StringBuilder content = new StringBuilder(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); Map updateInfos = JSON.parseObject(content.toString(), Map.class); Map node = ((Map)updateInfos.get("odpscmd")); onlineVersion = (String)node.get("version"); onlineDownloadURL = updateURL + (String)node.get("path"); } catch (Exception ignore) { context.getOutputWriter().writeDebug(ignore); // do nothing } }
private List<FuxiInstance> getCriticalPath(FuxiJob fuxiJob) { getWriter().writeResult(""); List<FuxiInstance> path = new ArrayList<FuxiInstance>(); List<FuxiTask> currTasks = new ArrayList<FuxiTask>(); // Assume only one final output task in whole fuxi job currTasks.add(fuxiJob.tasks.get(fuxiJob.tasks.size() - 1)); while (currTasks != null && currTasks.size() > 0) { FuxiTask slowestTask = null; FuxiInstance slowestInstance = null; for (FuxiTask task : currTasks) { for (FuxiInstance instance : task.instances) { if (slowestInstance == null || (instance.startTime + instance.duration) > (slowestInstance.startTime + slowestInstance.duration)) { slowestInstance = instance; slowestTask = task; } } } path.add(0, slowestInstance); currTasks = slowestTask == null ? null : slowestTask.upTasks; } return path; }
private void writeStatus(String status) { getWriter().writeError("OK"); if (status == null) { getWriter().writeError("please check instance status. [status " + instanceId + ";]"); } else { getWriter().writeError("instance " + instanceId + " has been " + status + " ;"); } }
private String getScreenDisplay(Shard shard) throws ODPSConsoleException { StringWriter out = new StringWriter(); PrintWriter w = new PrintWriter(out); try { if (shard != null) { w.println("+------------------------------------------------------------------------------------+"); w.printf("| ShardNum: %-56s |\n", shard.getShardNum()); w.println("+------------------------------------------------------------------------------------+"); } else { throw new ODPSConsoleException(ErrorCode.INVALID_COMMAND + "Shard does not exist"); } } catch (Exception e) { getContext().getOutputWriter().writeDebug("Invalid shard meta"); throw new ODPSConsoleException(ErrorCode.INVALID_RESPONSE + ": Invalid shard schema.", e); } w.flush(); w.close(); return out.toString(); } }
public void printInstanceId() { context.getOutputWriter().writeResult(""); context.getOutputWriter().writeError("ID = " + instance.getId()); }
public static void PrintModelInfo(DefaultOutputWriter writer, OnlineModel model) { writer.writeResult("\n+-------------------------------------------------+"); writer.writeResult("| Project: " + model.getProject()); writer.writeResult("| Name: " + model.getName()); writer.writeResult("| Version: " + model.getVersion()); writer.writeResult("| Owner: " + model.getOwner()); writer.writeResult("| CreateTime: " + ODPSConsoleUtils.formatDate(model.getCreatedTime())); writer.writeResult("| LastModifiedTime: " + ODPSConsoleUtils.formatDate(model.getLastModifiedTime())); writer.writeResult("| OfflineModelProject: " + model.getOfflineModelProject()); writer.writeResult("| OfflineModelName: " + model.getOfflineModelName()); writer.writeResult("| OfflineModelId: " + model.getOfflineModelId()); writer.writeResult("| ApplyResource: " + JSON.toJSONString(model.getApplyResource())); writer.writeResult("| UsedResource: " + JSON.toJSONString(model.getUsedResource())); writer.writeResult("| QOS: " + model.getApplyQOS()); writer.writeResult("| InstanceNum: " + model.getInstanceNum()); writer.writeResult("| Status: " + model.getStatus()); writer.writeResult("| ServiceTag: " + model.getServiceTag()); writer.writeResult("| ServiceName: " + model.getServiceName()); //writer.writeResult("| ServiceAddr: " + model.getServiceAddr()); writer.writeResult("| LastFailMsg: " + model.getFaliedMsg()); writer.writeResult("| ABTest: " + model.getABTest()); writer.writeResult("| PredictDesc: " + model.getPredictDesc()); writer.writeResult("| Runtime: " + model.getRuntime()); writer.writeResult("+-------------------------------------------------+\n"); System.out.flush(); }
@Override public void run() throws ODPSConsoleException, OdpsException { getWriter().writeError("Set config:"); Set<String> setKeySet = SetCommand.setMap.keySet(); for (Iterator<String> it = setKeySet.iterator(); it.hasNext();) { String key = it.next(); getWriter().writeError(key + "=" + SetCommand.setMap.get(key)); } getWriter().writeError("Alias config:"); Set<String> aliasKeySet = SetCommand.aliasMap.keySet(); for (Iterator<String> it = aliasKeySet.iterator(); it.hasNext();) { String key = it.next(); getWriter().writeError(key + "=" + SetCommand.aliasMap.get(key)); } }
throw new ODPSConsoleException(e.getMessage()); writer.writeError("retry " + retryTime); writer.writeDebug(StringUtils.stringifyException(e)); writer.writeError("OK");
context.getOutputWriter().writeDebug(e);
public void writeDebug(Throwable t) { if (getSessionContext().isDebug()) { System.err.print("[DEBUG]: "); t.printStackTrace(); } }
public void ShowXflows(String projectName) throws OdpsException, ODPSConsoleException { Odps odps = getCurrentOdps(); long size = 0; Iterator<XFlow> xflows = odps.xFlows().iterator(projectName, xflowOwner); getWriter().writeError(""); while(xflows.hasNext()) { ODPSConsoleUtils.checkThreadInterrupted(); XFlow xflow = xflows.next(); getWriter().writeResult(xflow.getOwner() + ":" + xflow.getName()); ++size; } getWriter().writeError(size + " xflows in project " + projectName + ".\n"); System.out.flush(); }
private void printInstances(List<FuxiInstance> instances) { for (FuxiInstance instance : instances) { String[] tokens = StringUtils.split(instance.id, '/'); String startTimeStr = "-"; String endTimeStr = "-"; if (instance.startTime > 0) { startTimeStr = ODPSConsoleUtils.formatDate(new Date(instance.startTime * 1000)); endTimeStr = ODPSConsoleUtils.formatDate(new Date((instance.startTime + instance.duration) * 1000)); } getWriter().writeResult( String.format(" %1$-20s%2$-25s%3$-25s%4$-15s%5$-15s%6$-18s", tokens[2], startTimeStr, endTimeStr, instance.duration + "s", instance.status, instance.IpAndPath.split(",")[0])); } }
public void printLogview() { String logviewUrl = ODPSConsoleUtils.generateLogView(odps, instance, context); if (!StringUtils.isNullOrEmpty(logviewUrl)) { context.getOutputWriter().writeError("Log view:"); context.getOutputWriter().writeError(logviewUrl); } }
writer.writeError("OK"); throw new ODPSConsoleException(e.getMessage()); writer.writeError("retry " + retryTime); writer.writeDebug(StringUtils.stringifyException(e));
@Override public void run() { try { InstanceProgressReporter reporter = new InstanceProgressReporter(context); reporter.report(); } catch (Exception e) { //ignore context.getExecutionContext().getOutputWriter() .writeDebug(String.format("%s: %s, %s", "Instance progress reporter error", e.getMessage(), StringUtils.stringifyException(e))); } }