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


Reply via email to