Author: mattmann
Date: Sun Jun  5 05:55:45 2011
New Revision: 1131918

URL: http://svn.apache.org/viewvc?rev=1131918&view=rev
Log:
- fix for OODT-184 Add ability to poll the load of any particular node

Modified:
    oodt/trunk/CHANGES.txt
    
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManager.java
    
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManagerClient.java

Modified: oodt/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/oodt/trunk/CHANGES.txt?rev=1131918&r1=1131917&r2=1131918&view=diff
==============================================================================
--- oodt/trunk/CHANGES.txt (original)
+++ oodt/trunk/CHANGES.txt Sun Jun  5 05:55:45 2011
@@ -4,6 +4,8 @@ Apache OODT Change Log
 Release 0.3-SNAPSHOT (in progress)
 --------------------------------------------
 
+* OODT-184 Add ability to poll the load of any particular node (Gabe Resneck 
via mattmann)
+
 * OODT-60 Annoying build warnings about dependencies that 
   have "been relocated" (mattmann, davidkale)
 

Modified: 
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManager.java
URL: 
http://svn.apache.org/viewvc/oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManager.java?rev=1131918&r1=1131917&r2=1131918&view=diff
==============================================================================
--- 
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManager.java
 (original)
+++ 
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManager.java
 Sun Jun  5 05:55:45 2011
@@ -323,6 +323,13 @@ public class XmlRpcResourceManager {
         return false;      
     }
     
+    public String getNodeLoad(String nodeId) throws MonitorException{
+       ResourceNode node = this.scheduler.getMonitor().getNodeById(nodeId);
+       int capacity = node.getCapacity();
+       int load = (this.scheduler.getMonitor().getLoad(node)) * -1 + capacity;
+       return load + "/" + capacity;
+    }
+    
     public static void main(String[] args) throws Exception {
         int portNum = -1;
         String usage = "XmlRpcResourceManager --portNum <port number for xml 
rpc service>\n";

Modified: 
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManagerClient.java
URL: 
http://svn.apache.org/viewvc/oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManagerClient.java?rev=1131918&r1=1131917&r2=1131918&view=diff
==============================================================================
--- 
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManagerClient.java
 (original)
+++ 
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManagerClient.java
 Sun Jun  5 05:55:45 2011
@@ -127,6 +127,7 @@ public class XmlRpcResourceManagerClient
         String getNodesInQueueOperation = "--getNodesInQueue --queueName 
<queue name>\n";
         String getQueuesWithNodeOperation = "--getQueuesWithNode --nodeId 
<node id>\n";
         String removeNodeFromQueueOperation = "--removeNodeFromQueue --nodeId 
<node id> --queueName <queue name>\n";
+        String getNodeLoadOperation = "--getNodeLoad --nodeId <node id>\n";
         String submitJobOperation = "--submitJob --def <job def file> --input 
<job input constructor>\n";
         String submitJobRemoteOperation = "--submitJob --def <job def file> 
--input <job input constructor> --url <url>\n";
         String getJobInfoOperation = "--getJobInfo --id <job id>\n";
@@ -324,6 +325,23 @@ public class XmlRpcResourceManagerClient
                 
             client.removeNodeFromQueue(nodeId, queueName);
             System.out.println("Successfully removed node from queue!");
+        
+        }else if (operation.equals("--getNodeLoad")){
+            String nodeId = null;
+            
+            for (int i = 4; i < args.length; i++) {
+                if (args[i].equals("--nodeId")) {
+                       nodeId = args[++i];
+                }
+            }
+            
+            if(nodeId == null){
+               System.err.println(getNodeLoadOperation);
+                System.exit(1);
+            }
+            
+            String result = client.getNodeLoad(nodeId);
+            System.out.println("Load for " + nodeId + ": " + result);
             
         }else if (operation.equals("--getNodesInQueue")) {
             String queueName = null;
@@ -806,6 +824,22 @@ public class XmlRpcResourceManagerClient
         }
     }
     
+    /**
+     * Report on the load of the requested node
+     * @param nodeId The id of the node to be polled
+     * @return A String showing a fraction of the loads node over its capacity
+     * @throws MonitorException on any error
+     */
+    public String getNodeLoad(String nodeId) throws MonitorException{
+       try{
+               Vector<Object> argList = new Vector<Object>();
+               argList.add(nodeId);
+               return (String)client.execute("resourcemgr.getNodeLoad", 
argList);
+       }catch(Exception e){
+               throw new MonitorException(e.getMessage(), e);
+       }
+    }
+    
     private static String getReadableJobStatus(String status) {
         if (status.equals(JobStatus.COMPLETE)) {
             return "COMPLETE";


Reply via email to