private void buildRowForIndividualMachine()

in uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java [1782:1932]


	private void buildRowForIndividualMachine(JsonArray data , int counter, MachineInfo machineInfo, SizeBytes allocated) {
		JsonArray row = new JsonArray();
		StringBuffer sb = new StringBuffer();
		// Status
		String status = machineInfo.getStatus();
		String hover = "title=\""+machineInfo.getMachineStatusReason()+"\"";
		if(status.equals("down")) {
			sb.append("<span "+hover+" class=\"health_red\""+">");
			sb.append(status);
			sb.append("</span>");
		}
		else if(status.equals("up")) {
			sb.append("<span "+hover+"class=\"health_green\""+">");
			sb.append(status);
			sb.append("</span>");
		}
		else {
			sb.append(status);
		}
		row.add(new JsonPrimitive(sb.toString()));
		// Online
		row.add(new JsonPrimitive(nodeState.getOnline(machineInfo.getName(), "-")));
		// Quiesced
		row.add(new JsonPrimitive(nodeState.getQuiesced(machineInfo.getName(), "-")));
		// IP
		row.add(new JsonPrimitive(machineInfo.getIp()));
		// Name
		row.add(new JsonPrimitive(machineInfo.getName()));
		// Nodepool
		String nodepool = DuccSchedulerClasses.getInstance().getNodepool(machineInfo.getName());
		row.add(new JsonPrimitive(nodepool));
		// Memory: usable
		if(status.equals("up")) {
			sb = new StringBuffer();
			sb.append("total="+machineInfo.getMemTotal());
			Integer quantum = machineInfo.getQuantum();
			if(quantum != null) {
				sb.append(" ");
				sb.append("quantum="+quantum);
			}
			hover = "title=\""+sb.toString()+"\"";
			String memReserveWithHover = "<span "+hover+" >"+machineInfo.getMemReserve()+"</span>";
			row.add(new JsonPrimitive(memReserveWithHover));
		}
		else if(status.equals("down")) {
			row.add(new JsonPrimitive("0"));
		}
		else {
			row.add(new JsonPrimitive(""));
		}
		// Memory: free
		if(status.equals("up")) {
			long memFree = ConvertSafely.String2Long(machineInfo.getMemReserve());
			memFree = memFree - allocated.getGBytes();
			row.add(new JsonPrimitive(memFree));
		}
		else if(status.equals("down")) {
			row.add(new JsonPrimitive("0"));
		}
		else {
			row.add(new JsonPrimitive(""));
		}
		// CPU: load average
		if(!status.equals("defined")) {
			String cpu = formatter1.format(machineInfo.getCpu());
			row.add(new JsonPrimitive(cpu));
		}
		else {
			row.add(new JsonPrimitive(""));
		}
		// Swap: inuse
		sb = new StringBuffer();
		String swapping = machineInfo.getSwapInuse();
		if(swapping.equals("0")) {
			sb.append(swapping);
		}
		else {
			sb.append("<span class=\"health_red\">");
			sb.append(swapping);
			sb.append("</span>");
		}
		if(!status.equals("defined")) {
			row.add(new JsonPrimitive(sb.toString()));
		}
		else {
			row.add(new JsonPrimitive(""));
		}
		// Swap: free
		if(!status.equals("defined")) {
			row.add(new JsonPrimitive(machineInfo.getSwapFree()));
		}
		else {
			row.add(new JsonPrimitive(""));
		}
		// C-Groups
		boolean isCgroupsEnabled = machineInfo.getCgroupsEnabled();
		boolean isCgroupsCpuReportingEnabled = machineInfo.getCgroupsCpuReportingEnabled();
		sb = new StringBuffer();
		if(status.equals("up")) {
			if(isCgroupsEnabled) {
				if(isCgroupsCpuReportingEnabled) {
					sb.append("<span title=\""+"control groups active"+"\" class=\"health_black\""+">");
					sb.append("on");
					sb.append("</span>");
				}
				else {
					sb.append("<span title=\""+"control groups CPU reporting not configured"+"\" class=\"health_red\""+">");
					sb.append("noCPU%");
					sb.append("</span>");
				}
			}
			else {
				sb.append("<span title=\""+"control groups inactive"+"\" class=\"health_red\""+">");
				sb.append("off");
				sb.append("</span>");
			}
		}
		row.add(new JsonPrimitive(sb.toString()));
		// Alien PIDs
		sb = new StringBuffer();
		long aliens = machineInfo.getAliens().size();
		if(aliens == 0) {
			sb.append(aliens);
		}
		else {
			StringBuffer title = new StringBuffer();
			title.append("title=");
			title.append("\"");
			for(String pid : machineInfo.getAliens()) {
				title.append(pid+" ");
			}
			title.append("\"");
			sb.append("<span class=\"health_red\" "+title+">");
			sb.append(aliens);
			sb.append("</span>");
		}
		if(!status.equals("defined")) {
			row.add(new JsonPrimitive(sb.toString()));
		}
		else {
			row.add(new JsonPrimitive(""));
		}
		// Heartbeat: last
		if(!status.equals("defined")) {
			row.add(new JsonPrimitive(machineInfo.getHeartbeatLast()));
		}
		else {
			row.add(new JsonPrimitive(""));
		}
		data.add(row);
	}