You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2013/10/08 20:45:03 UTC
svn commit: r1530385 - in /airavata/trunk/modules/gfac-core/src:
main/java/org/apache/airavata/gfac/handler/
main/java/org/apache/airavata/gfac/provider/impl/
test/java/org/apache/airavata/core/gfac/services/impl/ test/resources/
Author: lahiru
Date: Tue Oct 8 18:45:03 2013
New Revision: 1530385
URL: http://svn.apache.org/r1530385
Log:
adding ssh capablity to gfac-core.
Modified:
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/SCPOutputHandler.java
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/GSISSHProvider.java
airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/SSHProvider.java
airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/BigRed2Test.java
airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTest.java
airavata/trunk/modules/gfac-core/src/test/resources/gfac-config.xml
Modified: airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/SCPOutputHandler.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/SCPOutputHandler.java?rev=1530385&r1=1530384&r2=1530385&view=diff
==============================================================================
--- airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/SCPOutputHandler.java (original)
+++ airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/handler/SCPOutputHandler.java Tue Oct 8 18:45:03 2013
@@ -27,7 +27,6 @@ import java.util.Map;
import net.schmizz.sshj.connection.ConnectionException;
import net.schmizz.sshj.transport.TransportException;
-import net.schmizz.sshj.xfer.scp.SCPFileTransfer;
import org.apache.airavata.commons.gfac.type.ActualParameter;
import org.apache.airavata.gfac.GFacException;
@@ -35,6 +34,7 @@ import org.apache.airavata.gfac.context.
import org.apache.airavata.gfac.context.security.SSHSecurityContext;
import org.apache.airavata.gfac.utils.GFacUtils;
import org.apache.airavata.gfac.utils.OutputUtils;
+import org.apache.airavata.gsi.ssh.api.Cluster;
import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
import org.apache.xmlbeans.XmlException;
@@ -45,17 +45,17 @@ public class SCPOutputHandler implements
ApplicationDeploymentDescriptionType app = jobExecutionContext.getApplicationContext()
.getApplicationDeploymentDescription().getType();
try {
- SSHSecurityContext securityContext = (SSHSecurityContext) jobExecutionContext
+ SSHSecurityContext securityContext = (SSHSecurityContext) jobExecutionContext
.getSecurityContext(SSHSecurityContext.SSH_SECURITY_CONTEXT);
+ Cluster pbsCluster = securityContext.getPbsCluster();
// Get the Stdouts and StdErrs
String timeStampedServiceName = GFacUtils.createUniqueNameForService(jobExecutionContext.getServiceName());
File localStdOutFile = File.createTempFile(timeStampedServiceName, "stdout");
File localStdErrFile = File.createTempFile(timeStampedServiceName, "stderr");
- SCPFileTransfer fileTransfer = securityContext.getSSHClient().newSCPFileTransfer();
- fileTransfer.download(app.getStandardOutput(), localStdOutFile.getAbsolutePath());
- fileTransfer.download(app.getStandardError(), localStdErrFile.getAbsolutePath());
+ pbsCluster.scpFrom(app.getStandardOutput(), localStdOutFile.getAbsolutePath());
+ pbsCluster.scpFrom(app.getStandardError(), localStdErrFile.getAbsolutePath());
String stdOutStr = GFacUtils.readFileToString(localStdOutFile.getAbsolutePath());
String stdErrStr = GFacUtils.readFileToString(localStdErrFile.getAbsolutePath());
Modified: airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/GSISSHProvider.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/GSISSHProvider.java?rev=1530385&r1=1530384&r2=1530385&view=diff
==============================================================================
--- airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/GSISSHProvider.java (original)
+++ airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/GSISSHProvider.java Tue Oct 8 18:45:03 2013
@@ -128,14 +128,4 @@ public class GSISSHProvider implements G
public void cancelJob(String jobId, JobExecutionContext jobExecutionContext) throws GFacException {
//To change body of implemented methods use File | Settings | File Templates.
}
-
- private String maxWallTimeCalculator(int maxWalltime) {
- if (maxWalltime < 60) {
- return "00:" + maxWalltime + ":00";
- } else {
- int minutes = maxWalltime % 60;
- int hours = maxWalltime / 60;
- return hours + ":" + minutes + ":00";
- }
- }
}
Modified: airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/SSHProvider.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/SSHProvider.java?rev=1530385&r1=1530384&r2=1530385&view=diff
==============================================================================
--- airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/SSHProvider.java (original)
+++ airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/SSHProvider.java Tue Oct 8 18:45:03 2013
@@ -53,6 +53,7 @@ import org.apache.airavata.registry.api.
import org.apache.airavata.registry.api.workflow.ApplicationJob.ApplicationJobStatus;
import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
import org.apache.airavata.schemas.gfac.NameValuePairType;
+import org.apache.airavata.schemas.gfac.SSHHostType;
import org.apache.airavata.schemas.gfac.URIArrayType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -67,6 +68,7 @@ public class SSHProvider implements GFac
private String jobID=null;
public void initialize(JobExecutionContext jobExecutionContext) throws GFacProviderException,GFacException {
+ if(!((SSHHostType)jobExecutionContext.getApplicationContext().getHostDescription()).getHpcResource()){
jobID="SSH_"+jobExecutionContext.getApplicationContext().getHostDescription().getType().getHostAddress()+"_"+Calendar.getInstance().getTimeInMillis();
securityContext = (SSHSecurityContext) jobExecutionContext.getSecurityContext(SSHSecurityContext.SSH_SECURITY_CONTEXT);
@@ -82,6 +84,7 @@ public class SSHProvider implements GFac
} catch (IOException e) {
throw new GFacProviderException(e.getLocalizedMessage(), e);
}
+ }
}
private void saveApplicationJob(JobExecutionContext jobExecutionContext, String executableName) {
@@ -95,6 +98,7 @@ public class SSHProvider implements GFac
}
public void execute(JobExecutionContext jobExecutionContext) throws GFacProviderException {
+ if(((SSHHostType)jobExecutionContext.getApplicationContext().getHostDescription()).getHpcResource()){
ApplicationDeploymentDescriptionType app = jobExecutionContext.getApplicationContext().getApplicationDeploymentDescription().getType();
Session session = null;
try {
@@ -130,6 +134,14 @@ public class SSHProvider implements GFac
}finally{
securityContext.closeSession(session);
}
+ }else {
+ GSISSHProvider gsisshProvider = new GSISSHProvider();
+ try {
+ gsisshProvider.execute(jobExecutionContext);
+ } catch (GFacException e) {
+ throw new GFacProviderException(e.getMessage(), e);
+ }
+ }
}
Modified: airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/BigRed2Test.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/BigRed2Test.java?rev=1530385&r1=1530384&r2=1530385&view=diff
==============================================================================
--- airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/BigRed2Test.java (original)
+++ airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/BigRed2Test.java Tue Oct 8 18:45:03 2013
@@ -79,7 +79,6 @@ public class BigRed2Test {
HostDescription host = new HostDescription(GsisshHostType.type);
host.getType().setHostAddress(hostAddress);
host.getType().setHostName(hostName);
- ((GsisshHostType) host.getType()).setInstalledParentPath("/opt/torque/torque-4.2.3.1/bin/");
/*
* App
*/
@@ -119,7 +118,7 @@ public class BigRed2Test {
app.setStandardError(tempDir + File.separator + app.getApplicationName().getStringValue() + ".stderr");
app.setMaxWallTime(5);
app.setJobSubmitterCommand("aprun -n 1");
-
+ app.setInstalledParentPath("/opt/torque/torque-4.2.3.1/bin/");
/*
* Service
@@ -151,7 +150,7 @@ public class BigRed2Test {
jobExecutionContext = new JobExecutionContext(gFacConfiguration, serv.getType().getName());
// Adding security context
- jobExecutionContext.addSecurityContext(SSHSecurityContext.SSH_SECURITY_CONTEXT, getSecurityContext(host));
+ jobExecutionContext.addSecurityContext(SSHSecurityContext.SSH_SECURITY_CONTEXT, getSecurityContext(app));
ApplicationContext applicationContext = new ApplicationContext();
jobExecutionContext.setApplicationContext(applicationContext);
applicationContext.setServiceDescription(serv);
@@ -171,11 +170,11 @@ public class BigRed2Test {
// ((StringParameterType)echo_input.getType()).setValue("echo_output=hello");
outMessage.addParameter("echo_output", echo_out);
- jobExecutionContext.setOutMessageContext(outMessage);
+ jobExecutionContext.setOutMessageContext( outMessage);
}
- private SecurityContext getSecurityContext(HostDescription host) {
+ private SecurityContext getSecurityContext(HpcApplicationDeploymentType app) {
AuthenticationInfo authenticationInfo = new DefaultPasswordAuthenticationInfo(this.password);
// Server info
ServerInfo serverInfo = new ServerInfo(this.userName, this.hostName);
@@ -183,7 +182,7 @@ public class BigRed2Test {
Cluster pbsCluster = null;
try {
pbsCluster = new PBSCluster(serverInfo, authenticationInfo,
- ((GsisshHostType)host.getType()).getInstalledParentPath());
+ (app.getInstalledParentPath()));
} catch (SSHApiException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
Modified: airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTest.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTest.java?rev=1530385&r1=1530384&r2=1530385&view=diff
==============================================================================
--- airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTest.java (original)
+++ airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTest.java Tue Oct 8 18:45:03 2013
@@ -81,7 +81,7 @@ public class GSISSHProviderTest {
HostDescription host = new HostDescription(GsisshHostType.type);
host.getType().setHostAddress(hostAddress);
host.getType().setHostName(hostName);
- ((GsisshHostType) host.getType()).setInstalledParentPath("/opt/torque/bin/");
+
/*
* App
*/
@@ -125,7 +125,7 @@ public class GSISSHProviderTest {
app.setStandardOutput(tempDir + File.separator + app.getApplicationName().getStringValue() + ".stdout");
app.setStandardError(tempDir + File.separator + app.getApplicationName().getStringValue() + ".stderr");
app.setMaxWallTime(5);
-
+ app.setInstalledParentPath("/opt/torque/bin/");
/*
* Service
@@ -157,7 +157,7 @@ public class GSISSHProviderTest {
jobExecutionContext = new JobExecutionContext(gFacConfiguration, serv.getType().getName());
// Adding security context
- jobExecutionContext.addSecurityContext(SSHSecurityContext.SSH_SECURITY_CONTEXT, getSecurityContext());
+ jobExecutionContext.addSecurityContext(SSHSecurityContext.SSH_SECURITY_CONTEXT, getSecurityContext(app));
ApplicationContext applicationContext = new ApplicationContext();
jobExecutionContext.setApplicationContext(applicationContext);
applicationContext.setServiceDescription(serv);
@@ -181,7 +181,7 @@ public class GSISSHProviderTest {
}
- private SecurityContext getSecurityContext() {
+ private SecurityContext getSecurityContext(HpcApplicationDeploymentType app) {
GSIAuthenticationInfo authenticationInfo
= new MyProxyAuthenticationInfo(myProxyUserName, myProxyPassword, "myproxy.teragrid.org",
7512, 17280000, certificateLocation);
@@ -190,7 +190,7 @@ public class GSISSHProviderTest {
ServerInfo serverInfo = new ServerInfo("ogce", "trestles.sdsc.edu");
Cluster pbsCluster = null;
try {
- pbsCluster = new PBSCluster(serverInfo, authenticationInfo, "/opt/torque/bin/");
+ pbsCluster = new PBSCluster(serverInfo, authenticationInfo, app.getInstalledParentPath());
} catch (SSHApiException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
Modified: airavata/trunk/modules/gfac-core/src/test/resources/gfac-config.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/gfac-core/src/test/resources/gfac-config.xml?rev=1530385&r1=1530384&r2=1530385&view=diff
==============================================================================
--- airavata/trunk/modules/gfac-core/src/test/resources/gfac-config.xml (original)
+++ airavata/trunk/modules/gfac-core/src/test/resources/gfac-config.xml Tue Oct 8 18:45:03 2013
@@ -84,7 +84,7 @@
<Handler class="org.apache.airavata.gfac.handler.SCPInputHandler"/>
</InHandlers>
<OutHandlers>
- <!--Handler class="org.apache.airavata.gfac.handler.SCPOutputHandler"/-->
+ <Handler class="org.apache.airavata.gfac.handler.SCPOutputHandler"/>
</OutHandlers>
</Provider>
</GFac>
\ No newline at end of file