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>


Reply via email to