You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2016/05/20 12:56:46 UTC

svn commit: r1744729 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws: DuccMachinesDataHelper.java server/DuccHandlerClassic.java server/DuccHandlerJsonFormat.java

Author: degenaro
Date: Fri May 20 12:56:46 2016
New Revision: 1744729

URL: http://svn.apache.org/viewvc?rev=1744729&view=rev
Log:
UIMA-4923 DUCC Web Server (WS) should not display nodes that have been removed from service on Machines page

Totals (e.g. memory & free) should not include machines with status other than "up"

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesDataHelper.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesDataHelper.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesDataHelper.java?rev=1744729&r1=1744728&r2=1744729&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesDataHelper.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesDataHelper.java Fri May 20 12:56:46 2016
@@ -21,6 +21,7 @@ package org.apache.uima.ducc.ws;
 import java.util.Map;
 
 import org.apache.uima.ducc.cli.ws.json.MachineFacts;
+import org.apache.uima.ducc.cli.ws.json.MachineFactsList;
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
 import org.apache.uima.ducc.common.utils.id.DuccId;
@@ -33,6 +34,43 @@ public class DuccMachinesDataHelper {
 	
 	public enum MachineStatus { up, down, unknown };
 	
+	/**
+	 * @param factsList = list of machine facts, each entry comprising one machine
+	 * @param name = the machine name of the entry to be located
+	 * @return = the entry comprising the located machine
+	 */
+	public static MachineFacts getMachineFacts(MachineFactsList factsList, String name) {
+		MachineFacts retVal = null;
+		if(factsList != null) {
+			if(name != null) {
+				for(MachineFacts facts : factsList) {
+					if(facts.name != null) {
+						if(name.equals(facts.name)) {
+							retVal = facts;
+							break;
+						}
+					}
+					
+				}
+			}
+		}
+		return retVal;
+	}
+	
+	/**
+	 * @param facts = facts of a machine
+	 * @return true if "up" false otherwise
+	 */
+	public static boolean isUp(MachineFacts facts) {
+		boolean retVal = false;
+		if(facts != null) {
+			if(facts.status.equals("up")) {
+				retVal = true;
+			}
+		}
+		return retVal;
+	}
+	
 	private static String[] getMachineStatusWs(MachineFacts facts, Map<String, IDbMachine> dbMachineMap) {
 		String location = "getMachineStatusWs";
 		String[] retVal = null;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java?rev=1744729&r1=1744728&r2=1744729&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerClassic.java Fri May 20 12:56:46 2016
@@ -72,6 +72,7 @@ import org.apache.uima.ducc.ws.Distiller
 import org.apache.uima.ducc.ws.DuccDaemonsData;
 import org.apache.uima.ducc.ws.DuccData;
 import org.apache.uima.ducc.ws.DuccMachinesData;
+import org.apache.uima.ducc.ws.DuccMachinesDataHelper;
 import org.apache.uima.ducc.ws.Info;
 import org.apache.uima.ducc.ws.JobInfo;
 import org.apache.uima.ducc.ws.MachineInfo;
@@ -1599,9 +1600,9 @@ public class DuccHandlerClassic extends
 		String methodName = "handleServletClassicSystemMachines";
 		duccLogger.trace(methodName, jobid, messages.fetch("enter"));
 		int counter = 0;
-		long sumMemTotal = 0;
-		long sumMemFree = 0;
-		long sumMemReserve = 0;
+		long sumMemTotal = 0;	// Memory(GB):reported by Agent
+		long sumMemFree = 0;	// Memory(GB):free
+		long sumMemReserve = 0;	// Memory(GB):usable
 		double sumCPU = 0;
 		long sumMachines = 0;
 		long sumSwapInuse = 0;
@@ -1618,28 +1619,36 @@ public class DuccHandlerClassic extends
 			listIterator = factsList.listIterator();
 			while(listIterator.hasNext()) {
 				MachineFacts facts = listIterator.next();
-				if(facts.status != null) {
-					if(facts.status.equals("up")) {
-						try {
-							sumMemTotal += ConvertSafely.String2Long(facts.memTotal);
-							sumMemReserve += ConvertSafely.String2Long(facts.memReserve);
-							sumSwapInuse += ConvertSafely.String2Long(facts.swapInuse);
-							sumSwapFree += ConvertSafely.String2Long(facts.swapFree);
-							sumCPU += facts.cpu;
-							sumMachines += 1;
-							sumAliens += facts.aliens.size();
-						}
-						catch(Exception e) {
-							duccLogger.trace(methodName, jobid, e);
-						}
+				if(DuccMachinesDataHelper.isUp(facts)) {
+					try {
+						sumMemTotal += ConvertSafely.String2Long(facts.memTotal);
+						// Calculate total for Memory(GB):usable
+						sumMemReserve += ConvertSafely.String2Long(facts.memReserve);
+						sumSwapInuse += ConvertSafely.String2Long(facts.swapInuse);
+						sumSwapFree += ConvertSafely.String2Long(facts.swapFree);
+						sumCPU += facts.cpu;
+						sumMachines += 1;
+						sumAliens += facts.aliens.size();
+					}
+					catch(Exception e) {
+						duccLogger.trace(methodName, jobid, e);
 					}
 				}
 			}
-			//
+			// Calculate total for Memory(GB):free
 			Map<String, Long> allocatedMap = Distiller.getMap();
 			long sumMemAllocated = 0;
-			for(Long bytes : allocatedMap.values()) {
-				sumMemAllocated += bytes;
+			for(Entry<String, Long> entry : allocatedMap.entrySet()) {
+				String name = entry.getKey();
+				MachineFacts facts = DuccMachinesDataHelper.getMachineFacts(factsList, name);
+				// Only consider "up" machines
+				if(DuccMachinesDataHelper.isUp(facts)) {
+					long bytes = entry.getValue();
+					sumMemAllocated += bytes;
+					SizeBytes sb = new SizeBytes(Type.Bytes, bytes);
+					String text = "allocated "+facts.name+"="+sb.getGBytes();
+					duccLogger.trace(methodName, jobid, text);
+				}
 			}
 			SizeBytes sbAllocated = new SizeBytes(Type.Bytes, sumMemAllocated);
 			sumMemFree = sumMemReserve - sbAllocated.getGBytes();
@@ -1738,7 +1747,7 @@ public class DuccHandlerClassic extends
 				row.append(nodepool);
 				row.append("</td>");
 				// Memory: usable
-				if(!status.equals("defined")) {
+				if(status.equals("up")) {
 					sb = new StringBuffer();
 					sb.append("total="+facts.memTotal);
 					if(facts.quantum != null) {
@@ -1752,12 +1761,17 @@ public class DuccHandlerClassic extends
 					row.append(facts.memReserve);
 					row.append("</td>");
 				}
+				else if(status.equals("down")) {
+					row.append("<td align=\"right\">");
+					row.append("0");
+					row.append("</td>");
+				}
 				else {
 					row.append("<td align=\"right\">");
 					row.append("</td>");
 				}
 				// Memory: free
-				if(!status.equals("defined")) {
+				if(status.equals("up")) {
 					long memFree = ConvertSafely.String2Long(facts.memReserve);
 					if(allocatedMap.containsKey(facts.name)) {
 						long bytes = allocatedMap.get(facts.name);
@@ -1768,6 +1782,11 @@ public class DuccHandlerClassic extends
 					row.append(memFree);
 					row.append("</td>");
 				}
+				else if(status.equals("down")) {
+					row.append("<td align=\"right\">");
+					row.append("0");
+					row.append("</td>");
+				}
 				else {
 					row.append("<td align=\"right\">");
 					row.append("</td>");

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java?rev=1744729&r1=1744728&r2=1744729&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandlerJsonFormat.java Fri May 20 12:56:46 2016
@@ -76,6 +76,7 @@ import org.apache.uima.ducc.ws.Distiller
 import org.apache.uima.ducc.ws.DuccDaemonsData;
 import org.apache.uima.ducc.ws.DuccData;
 import org.apache.uima.ducc.ws.DuccMachinesData;
+import org.apache.uima.ducc.ws.DuccMachinesDataHelper;
 import org.apache.uima.ducc.ws.Info;
 import org.apache.uima.ducc.ws.JobInfo;
 import org.apache.uima.ducc.ws.MachineInfo;
@@ -1412,9 +1413,9 @@ public class DuccHandlerJsonFormat exten
 		JsonObject jsonResponse = new JsonObject();
 		JsonArray data = new JsonArray();
 		String hover;
-		long sumMemTotal = 0;
-		long sumMemFree = 0;
-		long sumMemReserve = 0;
+		long sumMemTotal = 0;	// Memory(GB):reported by Agent
+		long sumMemFree = 0;	// Memory(GB):free
+		long sumMemReserve = 0;	// Memory(GB):usable
 		double sumCPU = 0;
 		long sumMachines = 0;
 		long sumSwapInuse = 0;
@@ -1430,28 +1431,33 @@ public class DuccHandlerJsonFormat exten
 			listIterator = factsList.listIterator();
 			while(listIterator.hasNext()) {
 				MachineFacts facts = listIterator.next();
-				if(facts.status != null) {
-					if(facts.status.equals("up")) {
-						try {
-							sumMemTotal += ConvertSafely.String2Long(facts.memTotal);
-							sumMemReserve += ConvertSafely.String2Long(facts.memReserve);
-							sumSwapInuse += ConvertSafely.String2Long(facts.swapInuse);
-							sumSwapFree += ConvertSafely.String2Long(facts.swapFree);
-							sumCPU += facts.cpu;
-							sumMachines += 1;
-							sumAliens += facts.aliens.size();
-						}
-						catch(Exception e) {
-							duccLogger.trace(methodName, jobid, e);
-						}
+				if(DuccMachinesDataHelper.isUp(facts)) {
+					try {
+						sumMemTotal += ConvertSafely.String2Long(facts.memTotal);
+						// Calculate total for Memory(GB):usable
+						sumMemReserve += ConvertSafely.String2Long(facts.memReserve);
+						sumSwapInuse += ConvertSafely.String2Long(facts.swapInuse);
+						sumSwapFree += ConvertSafely.String2Long(facts.swapFree);
+						sumCPU += facts.cpu;
+						sumMachines += 1;
+						sumAliens += facts.aliens.size();
+					}
+					catch(Exception e) {
+						duccLogger.trace(methodName, jobid, e);
 					}
-				}				
+				}
 			}
-			//
+			// Calculate total for Memory(GB):free
 			Map<String, Long> allocatedMap = Distiller.getMap();
 			long sumMemAllocated = 0;
-			for(Long bytes : allocatedMap.values()) {
-				sumMemAllocated += bytes;
+			for(Entry<String, Long> entry : allocatedMap.entrySet()) {
+				String name = entry.getKey();
+				MachineFacts facts = DuccMachinesDataHelper.getMachineFacts(factsList, name);
+				// Only consider "up" machines
+				if(DuccMachinesDataHelper.isUp(facts)) {
+					long bytes = entry.getValue();
+					sumMemAllocated += bytes;
+				}
 			}
 			SizeBytes sbAllocated = new SizeBytes(Type.Bytes, sumMemAllocated);
 			sumMemFree = sumMemReserve - sbAllocated.getGBytes();
@@ -1516,7 +1522,7 @@ public class DuccHandlerJsonFormat exten
 				String nodepool = DuccSchedulerClasses.getInstance().getNodepool(facts.name);
 				row.add(new JsonPrimitive(nodepool));
 				// Memory: usable
-				if(!status.equals("defined")) {
+				if(status.equals("up")) {
 					sb = new StringBuffer();
 					sb.append("total="+facts.memTotal);
 					if(facts.quantum != null) {
@@ -1529,11 +1535,14 @@ public class DuccHandlerJsonFormat exten
 					String memReserveWithHover = "<span "+hover+" >"+facts.memReserve+"</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("defined")) {
+				if(status.equals("up")) {
 					long memFree = ConvertSafely.String2Long(facts.memReserve);
 					if(allocatedMap.containsKey(facts.name)) {
 						long bytes = allocatedMap.get(facts.name);
@@ -1542,6 +1551,9 @@ public class DuccHandlerJsonFormat exten
 					}
 					row.add(new JsonPrimitive(memFree));
 				}
+				else if(status.equals("down")) {
+					row.add(new JsonPrimitive("0"));
+				}
 				else {
 					row.add(new JsonPrimitive(""));
 				}