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(""));
}