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) {
