Author: mattmann
Date: Sun Aug 30 18:40:19 2015
New Revision: 1700152
URL: http://svn.apache.org/r1700152
Log:
Fix for OODT-247: Resource Manager client should allow users to see what jobs
are currently in the queue contributed by Gabe Resneck and mattmann.
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
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/util/XmlRpcStructFactory.java
oodt/trunk/resource/src/main/resources/cmd-line-actions.xml
oodt/trunk/resource/src/main/resources/cmd-line-options.xml
Modified: oodt/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/oodt/trunk/CHANGES.txt?rev=1700152&r1=1700151&r2=1700152&view=diff
==============================================================================
--- oodt/trunk/CHANGES.txt (original)
+++ oodt/trunk/CHANGES.txt Sun Aug 30 18:40:19 2015
@@ -2,6 +2,9 @@ Apache OODT Change Log
======================
Release 0.10 - Current Development
+* OODT-247 Resource Manager client should allow users to see what jobs are
+ currently in the queue (Gabe Resneck, mattmann)
+
* OODT-244 Allow the Resource Manager scheduler to cycle on a non-integer
number of seconds (Gabe Resneck via mattmann)
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=1700152&r1=1700151&r2=1700152&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 Aug 30 18:40:19 2015
@@ -43,6 +43,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
import java.util.Hashtable;
+import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import java.util.logging.Level;
@@ -338,6 +339,20 @@ public class XmlRpcResourceManager {
return load + "/" + capacity;
}
+ public List getQueuedJobs() throws JobQueueException{
+ Vector jobs = new Vector();
+ List jobSpecs = this.scheduler.getJobQueue().getQueuedJobs();
+
+ if(jobSpecs != null && jobSpecs.size() > 0){
+ for(Iterator i = jobSpecs.iterator(); i.hasNext();){
+ Job job = ((JobSpec)i.next()).getJob();
+ jobs.add(job);
+ }
+ }
+
+ return XmlRpcStructFactory.getXmlRpcJobList(jobs);
+ }
+
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=1700152&r1=1700151&r2=1700152&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 Aug 30 18:40:19 2015
@@ -27,9 +27,11 @@ import org.apache.xmlrpc.XmlRpcException
import org.apache.oodt.cas.cli.CmdLineUtility;
import org.apache.oodt.cas.resource.structs.Job;
import org.apache.oodt.cas.resource.structs.JobInput;
+import org.apache.oodt.cas.resource.structs.JobSpec;
import org.apache.oodt.cas.resource.structs.JobStatus;
import org.apache.oodt.cas.resource.structs.ResourceNode;
import org.apache.oodt.cas.resource.structs.exceptions.JobExecutionException;
+import org.apache.oodt.cas.resource.structs.exceptions.JobQueueException;
import org.apache.oodt.cas.resource.structs.exceptions.JobRepositoryException;
import org.apache.oodt.cas.resource.structs.exceptions.MonitorException;
import org.apache.oodt.cas.resource.structs.exceptions.QueueManagerException;
@@ -486,7 +488,19 @@ public class XmlRpcResourceManagerClient
}
}
- private static String getReadableJobStatus(String status) {
+ public List getQueuedJobs() throws JobQueueException{
+ Vector queuedJobs = null;
+
+ try{
+ queuedJobs = (Vector)client.execute("resourcemgr.getQueuedJobs", new
Vector<Object>());
+ }catch(Exception e){
+ throw new JobQueueException(e.getMessage(), e);
+ }
+
+ return XmlRpcStructFactory.getJobListFromXmlRpc(queuedJobs);
+ }
+
+ public static String getReadableJobStatus(String status) {
if (status.equals(JobStatus.SUCCESS)) {
return "SUCCESS";
} else if (status.equals(JobStatus.FAILURE)) {
@@ -499,7 +513,7 @@ public class XmlRpcResourceManagerClient
return "SCHEDULED";
} else if (status.equals(JobStatus.KILLED)) {
return "KILLED";
- } else
- return null;
+ }
+ else return null;
}
}
Modified:
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/util/XmlRpcStructFactory.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/util/XmlRpcStructFactory.java?rev=1700152&r1=1700151&r2=1700152&view=diff
==============================================================================
---
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/util/XmlRpcStructFactory.java
(original)
+++
oodt/trunk/resource/src/main/java/org/apache/oodt/cas/resource/util/XmlRpcStructFactory.java
Sun Aug 30 18:40:19 2015
@@ -68,6 +68,32 @@ public final class XmlRpcStructFactory {
job.setStatus((String)jobHash.get("job.status"));
return job;
}
+
+ public static Vector getXmlRpcJobList(List jobs){
+ Vector jobVector = new Vector();
+
+ if(jobs != null && jobs.size() > 0){
+ for(Iterator i = jobs.iterator(); i.hasNext();){
+ Job job = (Job)i.next();
+ jobVector.add(getXmlRpcJob(job));
+ }
+ }
+
+ return jobVector;
+ }
+
+ public static List getJobListFromXmlRpc(Vector jobVector){
+ List jobs = new Vector();
+
+ if(jobVector != null && jobVector.size() > 0){
+ for(Iterator i = jobVector.iterator(); i.hasNext(); ){
+ Hashtable jobHash = (Hashtable)i.next();
+ jobs.add(getJobFromXmlRpc(jobHash));
+ }
+ }
+
+ return jobs;
+ }
public static Vector getXmlRpcResourceNodeList(List resNodes) {
Vector resNodeVector = new Vector();
Modified: oodt/trunk/resource/src/main/resources/cmd-line-actions.xml
URL:
http://svn.apache.org/viewvc/oodt/trunk/resource/src/main/resources/cmd-line-actions.xml?rev=1700152&r1=1700151&r2=1700152&view=diff
==============================================================================
--- oodt/trunk/resource/src/main/resources/cmd-line-actions.xml (original)
+++ oodt/trunk/resource/src/main/resources/cmd-line-actions.xml Sun Aug 30
18:40:19 2015
@@ -62,6 +62,10 @@
class="org.apache.oodt.cas.resource.cli.action.GetQueuesCliAction">
<property name="description" value="Gets list of queues" />
</bean>
+ <bean id="getQueuedJobs"
+
class="org.apache.oodt.cas.resource.cli.action.GetQueuedJobsCliAction">
+ <property name="description" value="Gets list of jobs
currently in the queue" />
+ </bean>
<bean id="getQueuesWithNode"
class="org.apache.oodt.cas.resource.cli.action.GetQueuesWithNodeCliAction">
<property name="description" value="Gets list of queues which
contain given node" />
Modified: oodt/trunk/resource/src/main/resources/cmd-line-options.xml
URL:
http://svn.apache.org/viewvc/oodt/trunk/resource/src/main/resources/cmd-line-options.xml?rev=1700152&r1=1700151&r2=1700152&view=diff
==============================================================================
--- oodt/trunk/resource/src/main/resources/cmd-line-options.xml (original)
+++ oodt/trunk/resource/src/main/resources/cmd-line-options.xml Sun Aug 30
18:40:19 2015
@@ -55,14 +55,16 @@
p:option-ref="getNodes"
p:required="false" />
<bean
class="org.apache.oodt.cas.cli.option.GroupSubOption"
p:option-ref="getQueues"
p:required="false" />
+ <bean
class="org.apache.oodt.cas.cli.option.GroupSubOption"
+ p:option-ref="getQueuedJobs"
p:required="false" />
<bean
class="org.apache.oodt.cas.cli.option.GroupSubOption"
p:option-ref="addNode"
p:required="false" />
<bean
class="org.apache.oodt.cas.cli.option.GroupSubOption"
p:option-ref="removeNode"
p:required="false" />
<bean
class="org.apache.oodt.cas.cli.option.GroupSubOption"
p:option-ref="setNodeCapacity"
p:required="false" />
- <bean class="org.apache.oodt.cas.cli.option.GroupSubOption"
- p:option-ref="getExecNode" p:required="false" />
+ <bean
class="org.apache.oodt.cas.cli.option.GroupSubOption"
+ p:option-ref="getExecNode"
p:required="false" />
<bean
class="org.apache.oodt.cas.cli.option.GroupSubOption"
p:option-ref="addQueue"
p:required="false" />
<bean
class="org.apache.oodt.cas.cli.option.GroupSubOption"
@@ -598,4 +600,24 @@
<bean
class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler" />
</property>
</bean>
+
+ <bean id="getQueuedJobs"
class="org.apache.oodt.cas.cli.option.ActionCmdLineOption"
+ p:isSubOption="true">
+ <property name="shortOption" value="qjobs" />
+ <property name="longOption" value="getQueuedJobs" />
+ <property name="description" value="Triggers getQueuedJobs
Action" />
+ <property name="hasArgs" value="false" />
+ <property name="staticArgs">
+ <list>
+ <value>getQueuedJobs</value>
+ </list>
+ </property>
+ <property name="requirementRules">
+ <list>
+ <bean
class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
+ p:actionName="getQueuedJobs"
p:relation="REQUIRED" />
+ </list>
+ </property>
+ </bean>
+
</beans>