This is an automated email from the ASF dual-hosted git repository. machristie pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/airavata.git
commit f13c17fe41bfdd1a4c8e35a88ab16f534190b523 Author: [email protected] <Dimu@1234> AuthorDate: Wed Jan 17 11:30:10 2018 -0500 Fixing AIRAVATA-2621 --- .../airavata/gfac/core/context/ProcessContext.java | 33 +++++++++++++++++++++- .../apache/airavata/gfac/impl/GFacEngineImpl.java | 2 +- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java index 6ca29e3..3f45ff4 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java @@ -43,6 +43,7 @@ import org.apache.airavata.model.status.ProcessState; import org.apache.airavata.model.status.ProcessStatus; import org.apache.airavata.model.task.TaskModel; import org.apache.airavata.registry.cpi.AppCatalog; +import org.apache.airavata.registry.cpi.AppCatalogException; import org.apache.airavata.registry.cpi.ExperimentCatalog; import org.apache.curator.framework.CuratorFramework; import org.slf4j.Logger; @@ -620,7 +621,37 @@ public class ProcessContext { } } - public ServerInfo getComputeResourceServerInfo(){ + public ServerInfo getComputeResourceServerInfo() throws GFacException { + + if (this.jobSubmissionProtocol == JobSubmissionProtocol.SSH) { + Optional<JobSubmissionInterface> firstJobSubmissionIface = getComputeResourceDescription() + .getJobSubmissionInterfaces().stream() + .filter(iface -> iface.getJobSubmissionProtocol() == JobSubmissionProtocol.SSH) + .findFirst(); + + if (firstJobSubmissionIface.isPresent()) { + + try { + SSHJobSubmission sshJobSubmission = appCatalog.getComputeResource() + .getSSHJobSubmission(firstJobSubmissionIface.get().getJobSubmissionInterfaceId()); + + String alternateHostName = sshJobSubmission.getAlternativeSSHHostName(); + String hostName = !(alternateHostName == null || alternateHostName.length() == 0) ? alternateHostName : + getComputeResourceDescription().getHostName(); + + return new ServerInfo( + getComputeResourceLoginUserName(), + hostName, + getComputeResourceCredentialToken(), + sshJobSubmission.getSshPort()); + + } catch (AppCatalogException e) { + throw new GFacException("Failed to fetch ssh job submission for interface " + + firstJobSubmissionIface.get().getJobSubmissionInterfaceId(), e); + } + } + } + return new ServerInfo(getComputeResourceLoginUserName(), getComputeResourceDescription().getHostName(), getComputeResourceCredentialToken()); diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java index ac3e755..e81f164 100644 --- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java +++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java @@ -848,7 +848,7 @@ public class GFacEngineImpl implements GFacEngine { } private TaskContext getDataStagingTaskContext(ProcessContext processContext, OutputDataObjectType processOutput) - throws TException, TaskException { + throws TException, TaskException, GFacException { TaskContext taskCtx = new TaskContext(); taskCtx.setParentProcessContext(processContext); // create new task model for this task -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
