Hi Raminder,

So you are substring jobId from first index of "." what is the reason for
this?

Thanks,
Shameera.

On Mon, Jun 8, 2015 at 1:41 PM, <[email protected]> wrote:

> Repository: airavata
> Updated Branches:
>   refs/heads/airavata-0.15-release-branch e22277db1 -> df5b46459
>
>
> To fix job monitoring for blacklight. AIRAVATA-1716
>
> Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
> Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/f4d8fb9a
> Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/f4d8fb9a
> Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/f4d8fb9a
>
> Branch: refs/heads/airavata-0.15-release-branch
> Commit: f4d8fb9a1096a2c64741961387ed91f43b1ef058
> Parents: 6b0f5da
> Author: raminder <[email protected]>
> Authored: Mon Jun 8 13:40:44 2015 -0400
> Committer: raminder <[email protected]>
> Committed: Mon Jun 8 13:40:44 2015 -0400
>
> ----------------------------------------------------------------------
>  .../gfac/ssh/provider/impl/SSHProvider.java     | 52 +++++++++++---------
>  .../gsi/ssh/api/job/PBSOutputParser.java        |  3 --
>  .../gsi/ssh/impl/GSISSHAbstractCluster.java     |  9 ++++
>  3 files changed, 39 insertions(+), 25 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/airavata/blob/f4d8fb9a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
> ----------------------------------------------------------------------
> diff --git
> a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
> b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
> index a9eaae2..27708c7 100644
> ---
> a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
> +++
> b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java
> @@ -21,6 +21,18 @@
>
>  package org.apache.airavata.gfac.ssh.provider.impl;
>
> +import java.io.File;
> +import java.io.FileOutputStream;
> +import java.io.IOException;
> +import java.io.OutputStream;
> +import java.io.PrintWriter;
> +import java.io.StringWriter;
> +import java.util.Calendar;
> +import java.util.List;
> +import java.util.Map;
> +import java.util.Random;
> +import java.util.Set;
> +
>  import org.airavata.appcatalog.cpi.AppCatalogException;
>  import org.apache.airavata.common.exception.AiravataException;
>  import org.apache.airavata.common.exception.ApplicationSettingsException;
> @@ -60,18 +72,14 @@ import
> org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerTy
>  import
> org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
>  import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
>  import org.apache.airavata.model.workspace.experiment.ErrorCategory;
> -import org.apache.airavata.model.workspace.experiment.ExperimentState;
>  import org.apache.airavata.model.workspace.experiment.JobDetails;
>  import org.apache.airavata.model.workspace.experiment.JobState;
>  import org.apache.airavata.model.workspace.experiment.TaskState;
>  import org.apache.xmlbeans.XmlException;
> -import org.apache.zookeeper.KeeperException;
>  import org.slf4j.Logger;
>  import org.slf4j.LoggerFactory;
> -import sun.reflect.generics.reflectiveObjects.NotImplementedException;
>
> -import java.io.*;
> -import java.util.*;
> +import sun.reflect.generics.reflectiveObjects.NotImplementedException;
>
>  /**
>   * Execute application using remote SSH
> @@ -170,27 +178,27 @@ public class SSHProvider extends AbstractProvider {
>                          monitorPublisher.publish(new
> GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext)
>                                  , GfacExperimentState.JOBSUBMITTED));
>                          jobExecutionContext.setJobDetails(jobDetails);
> -                        if (verifyJobSubmissionByJobId(cluster, jobID)) {
> +                        try {
> +                                                       boolean
> verifyJobSubmissionByJobId = verifyJobSubmissionByJobId(cluster, jobID);
> +                                                       if
> (verifyJobSubmissionByJobId) {
> +
>  monitorPublisher.publish(new GfacExperimentStateChangeRequest(new
> MonitorID(jobExecutionContext)
> +                                                                   ,
> GfacExperimentState.JOBSUBMITTED));
> +
>  GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.QUEUED,
> monitorPublisher);
> +                                                       }
> +                                               } catch (SSHApiException
> e) {
> +                                                       log.error("Not
> able to find job " + jobID , e);
> +                                               }
> +                    } else {
> +                        jobExecutionContext.setJobDetails(jobDetails);
> +                        String verifyJobId = verifyJobSubmission(cluster,
> jobDetails);
> +                        if (verifyJobId != null &&
> !verifyJobId.isEmpty()) {
> +                            // JobStatus either changed from SUBMITTED to
> QUEUED or directly to QUEUED
> +                            jobID = verifyJobId;
> +                            jobDetails.setJobID(jobID);
>                              monitorPublisher.publish(new
> GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext)
>                                      , GfacExperimentState.JOBSUBMITTED));
>                              GFacUtils.saveJobStatus(jobExecutionContext,
> jobDetails, JobState.QUEUED, monitorPublisher);
>                          }
> -                    } else {
> -                        jobExecutionContext.setJobDetails(jobDetails);
> -                        int verificationTryCount = 0;
> -                        while (verificationTryCount++ < 3) {
> -                            String verifyJobId =
> verifyJobSubmission(cluster, jobDetails);
> -                            if (verifyJobId != null &&
> !verifyJobId.isEmpty()) {
> -                                // JobStatus either changed from
> SUBMITTED to QUEUED or directly to QUEUED
> -                                jobID = verifyJobId;
> -                                jobDetails.setJobID(jobID);
> -                                monitorPublisher.publish(new
> GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext)
> -                                        ,
> GfacExperimentState.JOBSUBMITTED));
> -
> GFacUtils.saveJobStatus(jobExecutionContext, jobDetails, JobState.QUEUED,
> monitorPublisher);
> -                                break;
> -                            }
> -                            Thread.sleep(verificationTryCount*1000);
> -                        }
>                      }
>
>                      if (jobID == null || jobID.isEmpty()) {
>
>
> http://git-wip-us.apache.org/repos/asf/airavata/blob/f4d8fb9a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/PBSOutputParser.java
> ----------------------------------------------------------------------
> diff --git
> a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/PBSOutputParser.java
> b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/PBSOutputParser.java
> index 6bc5cde..81f241d 100644
> ---
> a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/PBSOutputParser.java
> +++
> b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/api/job/PBSOutputParser.java
> @@ -124,9 +124,6 @@ public class PBSOutputParser implements OutputParser {
>
>      public String parseJobSubmission(String rawOutput) {
>          log.debug(rawOutput);
> -        if(rawOutput.contains(".")){
> -                rawOutput = rawOutput.substring(0,
> rawOutput.indexOf("."));
> -        }
>          return rawOutput;  //In PBS stdout is going to be directly the
> jobID
>      }
>
>
>
> http://git-wip-us.apache.org/repos/asf/airavata/blob/f4d8fb9a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
> ----------------------------------------------------------------------
> diff --git
> a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
> b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
> index f8b46c8..a858ada 100644
> ---
> a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
> +++
> b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
> @@ -242,6 +242,9 @@ public class GSISSHAbstractCluster implements Cluster {
>              log.info("Validation before cancel is failed, couldn't found
> job in remote host to cancel. Job may be already
> completed|failed|canceled");
>              return null;
>          }
> +        if(jobID.contains(".")){
> +               jobID = jobID.substring(0, jobID.indexOf("."));
> +       }
>          RawCommandInfo rawCommandInfo =
> jobManagerConfiguration.getCancelCommand(jobID);
>
>          StandardOutReader stdOutReader = new StandardOutReader();
> @@ -408,6 +411,9 @@ public class GSISSHAbstractCluster implements Cluster {
>
>
>      public synchronized JobDescriptor getJobDescriptorById(String jobID)
> throws SSHApiException {
> +       if(jobID.contains(".")){
> +               jobID = jobID.substring(0, jobID.indexOf("."));
> +       }
>          RawCommandInfo rawCommandInfo =
> jobManagerConfiguration.getMonitorCommand(jobID);
>          StandardOutReader stdOutReader = new StandardOutReader();
>          log.info("Executing RawCommand : " +
> rawCommandInfo.getCommand());
> @@ -419,6 +425,9 @@ public class GSISSHAbstractCluster implements Cluster {
>      }
>
>      public synchronized JobStatus getJobStatus(String jobID) throws
> SSHApiException {
> +       if(jobID.contains(".")){
> +               jobID = jobID.substring(0, jobID.indexOf("."));
> +       }
>          RawCommandInfo rawCommandInfo =
> jobManagerConfiguration.getMonitorCommand(jobID);
>          StandardOutReader stdOutReader = new StandardOutReader();
>          log.info("Executing RawCommand : " +
> rawCommandInfo.getCommand());
>
>


-- 
Best Regards,
Shameera Rathnayaka.

email: shameera AT apache.org , shameerainfo AT gmail.com
Blog : http://shameerarathnayaka.blogspot.com/

Reply via email to