Repository: airavata
Updated Branches:
  refs/heads/master 3dd2bf000 -> 8b8451f3d


Fixing more issues with slurm monitoring - AIRAVATA-1057


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/ae4adec6
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/ae4adec6
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/ae4adec6

Branch: refs/heads/master
Commit: ae4adec6c490b17c823a3f3b98551267e4804e3a
Parents: 83dd7b0
Author: lahiru <[email protected]>
Authored: Fri Mar 7 11:31:50 2014 -0500
Committer: lahiru <[email protected]>
Committed: Fri Mar 7 11:31:50 2014 -0500

----------------------------------------------------------------------
 .../client/samples/CreateLaunchExperiment.java  |  2 +-
 .../airavata/client/tools/DocumentCreator.java  |  1 +
 .../apache/airavata/job/monitor/MonitorID.java  |  9 ----
 .../monitor/impl/pull/qstat/QstatMonitor.java   |  6 +--
 .../impl/pull/qstat/ResourceConnection.java     |  3 +-
 .../gsi/ssh/api/job/SlurmOutputParser.java      | 44 +++++++++++++++++++-
 6 files changed, 47 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/ae4adec6/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
 
b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
index 62f0cfd..3d79e3f 100644
--- 
a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
+++ 
b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
@@ -210,7 +210,7 @@ public class CreateLaunchExperiment {
             exOut.add(output);
 
             Experiment simpleExperiment =
-                    ExperimentModelUtil.createSimpleExperiment("project1", 
"admin", "echoExperiment", "SimpleEcho2", "SimpleEcho2", exInputs);
+                    ExperimentModelUtil.createSimpleExperiment("project1", 
"admin", "echoExperiment", "SimpleEcho3", "SimpleEcho3", exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
             ComputationalResourceScheduling scheduling =

http://git-wip-us.apache.org/repos/asf/airavata/blob/ae4adec6/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java
 
b/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java
index 60c53d5..ff1fa66 100644
--- 
a/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java
+++ 
b/modules/airavata-client/src/main/java/org/apache/airavata/client/tools/DocumentCreator.java
@@ -312,6 +312,7 @@ public class DocumentCreator {
         host.getType().setHostAddress("stampede.tacc.xsede.org");
         host.getType().setHostName("stampede-host");
         ((GsisshHostType) host.getType()).setJobManager("slurm");
+        ((GsisshHostType) host.getType()).setInstalledPath("/usr/bin/");
         ((GsisshHostType) host.getType()).setPort(2222);
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ae4adec6/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/MonitorID.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/MonitorID.java
 
b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/MonitorID.java
index f33d348..100c141 100644
--- 
a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/MonitorID.java
+++ 
b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/MonitorID.java
@@ -48,7 +48,6 @@ public class MonitorID {
 
     private HostDescription host;
 
-    private int port = 22;
 
     private AuthenticationInfo authenticationInfo = null;
 
@@ -125,14 +124,6 @@ public class MonitorID {
         this.jobStartedTime = jobStartedTime;
     }
 
-    public int getPort() {
-        return port;
-    }
-
-    public void setPort(int port) {
-        this.port = port;
-    }
-
     public AuthenticationInfo getAuthenticationInfo() {
         return authenticationInfo;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/ae4adec6/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/pull/qstat/QstatMonitor.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/pull/qstat/QstatMonitor.java
 
b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/pull/qstat/QstatMonitor.java
index 3e8475d..cdb52b4 100644
--- 
a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/pull/qstat/QstatMonitor.java
+++ 
b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/pull/qstat/QstatMonitor.java
@@ -126,11 +126,7 @@ public class QstatMonitor extends PullMonitor implements 
Runnable {
                             logger.debug("We already have this connection so 
not going to create one");
                             connection = connections.get(hostName);
                         } else {
-                            if (gsisshHostType.getInstalledPath() == null) {
-                                connection = new ResourceConnection(take, 
gsisshHostType.getInstalledPath());
-                            } else {
-                                connection = new ResourceConnection(take, 
gsisshHostType.getInstalledPath());
-                            }
+                            connection = new ResourceConnection(take, 
gsisshHostType.getInstalledPath());
                             connections.put(hostName, connection);
                         }
                         jobStatus.setMonitorID(take);

http://git-wip-us.apache.org/repos/asf/airavata/blob/ae4adec6/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/pull/qstat/ResourceConnection.java
----------------------------------------------------------------------
diff --git 
a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/pull/qstat/ResourceConnection.java
 
b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/pull/qstat/ResourceConnection.java
index b5139d7..d5fb4b0 100644
--- 
a/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/pull/qstat/ResourceConnection.java
+++ 
b/modules/airavata-job-monitor/src/main/java/org/apache/airavata/job/monitor/impl/pull/qstat/ResourceConnection.java
@@ -42,7 +42,6 @@ public class ResourceConnection {
         AuthenticationInfo authenticationInfo = 
monitorID.getAuthenticationInfo();
         String hostAddress = monitorID.getHost().getType().getHostAddress();
         String userName = monitorID.getUserName();
-        int port = monitorID.getPort();
         String jobManager = 
((GsisshHostType)monitorID.getHost().getType()).getJobManager();
         JobManagerConfiguration jConfig = null;
         if (jobManager == null) {
@@ -56,7 +55,7 @@ public class ResourceConnection {
             }
             //todo support br2 etc
         }
-        ServerInfo serverInfo = new ServerInfo(monitorID.getUserName(), 
hostAddress, monitorID.getPort());
+        ServerInfo serverInfo = new ServerInfo(userName, hostAddress, 
((GsisshHostType)monitorID.getHost().getType()).getPort());
         cluster = new PBSCluster(serverInfo, authenticationInfo, jConfig);
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ae4adec6/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/SlurmOutputParser.java
----------------------------------------------------------------------
diff --git 
a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/SlurmOutputParser.java
 
b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/SlurmOutputParser.java
index 1948954..8a60794 100644
--- 
a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/SlurmOutputParser.java
+++ 
b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/SlurmOutputParser.java
@@ -22,6 +22,7 @@ package org.apache.airavata.gsi.ssh.api.job;
 
 import org.apache.airavata.gsi.ssh.impl.JobStatus;
 
+import javax.print.attribute.standard.JobState;
 import java.util.Map;
 
 public class SlurmOutputParser implements OutputParser {
@@ -97,7 +98,48 @@ public class SlurmOutputParser implements OutputParser {
     }
 
     public JobStatus parse(String jobID, String rawOutput) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        System.out.println(rawOutput);
+        String[] info = rawOutput.split("\n");
+        String lastString = info[info.length -1];
+        if (lastString.contains("JOBID") || lastString.contains("PARTITION")) {
+            // because there's no state
+            return JobStatus.valueOf("F");
+        }else{
+            int column = 0;
+            System.out.println(lastString);
+            for(String each:lastString.split(" ")){
+                if(each.trim().isEmpty()){
+                    continue;
+                }else{
+                    switch (column){
+                        case 0:
+                            column++;
+                            break;
+                        case 1:
+                            column++;
+                            break;
+                        case 2:
+                            column++;
+                            break;
+                        case 3:
+                            column++;
+                            break;
+                        case 4:
+                            return JobStatus.valueOf((each));
+                        case 5:
+                            column++;
+                            break;
+                        case 6:
+                            column++;
+                            break;
+                        case 7:
+                            column++;
+                            break;
+                    }
+                }
+            }
+        }
+        return JobStatus.valueOf("U");
     }
 
     public void parse(Map<String, JobStatus> statusMap, String rawOutput) {

Reply via email to