/** * Deletes all the duplicate NodeInfo by discarding the old instances. * * @param nodes a list of NodeInfo to check for duplicates * @return a NodesInfo that contains a list of NodeInfos without duplicates */ public static NodesInfo deleteDuplicateNodesInfo(ArrayList<NodeInfo> nodes) { NodesInfo nodesInfo = new NodesInfo(); Map<String, NodeInfo> nodesMap = new LinkedHashMap<>(); for (NodeInfo node : nodes) { String nodeId = node.getNodeId(); // If the node already exists, it could be an old instance if (nodesMap.containsKey(nodeId)) { // Check if the node is an old instance if (nodesMap.get(nodeId).getLastHealthUpdate() < node .getLastHealthUpdate()) { nodesMap.put(node.getNodeId(), node); } } else { nodesMap.put(node.getNodeId(), node); } } nodesInfo.addAll(new ArrayList<NodeInfo>(nodesMap.values())); return nodesInfo; }
NodeInfo info = new NodeInfo(ni, sched); int usedMemory = (int) info.getUsedMemory(); int availableMemory = (int) info.getAvailableMemory(); TR<TBODY<TABLE<Hamlet>>> row = tbody.tr().td(StringUtils.join(",", info.getNodeLabels())) .td(info.getRack()).td(info.getState()).td(info.getNodeId()); if (isInactive) { row.td()._("N/A")._(); } else { String httpAddress = info.getNodeHTTPAddress(); row.td().a("//" + httpAddress, httpAddress)._(); row.td().br().$title(String.valueOf(info.getLastHealthUpdate()))._() ._(Times.format(info.getLastHealthUpdate()))._() .td(info.getHealthReport()) .td(String.valueOf(info.getNumContainers())).td().br() .$title(String.valueOf(usedMemory))._() ._(StringUtils.byteDesc(usedMemory * BYTES_IN_MB))._().td().br() .$title(String.valueOf(availableMemory))._() ._(StringUtils.byteDesc(availableMemory * BYTES_IN_MB))._() .td(String.valueOf(info.getUsedVirtualCores())) .td(String.valueOf(info.getAvailableVirtualCores())) .td(ni.getNodeManagerVersion())._();
NodeInfo info = new NodeInfo(ni, sched); int usedMemory = (int) info.getUsedMemory(); int availableMemory = (int) info.getAvailableMemory(); nodeTableData.append("[\"") .append(StringUtils.join(",", info.getNodeLabels())).append("\",\"") .append(info.getRack()).append("\",\"").append(info.getState()) .append("\",\"").append(info.getNodeId()); if (isInactive) { nodeTableData.append("\",\"").append("N/A").append("\",\""); } else { String httpAddress = info.getNodeHTTPAddress(); nodeTableData.append("\",\"<a ").append("href='" + "//" + httpAddress) .append("'>").append(httpAddress).append("</a>\",").append("\""); .append(String.valueOf(info.getLastHealthUpdate())).append("'>") .append(Times.format(info.getLastHealthUpdate())).append("\",\"") .append(info.getHealthReport()).append("\",\"") .append(String.valueOf(info.getNumContainers())).append("\",\"") .append(info.getAllocationTagsSummary()).append("\",\"") .append("<br title='").append(String.valueOf(usedMemory)) .append("'>").append(StringUtils.byteDesc(usedMemory * BYTES_IN_MB)) .append(String.valueOf(availableMemory)).append("'>") .append(StringUtils.byteDesc(availableMemory * BYTES_IN_MB)) .append("\",\"").append(String.valueOf(info.getUsedVirtualCores())) .append("\",\"") .append(String.valueOf(info.getAvailableVirtualCores())) .append("\",\"");
if (nodeInfo == null || nodeInfo.getLastHealthUpdate() < nodeResponse.getLastHealthUpdate()) { nodeInfo = nodeResponse;
int usedMemory = (int) info.getUsedMemory(); int availableMemory = (int) info.getAvailableMemory(); TR<TBODY<TABLE<Hamlet>>> row = tbody.tr(); row.td().__(StringUtils.join(",", info.getNodeLabels())).__(); row.td().__(info.getRack()).__(); row.td().__(info.getState()).__(); row.td().__(info.getNodeId()).__(); boolean isInactive = false; if (isInactive) { row.td().__("N/A").__(); } else { String httpAddress = info.getNodeHTTPAddress(); row.td().a("//" + httpAddress, httpAddress).__(); row.td().br().$title(String.valueOf(info.getLastHealthUpdate())).__() .__(Times.format(info.getLastHealthUpdate())).__() .td(info.getHealthReport()) .td(String.valueOf(info.getNumContainers())).td().br() .$title(String.valueOf(usedMemory)).__() .__(StringUtils.byteDesc(usedMemory * BYTES_IN_MB)).__().td().br() .$title(String.valueOf(availableMemory)).__() .__(StringUtils.byteDesc(availableMemory * BYTES_IN_MB)).__() .td(String.valueOf(info.getUsedVirtualCores())) .td(String.valueOf(info.getAvailableVirtualCores())) .td(info.getVersion()).__();
NodeInfo info = new NodeInfo(ni, sched); int usedMemory = (int) info.getUsedMemory(); int availableMemory = (int) info.getAvailableMemory(); TR<TBODY<TABLE<Hamlet>>> row = tbody.tr().td(StringUtils.join(",", info.getNodeLabels())) .td(info.getRack()).td(info.getState()).td(info.getNodeId()); if (isInactive) { row.td()._("N/A")._(); } else { String httpAddress = info.getNodeHTTPAddress(); row.td().a("//" + httpAddress, httpAddress)._(); row.td().br().$title(String.valueOf(info.getLastHealthUpdate()))._() ._(Times.format(info.getLastHealthUpdate()))._() .td(info.getHealthReport()) .td(String.valueOf(info.getNumContainers())).td().br() .$title(String.valueOf(usedMemory))._() ._(StringUtils.byteDesc(usedMemory * BYTES_IN_MB))._().td().br() .$title(String.valueOf(availableMemory))._() ._(StringUtils.byteDesc(availableMemory * BYTES_IN_MB))._() .td(String.valueOf(info.getUsedVirtualCores())) .td(String.valueOf(info.getAvailableVirtualCores())) .td(ni.getNodeManagerVersion())._();