Author: degenaro
Date: Wed Jun  1 21:43:16 2016
New Revision: 1746502

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

- Daemons and Viz pages have missing nodes and/or incorrect status
- Machines page memory sizes are not quantum multiples

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.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
    
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java?rev=1746502&r1=1746501&r2=1746502&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccMachinesData.java
 Wed Jun  1 21:43:16 2016
@@ -89,8 +89,8 @@ public class DuccMachinesData {
                return isSwapping.containsKey(ip);
        }
        
-       public ConcurrentSkipListMap<NodeId,MachineInfo> getMachines() {
-               return unsortedMachines;
+       public ConcurrentSkipListMap<MachineInfo,NodeId> getMachines() {
+               return getSortedMachines();
        }
        
        public ConcurrentSkipListMap<MachineInfo,NodeId> getSortedMachines() {
@@ -643,7 +643,13 @@ public class DuccMachinesData {
                        String name = entry.getKey();
                        NodeId nodeId = new NodeId(name);
                        MachineInfo mi = unsortedMachines.get(nodeId);
+                       IDbMachine dbMachine = entry.getValue();
                        if(mi != null) {
+                               int quantum = dbMachine.getQuantum();
+                               int total = quantum*dbMachine.getShareOrder();
+                               int free = quantum*dbMachine.getSharesLeft();
+                               mi.setMemTotal(""+total);
+                               mi.setMemFree(""+free);
                                dbSortedMachines.put(mi, nodeId);
                                String shortName = nodeId.getShortName();
                                knownShortNames.add(shortName);

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java?rev=1746502&r1=1746501&r2=1746502&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/MachineInfo.java
 Wed Jun  1 21:43:16 2016
@@ -26,6 +26,7 @@ import org.apache.uima.ducc.common.utils
 import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
 import org.apache.uima.ducc.common.utils.id.DuccId;
 import org.apache.uima.ducc.transport.event.ProcessInfo;
+import org.apache.uima.ducc.ws.types.NodeId;
 
 
 public class MachineInfo implements Comparable<MachineInfo> {
@@ -67,6 +68,8 @@ public class MachineInfo implements Comp
        
        private Integer quantum = null;
        
+       private NodeId nodeid;
+       
        public MachineInfo(String fileDef, String ip, String name, String 
memTotal, String memFree, String swapInuse, String swapFree, double cpu, 
boolean cGroups, List<ProcessInfo> alienPids, long heartbeat, long pubSize) {
                init(MachineStatus.Defined, fileDef, ip, name, memTotal, 
memFree, swapInuse, swapFree, cpu, cGroups, alienPids, heartbeat, pubSize);
        }
@@ -96,6 +99,8 @@ public class MachineInfo implements Comp
                this.heartbeatMaxTOD = 0;
                this.pubSize = pubSize;
                this.pubSizeMax = 0;
+               
+               this.nodeid = new NodeId(name);
        }
        
        /*
@@ -260,10 +265,18 @@ public class MachineInfo implements Comp
                return this.name;
        }
        
+       public void setMemTotal(String value) {
+               this.memTotal = value;
+       }
+       
        public String getMemTotal() {
                return this.memTotal;
        }
        
+       public void setMemFree(String value) {
+               this.memFree = value;
+       }
+       
        public String getMemFree() {
                return this.memFree;
        }
@@ -605,5 +618,27 @@ public class MachineInfo implements Comp
        private int compareName(MachineInfo m1, MachineInfo m2) {
                return m1.name.compareTo(m2.name);
        }
+       
+       // @return true if the long names match
+       
+       @Override
+       public boolean equals(Object object) {
+               boolean retVal = false;
+               if(object != null) {
+                       if(object instanceof NodeId) {
+                               MachineInfo that = (MachineInfo) object;
+                               return (this.compareTo(that) == 0);
+                       }
+               }
+               return retVal;
+       }
+               
+       // @return use long name as hashCode
+       
+       @Override
+       public int hashCode()
+       {
+               return this.nodeid.hashCode();
+       }
 
 }

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1746502&r1=1746501&r2=1746502&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
 Wed Jun  1 21:43:16 2016
@@ -3509,11 +3509,10 @@ public class DuccHandler extends DuccAbs
                String cookie = 
DuccCookies.getCookie(request,DuccCookies.cookieAgents);
                if(cookie.equals(DuccCookies.valueAgentsShow)) {
                        duccLogger.trace(methodName, jobid, "== show: "+cookie);
-                       ConcurrentSkipListMap<NodeId,MachineInfo> machines = 
DuccMachinesData.getInstance().getMachines();
-                       Iterator<NodeId> iterator = 
machines.keySet().iterator();
+                       ConcurrentSkipListMap<MachineInfo,NodeId> machines = 
DuccMachinesData.getInstance().getMachines();
+                       Iterator<MachineInfo> iterator = 
machines.keySet().iterator();
                        while(iterator.hasNext()) {
-                               NodeId key = iterator.next();
-                               MachineInfo machineInfo = machines.get(key);
+                               MachineInfo machineInfo = iterator.next();
                                Properties properties = 
DuccDaemonRuntimeProperties.getInstance().getAgent(machineInfo.getName());
                                if(first) {
                                        first = false;

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=1746502&r1=1746501&r2=1746502&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
 Wed Jun  1 21:43:16 2016
@@ -1299,6 +1299,8 @@ public class DuccHandlerClassic extends
                String wsHostName = getWebServerHostName();
                
                DuccDaemonsData duccDaemonsData = DuccDaemonsData.getInstance();
+               DuccMachinesData duccMachinesData = 
DuccMachinesData.getInstance();
+               
                int counter = 0;
                daemons:
                for(DaemonName daemonName : 
DuccDaemonRuntimeProperties.daemonNames) {
@@ -1485,11 +1487,10 @@ public class DuccHandlerClassic extends
                if(cookie.equals(DuccCookies.valueAgentsShow)) {
                        duccLogger.trace(methodName, jobid, "== show: "+cookie);
                        
-                       ConcurrentSkipListMap<NodeId,MachineInfo> machines = 
DuccMachinesData.getInstance().getMachines();
-                       Iterator<NodeId> iterator = 
machines.keySet().iterator();
+                       ConcurrentSkipListMap<MachineInfo,NodeId> machines = 
duccMachinesData.getMachines();
+                       Iterator<MachineInfo> iterator = 
machines.keySet().iterator();
                        while(iterator.hasNext()) {
-                               NodeId key = iterator.next();
-                               MachineInfo machineInfo = machines.get(key);
+                               MachineInfo machineInfo = iterator.next();
                                DuccDaemonRuntimeProperties drp = 
DuccDaemonRuntimeProperties.getInstance();
                                String machineName = machineInfo.getName();
                                if(machineName.startsWith("=")) {

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=1746502&r1=1746501&r2=1746502&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
 Wed Jun  1 21:43:16 2016
@@ -1843,6 +1843,7 @@ public class DuccHandlerJsonFormat exten
                JsonArray row;
                
                DuccDaemonsData duccDaemonsData = DuccDaemonsData.getInstance();
+               DuccMachinesData duccMachinesData = 
DuccMachinesData.getInstance();
                
                String wsHostIP = getWebServerHostIP();
                String wsHostName = getWebServerHostName();
@@ -2017,12 +2018,11 @@ public class DuccHandlerJsonFormat exten
                }
 
                if(showAgents) {
-                       ConcurrentSkipListMap<NodeId,MachineInfo> machines = 
DuccMachinesData.getInstance().getMachines();
-                       Iterator<NodeId> iterator = 
machines.keySet().iterator();
+                       ConcurrentSkipListMap<MachineInfo,NodeId> machines = 
duccMachinesData.getMachines();
+                       Iterator<MachineInfo> iterator = 
machines.keySet().iterator();
                        while(iterator.hasNext()) {
                                row = new JsonArray();
-                               NodeId key = iterator.next();
-                               MachineInfo machineInfo = machines.get(key);
+                               MachineInfo machineInfo = iterator.next();
                                DuccDaemonRuntimeProperties drp = 
DuccDaemonRuntimeProperties.getInstance();
                                String machineName = machineInfo.getName();
                                if(machineName.startsWith("=")) {

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java?rev=1746502&r1=1746501&r2=1746502&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java
 Wed Jun  1 21:43:16 2016
@@ -273,13 +273,13 @@ public class NodeViz
         }
 
         logger.debug(methodName, null, "Generateing visualizaiton");
-        ConcurrentSkipListMap<NodeId,MachineInfo> m = 
machineData.getMachines();
+        ConcurrentSkipListMap<MachineInfo,NodeId> m = 
machineData.getMachines();
 
-        for (Entry<NodeId, MachineInfo> entry : m.entrySet()) {
+        for (Entry<MachineInfo, NodeId> entry : m.entrySet()) {
                // 
             // This is for hosts that have no work on them so they didn't come 
in the work map
             //
-               MachineInfo mi = entry.getValue();
+               MachineInfo mi = entry.getKey();
             // NOTE: the map changes all the time so the value may be gone.  
This situation
             //       will be fixed one day but for now just forget the node, 
it will show up 
             //       next time we get here.            


Reply via email to