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";