You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by pa...@apache.org on 2011/08/23 20:39:54 UTC
svn commit: r1160842 - in /incubator/airavata/trunk/modules/gfac-core: ./
src/main/java/org/apache/airavata/core/gfac/context/
src/main/java/org/apache/airavata/core/gfac/context/impl/
src/main/java/org/apache/airavata/core/gfac/exception/ src/main/jav...
Author: patanachai
Date: Tue Aug 23 18:39:53 2011
New Revision: 1160842
URL: http://svn.apache.org/viewvc?rev=1160842&view=rev
Log:
Remove old gfac-schema from build file
Removed:
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/ServiceContext.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/FileTransferFault.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/model/
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GFacOptions.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GlobalConfiguration.java
Modified:
incubator/airavata/trunk/modules/gfac-core/pom.xml
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/ExecutionContext.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/impl/ExecutionContextImpl.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/impl/GSISecurityContext.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/ContactInfo.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GFacConstants.java
incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GfacUtils.java
Modified: incubator/airavata/trunk/modules/gfac-core/pom.xml
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/pom.xml?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/pom.xml (original)
+++ incubator/airavata/trunk/modules/gfac-core/pom.xml Tue Aug 23 18:39:53 2011
@@ -99,11 +99,6 @@
<!-- GFAC schemas -->
<dependency>
- <groupId>gfac</groupId>
- <artifactId>gfac-schema-utils</artifactId>
- <version>0.4.3</version>
- </dependency>
- <dependency>
<groupId>airavata</groupId>
<artifactId>airavata-gfac-schema-utils</artifactId>
<version>0.0.1-SNAPSHOT</version>
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/ExecutionContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/ExecutionContext.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/ExecutionContext.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/ExecutionContext.java Tue Aug 23 18:39:53 2011
@@ -22,31 +22,18 @@
package org.apache.airavata.core.gfac.context;
import org.apache.airavata.core.gfac.api.Registry;
-import org.apache.airavata.core.gfac.model.ExecutionModel;
import org.apache.airavata.core.gfac.notification.NotificationService;
import org.ogce.namespaces.x2010.x08.x30.workflowContextHeader.WorkflowContextHeaderDocument.WorkflowContextHeader;
public interface ExecutionContext {
- ExecutionModel getExecutionModel();
-
- void setExectionModel(ExecutionModel model);
-
WorkflowContextHeader getWorkflowHeader();
void setWorkflowHeader(WorkflowContextHeader header);
NotificationService getNotificationService();
- void setNotificationService(NotificationService service);
-
- SecurityContext getSecurityContext();
-
- void setSecurityContext(SecurityContext context);
-
- ServiceContext getServiceContext();
-
- void setServiceContext(ServiceContext context);
+ void setNotificationService(NotificationService service);
Registry getRegistryService();
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/impl/ExecutionContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/impl/ExecutionContextImpl.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/impl/ExecutionContextImpl.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/impl/ExecutionContextImpl.java Tue Aug 23 18:39:53 2011
@@ -23,27 +23,14 @@ package org.apache.airavata.core.gfac.co
import org.apache.airavata.core.gfac.api.Registry;
import org.apache.airavata.core.gfac.context.ExecutionContext;
-import org.apache.airavata.core.gfac.context.SecurityContext;
-import org.apache.airavata.core.gfac.context.ServiceContext;
-import org.apache.airavata.core.gfac.model.ExecutionModel;
import org.apache.airavata.core.gfac.notification.NotificationService;
import org.ogce.namespaces.x2010.x08.x30.workflowContextHeader.WorkflowContextHeaderDocument.WorkflowContextHeader;
public class ExecutionContextImpl implements ExecutionContext {
- private ExecutionModel executionModel;
private WorkflowContextHeader workflowContextHeader;
private NotificationService notificationService;
private Registry registryService;
- private SecurityContext securityContext;
-
- public ExecutionModel getExecutionModel() {
- return executionModel;
- }
-
- public void setExectionModel(ExecutionModel model) {
- this.executionModel = model;
- }
public WorkflowContextHeader getWorkflowHeader() {
return workflowContextHeader;
@@ -62,25 +49,6 @@ public class ExecutionContextImpl implem
}
- public SecurityContext getSecurityContext() {
- return this.securityContext;
- }
-
- public void setSecurityContext(SecurityContext context) {
- this.securityContext = context;
-
- }
-
- public ServiceContext getServiceContext() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void setServiceContext(ServiceContext context) {
- // TODO Auto-generated method stub
-
- }
-
public Registry getRegistryService() {
return this.registryService;
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/impl/GSISecurityContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/impl/GSISecurityContext.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/impl/GSISecurityContext.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/context/impl/GSISecurityContext.java Tue Aug 23 18:39:53 2011
@@ -25,7 +25,6 @@ import org.apache.airavata.core.gfac.con
import org.apache.airavata.core.gfac.context.impl.utils.MyProxyManager;
import org.apache.airavata.core.gfac.exception.GfacException;
import org.apache.airavata.core.gfac.exception.GfacException.FaultCode;
-import org.apache.airavata.core.gfac.utils.GlobalConfiguration;
import org.globus.tools.MyProxy;
import org.ietf.jgss.GSSCredential;
import org.ietf.jgss.GSSException;
@@ -49,37 +48,11 @@ public class GSISecurityContext implemen
private String trustedCertLoc;
private GSSCredential gssCredentails;
- private GlobalConfiguration globalConfiguration;
public GSISecurityContext() {
}
- public GSISecurityContext(GlobalConfiguration globalConfiguration) throws GfacException {
- try {
- this.globalConfiguration = globalConfiguration;
- myproxyUserName = globalConfiguration.getProperty("myproxyUserName");
- myproxyPasswd = globalConfiguration.getProperty("myproxyPasswd");
- myproxyServer = globalConfiguration.getProperty("myproxyServer");
- String lifetime = globalConfiguration.getProperty("myproxyLifetime");
- trustedCertLoc = globalConfiguration.getTrustedCertsFile();
- // Load the Credential configurations
- if (myproxyUserName != null && myproxyPasswd != null && myproxyServer != null && lifetime != null) {
- this.myproxyLifetime = Integer.parseInt(lifetime);
- this.proxyRenewer = new MyProxyManager(myproxyUserName, myproxyPasswd, MyProxy.MYPROXY_SERVER_PORT,
- myproxyLifetime, myproxyServer, trustedCertLoc);
- log.info("loaded credentails from Proxy server");
- } else {
- log.info(myproxyUserName + " " + (myproxyPasswd != null) + " " + myproxyServer + " " + myproxyLifetime);
- this.proxyRenewer = null;
- }
- } catch (NumberFormatException e) {
- throw new GfacException(e, FaultCode.InvaliedLocalArgumnet);
- } catch (Exception e) {
- throw new GfacException(e, FaultCode.InternalServiceError);
- }
- }
-
public GSSCredential getGssCredentails() throws GfacException, GSSException {
try {
System.out.println(gssCredentails);
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java Tue Aug 23 18:39:53 2011
@@ -21,16 +21,6 @@
package org.apache.airavata.core.gfac.exception;
-import java.text.DateFormat;
-import java.util.Date;
-
-import org.apache.xmlbeans.XmlObject;
-import org.ogce.schemas.gfac.inca.faults.ActionDocument;
-import org.ogce.schemas.gfac.inca.faults.ActionDocument.Action;
-import org.ogce.schemas.gfac.inca.faults.Application;
-import org.ogce.schemas.gfac.inca.faults.DataTransfer;
-import org.ogce.schemas.gfac.inca.faults.FileSystem;
-import org.ogce.schemas.gfac.inca.faults.Job;
public class GfacException extends Exception {
@@ -39,8 +29,6 @@ public class GfacException extends Excep
};
private static final long serialVersionUID = 1L;
- private static DateFormat formatter = DateFormat.getTimeInstance();
- protected ActionDocument errorActionDocument;
protected String faultCode;
@@ -73,29 +61,5 @@ public class GfacException extends Excep
public void setFaultCode(String faultCode) {
this.faultCode = faultCode;
- }
-
- public ActionDocument createFaultData(XmlObject fault, String api, Throwable e) {
- ActionDocument document = ActionDocument.Factory.newInstance();
- Action type = document.addNewAction();
- type.setId("");
- type.setApplication("lead");
- type.setApi(api);
-
- if (fault instanceof DataTransfer) {
- type.setDataTransferArray(new DataTransfer[] { (DataTransfer) fault });
- } else if (fault instanceof Job) {
- type.setJobArray(new Job[] { (Job) fault });
- } else if (fault instanceof Job) {
- type.setFileSystemArray(new FileSystem[] { (FileSystem) fault });
- } else if (fault instanceof Application) {
- type.setCmdapplicationArray(new Application[] { (Application) fault });
- }
- type.setEndTime(formatter.format(new Date()));
- Throwable cause = e;
- while (cause.getCause() != null) {
- cause = cause.getCause();
- }
- return document;
- }
+ }
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java Tue Aug 23 18:39:53 2011
@@ -21,16 +21,10 @@
package org.apache.airavata.core.gfac.exception;
-import org.apache.airavata.core.gfac.utils.GFacOptions.CurrentProviders;
-import org.ogce.schemas.gfac.inca.faults.Job;
+import org.apache.airavata.core.gfac.provider.Provider;
public class JobSubmissionFault extends GfacException {
- public JobSubmissionFault(Throwable cause, String submitHost, String contact, String rsl, CurrentProviders api) {
+ public JobSubmissionFault(Throwable cause, String submitHost, String contact, String rsl, Provider api) {
super(cause, FaultCode.ErrorAtDependentService);
- Job job = Job.Factory.newInstance();
- job.setContact(contact);
- job.setRsl(rsl);
- job.setSubmitHost(submitHost);
- errorActionDocument = createFaultData(job, api.toString(), cause);
}
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java Tue Aug 23 18:39:53 2011
@@ -50,8 +50,9 @@ import org.apache.airavata.core.gfac.con
import org.apache.airavata.core.gfac.context.impl.AmazonSecurityContext;
import org.apache.airavata.core.gfac.exception.GfacException;
import org.apache.airavata.core.gfac.exception.GfacException.FaultCode;
-import org.apache.airavata.core.gfac.model.ExecutionModel;
import org.apache.airavata.core.gfac.notification.NotificationService;
+import org.apache.airavata.core.gfac.type.HostDescription;
+import org.apache.airavata.core.gfac.type.app.ShellApplicationDeployment;
import org.apache.airavata.core.gfac.utils.GFacConstants;
import org.apache.airavata.core.gfac.utils.GfacUtils;
import org.apache.airavata.core.gfac.utils.OutputUtils;
@@ -102,11 +103,11 @@ public class EC2Provider extends Abstrac
return buff.toString();
}
- public void initialize(InvocationContext invocationContext) throws GfacException {
- ExecutionContext appExecContext = invocationContext.getExecutionContext();
- ExecutionModel model = appExecContext.getExecutionModel();
+ public void initialize(InvocationContext context) throws GfacException {
+ HostDescription host = context.getGfacContext().getHost();
+ ShellApplicationDeployment app = (ShellApplicationDeployment)context.getGfacContext().getApp();
- AmazonSecurityContext amazonSecurityContext = ((AmazonSecurityContext) invocationContext
+ AmazonSecurityContext amazonSecurityContext = ((AmazonSecurityContext) context
.getSecurityContext(AMAZON_SECURITY_CONTEXT));
String access_key = amazonSecurityContext.getAccessKey();
String secret_key = amazonSecurityContext.getSecretKey();
@@ -131,7 +132,7 @@ public class EC2Provider extends Abstrac
// right now, we can run it on one host
if (ami_id != null)
this.instance = startInstances(ec2client, ami_id, ins_type,
- invocationContext.getExecutionContext().getNotificationService()).get(0);
+ context.getExecutionContext().getNotificationService()).get(0);
else {
// already running instance
DescribeInstancesRequest describeInstancesRequest = new DescribeInstancesRequest();
@@ -152,7 +153,7 @@ public class EC2Provider extends Abstrac
}
// send out instance id
- invocationContext
+ context
.getExecutionContext()
.getNotificationService()
.sendResourceMappingNotifications(
@@ -190,7 +191,7 @@ public class EC2Provider extends Abstrac
}
// set Host location
- model.setHost(this.instance.getPublicDnsName());
+ host.setName(this.instance.getPublicDnsName());
/*
* Make directory
@@ -205,16 +206,16 @@ public class EC2Provider extends Abstrac
try {
StringBuilder command = new StringBuilder();
command.append("mkdir -p ");
- command.append(model.getTmpDir());
+ command.append(app.getTmpDir());
command.append(" | ");
command.append("mkdir -p ");
- command.append(model.getWorkingDir());
+ command.append(app.getWorkingDir());
command.append(" | ");
command.append("mkdir -p ");
- command.append(model.getInputDataDir());
+ command.append(app.getInputDir());
command.append(" | ");
command.append("mkdir -p ");
- command.append(model.getOutputDataDir());
+ command.append(app.getOutputDir());
Command cmd = session.exec(command.toString());
cmd.join(5, TimeUnit.SECONDS);
} catch (Exception e) {
@@ -235,10 +236,17 @@ public class EC2Provider extends Abstrac
}
}
- public void execute(InvocationContext invocationContext) throws GfacException {
- ExecutionContext context = invocationContext.getExecutionContext();
- ExecutionModel model = context.getExecutionModel();
-
+ public void execute(InvocationContext context) throws GfacException {
+ HostDescription host = context.getGfacContext().getHost();
+ ShellApplicationDeployment app = (ShellApplicationDeployment)context.getGfacContext().getApp();
+
+ // input parameter
+ ArrayList<String> tmp = new ArrayList<String>();
+ for (Iterator<String> iterator = context.getMessageContext("input").getParameterNames(); iterator.hasNext();) {
+ String key = iterator.next();
+ tmp.add(context.getMessageContext("input").getStringParameterValue(key));
+ }
+
List<String> cmdList = new ArrayList<String>();
SSHClient ssh = new SSHClient();
@@ -247,28 +255,28 @@ public class EC2Provider extends Abstrac
/*
* Notifier
*/
- NotificationService notifier = context.getNotificationService();
+ NotificationService notifier = context.getExecutionContext().getNotificationService();
/*
* Builder Command
*/
- cmdList.add(context.getExecutionModel().getExecutable());
- cmdList.addAll(context.getExecutionModel().getInputParameters());
+ cmdList.add(app.getExecutable());
+ cmdList.addAll(tmp);
// create process builder from command
String command = buildCommand(cmdList);
// redirect StdOut and StdErr
- command += SPACE + "1>" + SPACE + model.getStdOut();
- command += SPACE + "2>" + SPACE + model.getStderr();
+ command += SPACE + "1>" + SPACE + app.getStdOut();
+ command += SPACE + "2>" + SPACE + app.getStdErr();
// get the env of the host and the application
- Map<String, String> nv = context.getExecutionModel().getEnv();
+ Map<String, String> nv = app.getEnv();
// extra env's
- nv.put(GFacConstants.INPUT_DATA_DIR, context.getExecutionModel().getInputDataDir());
- nv.put(GFacConstants.OUTPUT_DATA_DIR, context.getExecutionModel().getOutputDataDir());
-
+ nv.put(GFacConstants.INPUT_DATA_DIR_VAR_NAME, app.getInputDir());
+ nv.put(GFacConstants.OUTPUT_DATA_DIR_VAR_NAME, app.getOutputDir());
+
// log info
log.info("Command = " + buildCommand(cmdList));
for (String key : nv.keySet()) {
@@ -282,7 +290,7 @@ public class EC2Provider extends Abstrac
* Create ssh connection
*/
ssh.loadKnownHosts();
- ssh.connect(model.getHost());
+ ssh.connect(host.getName());
ssh.authPublickey(privateKeyFilePath);
final Session session = ssh.startSession();
@@ -290,9 +298,9 @@ public class EC2Provider extends Abstrac
/*
* Build working Directory
*/
- log.info("WorkingDir = " + model.getWorkingDir());
- session.exec("mkdir -p " + model.getWorkingDir());
- session.exec("cd " + model.getWorkingDir());
+ log.info("WorkingDir = " + app.getWorkingDir());
+ session.exec("mkdir -p " + app.getWorkingDir());
+ session.exec("cd " + app.getWorkingDir());
/*
* Set environment
@@ -327,21 +335,20 @@ public class EC2Provider extends Abstrac
}
// Get the Stdouts and StdErrs
- QName x = QName.valueOf(invocationContext.getServiceName());
+ QName x = QName.valueOf(context.getServiceName());
String timeStampedServiceName = GfacUtils.createServiceDirName(x);
File localStdOutFile = new File(logDir, timeStampedServiceName + ".stdout");
File localStdErrFile = new File(logDir, timeStampedServiceName + ".stderr");
SCPFileTransfer fileTransfer = ssh.newSCPFileTransfer();
- fileTransfer.download(model.getStdOut(), localStdOutFile.getAbsolutePath());
- fileTransfer.download(model.getStderr(), localStdErrFile.getAbsolutePath());
+ fileTransfer.download(app.getStdOut(), localStdOutFile.getAbsolutePath());
+ fileTransfer.download(app.getStdErr(), localStdErrFile.getAbsolutePath());
- context.getExecutionModel().setStdoutStr(GfacUtils.readFile(localStdOutFile.getAbsolutePath()));
- context.getExecutionModel().setStderrStr(GfacUtils.readFile(localStdErrFile.getAbsolutePath()));
+ String stdOutStr = GfacUtils.readFile(localStdOutFile.getAbsolutePath());
+ String stdErrStr = GfacUtils.readFile(localStdErrFile.getAbsolutePath());
// set to context
- OutputUtils.fillOutputFromStdout(invocationContext.getMessageContext("output"), context
- .getExecutionModel().getStdoutStr(), context.getExecutionModel().getStderrStr());
+ OutputUtils.fillOutputFromStdout(context.getMessageContext("output"), stdOutStr, stdErrStr);
} catch (Exception e) {
throw e;
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java Tue Aug 23 18:39:53 2011
@@ -22,13 +22,11 @@
package org.apache.airavata.core.gfac.provider;
import java.io.File;
-import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import javax.xml.namespace.QName;
-import org.apache.airavata.core.gfac.context.ExecutionContext;
import org.apache.airavata.core.gfac.context.InvocationContext;
import org.apache.airavata.core.gfac.context.impl.GSISecurityContext;
import org.apache.airavata.core.gfac.exception.GfacException;
@@ -43,7 +41,6 @@ import org.apache.airavata.core.gfac.typ
import org.apache.airavata.core.gfac.type.app.ShellApplicationDeployment;
import org.apache.airavata.core.gfac.type.host.GlobusHost;
import org.apache.airavata.core.gfac.utils.ErrorCodes;
-import org.apache.airavata.core.gfac.utils.GFacOptions.CurrentProviders;
import org.apache.airavata.core.gfac.utils.GfacUtils;
import org.apache.airavata.core.gfac.utils.OutputUtils;
import org.globus.gram.GramAttributes;
@@ -164,7 +161,7 @@ public class GramProvider extends Abstra
if (jobStatus == GramJob.STATUS_FAILED) {
errCode = listener.getError();
String errorMsg = "Job " + job.getID() + " on host " + host.getName() + " Error Code = " + errCode;
- GfacException error = new JobSubmissionFault(new Exception(errorMsg), "GFAC HOST", gatekeeper, rsl, CurrentProviders.Gram);
+ GfacException error = new JobSubmissionFault(new Exception(errorMsg), "GFAC HOST", gatekeeper, rsl, this);
if (errCode == 8) {
error.setFaultCode(ErrorCodes.JOB_CANCELED);
} else {
@@ -210,7 +207,7 @@ public class GramProvider extends Abstra
jobSucsseful = true;
} catch (GramException e) {
String localHost = "xxxx";
- GfacException error = new JobSubmissionFault(e, localHost, gatekeeper, rsl, CurrentProviders.Gram);
+ GfacException error = new JobSubmissionFault(e, localHost, gatekeeper, rsl, this);
if (errCode == 8) {
error.setFaultCode(ErrorCodes.JOB_CANCELED);
} else {
@@ -218,7 +215,7 @@ public class GramProvider extends Abstra
}
throw error;
} catch (GSSException e) {
- throw new JobSubmissionFault(e, "GFAC HOST", gatekeeper, rsl, CurrentProviders.Gram);
+ throw new JobSubmissionFault(e, "GFAC HOST", gatekeeper, rsl, this);
} catch (URISyntaxException e) {
throw new GfacException(e, FaultCode.ErrorAtDependentService);
} catch (InterruptedException e) {
@@ -238,21 +235,7 @@ public class GramProvider extends Abstra
}
- public void abort(InvocationContext invocationContext) throws GfacException {
- try {
- ExecutionContext context = invocationContext.getExecutionContext();
- GramJob job = new GramJob("");
- job.setID(context.getExecutionModel().getJobID());
- job.setCredentials(((GSISecurityContext) context.getSecurityContext()).getGssCredentails());
- job.cancel();
- } catch (MalformedURLException e) {
- throw new GfacException(e, FaultCode.ErrorAtDependentService);
- } catch (GramException e) {
- throw new GfacException(e, FaultCode.ErrorAtDependentService);
- } catch (GSSException e) {
- throw new GfacException(e, FaultCode.ErrorAtDependentService);
- }
-
+ public void abort(InvocationContext invocationContext) throws GfacException {
}
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java Tue Aug 23 18:39:53 2011
@@ -96,8 +96,8 @@ public class LocalProvider extends Abstr
builder.environment().putAll(nv);
// extra env's
- builder.environment().put(GFacConstants.INPUT_DATA_DIR, app.getInputDir());
- builder.environment().put(GFacConstants.OUTPUT_DATA_DIR, app.getOutputDir());
+ builder.environment().put(GFacConstants.INPUT_DATA_DIR_VAR_NAME, app.getInputDir());
+ builder.environment().put(GFacConstants.OUTPUT_DATA_DIR_VAR_NAME, app.getOutputDir());
// working directory
builder.directory(new File(app.getWorkingDir()));
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java Tue Aug 23 18:39:53 2011
@@ -23,6 +23,7 @@ package org.apache.airavata.core.gfac.pr
import java.io.File;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -34,11 +35,11 @@ import net.schmizz.sshj.connection.chann
import net.schmizz.sshj.connection.channel.direct.Session.Command;
import net.schmizz.sshj.xfer.scp.SCPFileTransfer;
-import org.apache.airavata.core.gfac.context.ExecutionContext;
import org.apache.airavata.core.gfac.context.InvocationContext;
import org.apache.airavata.core.gfac.exception.GfacException;
-import org.apache.airavata.core.gfac.model.ExecutionModel;
import org.apache.airavata.core.gfac.notification.NotificationService;
+import org.apache.airavata.core.gfac.type.HostDescription;
+import org.apache.airavata.core.gfac.type.app.ShellApplicationDeployment;
import org.apache.airavata.core.gfac.utils.GFacConstants;
import org.apache.airavata.core.gfac.utils.GfacUtils;
import org.apache.airavata.core.gfac.utils.OutputUtils;
@@ -58,14 +59,14 @@ public class SSHProvider extends Abstrac
return buff.toString();
}
- public void initialize(InvocationContext invocationContext) throws GfacException {
- ExecutionContext appExecContext = invocationContext.getExecutionContext();
- ExecutionModel model = appExecContext.getExecutionModel();
+ public void initialize(InvocationContext context) throws GfacException {
+ HostDescription host = context.getGfacContext().getHost();
+ ShellApplicationDeployment app = (ShellApplicationDeployment)context.getGfacContext().getApp();
SSHClient ssh = new SSHClient();
try {
ssh.loadKnownHosts();
- ssh.connect(model.getHost());
+ ssh.connect(host.getName());
// TODO how to authenticate with system
ssh.authPublickey(System.getProperty("user.name"));
@@ -73,16 +74,16 @@ public class SSHProvider extends Abstrac
try {
StringBuilder command = new StringBuilder();
command.append("mkdir -p ");
- command.append(model.getTmpDir());
+ command.append(app.getTmpDir());
command.append(" | ");
command.append("mkdir -p ");
- command.append(model.getWorkingDir());
+ command.append(app.getWorkingDir());
command.append(" | ");
command.append("mkdir -p ");
- command.append(model.getInputDataDir());
+ command.append(app.getInputDir());
command.append(" | ");
command.append("mkdir -p ");
- command.append(model.getOutputDataDir());
+ command.append(app.getOutputDir());
Command cmd = session.exec(command.toString());
cmd.join(5, TimeUnit.SECONDS);
} catch (Exception e) {
@@ -103,10 +104,17 @@ public class SSHProvider extends Abstrac
}
}
- public void execute(InvocationContext invocationContext) throws GfacException {
- ExecutionContext context = invocationContext.getExecutionContext();
- ExecutionModel model = context.getExecutionModel();
-
+ public void execute(InvocationContext context) throws GfacException {
+ HostDescription host = context.getGfacContext().getHost();
+ ShellApplicationDeployment app = (ShellApplicationDeployment)context.getGfacContext().getApp();
+
+ // input parameter
+ ArrayList<String> tmp = new ArrayList<String>();
+ for (Iterator<String> iterator = context.getMessageContext("input").getParameterNames(); iterator.hasNext();) {
+ String key = iterator.next();
+ tmp.add(context.getMessageContext("input").getStringParameterValue(key));
+ }
+
List<String> cmdList = new ArrayList<String>();
SSHClient ssh = new SSHClient();
@@ -115,27 +123,27 @@ public class SSHProvider extends Abstrac
/*
* Notifier
*/
- NotificationService notifier = context.getNotificationService();
+ NotificationService notifier = context.getExecutionContext().getNotificationService();
/*
* Builder Command
*/
- cmdList.add(context.getExecutionModel().getExecutable());
- cmdList.addAll(context.getExecutionModel().getInputParameters());
+ cmdList.add(app.getExecutable());
+ cmdList.addAll(tmp);
// create process builder from command
String command = buildCommand(cmdList);
// redirect StdOut and StdErr
- command += SPACE + "1>" + SPACE + model.getStdOut();
- command += SPACE + "2>" + SPACE + model.getStderr();
+ command += SPACE + "1>" + SPACE + app.getStdOut();
+ command += SPACE + "2>" + SPACE + app.getStdErr();
// get the env of the host and the application
- Map<String, String> nv = context.getExecutionModel().getEnv();
+ Map<String, String> nv = app.getEnv();
// extra env's
- nv.put(GFacConstants.INPUT_DATA_DIR, context.getExecutionModel().getInputDataDir());
- nv.put(GFacConstants.OUTPUT_DATA_DIR, context.getExecutionModel().getOutputDataDir());
+ nv.put(GFacConstants.INPUT_DATA_DIR_VAR_NAME, app.getInputDir());
+ nv.put(GFacConstants.OUTPUT_DATA_DIR_VAR_NAME, app.getOutputDir());
// log info
log.info("Command = " + buildCommand(cmdList));
@@ -150,7 +158,7 @@ public class SSHProvider extends Abstrac
* Create ssh connection
*/
ssh.loadKnownHosts();
- ssh.connect(model.getHost());
+ ssh.connect(host.getName());
// TODO how to authenticate with system
ssh.authPublickey(System.getProperty("user.name"));
@@ -160,9 +168,9 @@ public class SSHProvider extends Abstrac
/*
* Build working Directory
*/
- log.info("WorkingDir = " + model.getWorkingDir());
- session.exec("mkdir -p " + model.getWorkingDir());
- session.exec("cd " + model.getWorkingDir());
+ log.info("WorkingDir = " + app.getWorkingDir());
+ session.exec("mkdir -p " + app.getWorkingDir());
+ session.exec("cd " + app.getWorkingDir());
/*
* Set environment
@@ -197,21 +205,20 @@ public class SSHProvider extends Abstrac
}
// Get the Stdouts and StdErrs
- QName x = QName.valueOf(invocationContext.getServiceName());
+ QName x = QName.valueOf(context.getServiceName());
String timeStampedServiceName = GfacUtils.createServiceDirName(x);
File localStdOutFile = new File(logDir, timeStampedServiceName + ".stdout");
File localStdErrFile = new File(logDir, timeStampedServiceName + ".stderr");
SCPFileTransfer fileTransfer = ssh.newSCPFileTransfer();
- fileTransfer.download(model.getStdOut(), localStdOutFile.getAbsolutePath());
- fileTransfer.download(model.getStderr(), localStdErrFile.getAbsolutePath());
+ fileTransfer.download(app.getStdOut(), localStdOutFile.getAbsolutePath());
+ fileTransfer.download(app.getStdErr(), localStdErrFile.getAbsolutePath());
- context.getExecutionModel().setStdoutStr(GfacUtils.readFile(localStdOutFile.getAbsolutePath()));
- context.getExecutionModel().setStderrStr(GfacUtils.readFile(localStdErrFile.getAbsolutePath()));
+ String stdOutStr = GfacUtils.readFile(localStdOutFile.getAbsolutePath());
+ String stdErrStr = GfacUtils.readFile(localStdErrFile.getAbsolutePath());
// set to context
- OutputUtils.fillOutputFromStdout(invocationContext.getMessageContext("output"), context
- .getExecutionModel().getStdoutStr(), context.getExecutionModel().getStderrStr());
+ OutputUtils.fillOutputFromStdout(context.getMessageContext("output"), stdOutStr, stdErrStr);
} catch (Exception e) {
throw e;
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java Tue Aug 23 18:39:53 2011
@@ -65,8 +65,8 @@ public class GramRSLGenerator {
jobAttr.addEnvVariable(key, nv.get(key));
}
- jobAttr.addEnvVariable(GFacConstants.INPUT_DATA_DIR, app.getInputDir());
- jobAttr.addEnvVariable(GFacConstants.INPUT_DATA_DIR, app.getOutputDir());
+ jobAttr.addEnvVariable(GFacConstants.INPUT_DATA_DIR_VAR_NAME, app.getInputDir());
+ jobAttr.addEnvVariable(GFacConstants.INPUT_DATA_DIR_VAR_NAME, app.getOutputDir());
WorkflowContextHeader contextHeader = context.getExecutionContext().getWorkflowHeader();
ResourceMapping resourceMapping = null;
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/ContactInfo.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/ContactInfo.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/ContactInfo.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/ContactInfo.java Tue Aug 23 18:39:53 2011
@@ -31,8 +31,8 @@ public class ContactInfo {
public ContactInfo(String hostName, int port) {
if (port <= 0 || port == 80) {
- log.info(hostName + "port recived " + port + " setting it to " + GFacConstants.GSI_FTP_PORT);
- port = GFacConstants.GSI_FTP_PORT;
+ log.info(hostName + "port recived " + port + " setting it to " + GFacConstants.DEFAULT_GSI_FTP_PORT);
+ port = GFacConstants.DEFAULT_GSI_FTP_PORT;
}
this.hostName = hostName;
this.port = port;
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GFacConstants.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GFacConstants.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GFacConstants.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GFacConstants.java Tue Aug 23 18:39:53 2011
@@ -22,140 +22,15 @@
package org.apache.airavata.core.gfac.utils;
public class GFacConstants {
- public static final String GFAC_NAMESPACE = "http://www.extreme.indiana.edu/namespaces/2004/01/gFac";
- public static final String INPUT_DATA_DIR = "inputData";
+ public static final String INPUT_DATA_DIR_VAR_NAME = "inputData";
- public static final String OUTPUT_DATA_DIR = "outputData";
+ public static final String OUTPUT_DATA_DIR_VAR_NAME = "outputData";
- public static final String DEFAULT_TMP_DIR = "/tmp";
-
- public static final String SHUTDOWN = "Shutdown";
-
- public static final String PING = "Ping";
-
- public static final String KILL = "Kill";
-
- public static final String CREATE_SERVICE = "CreateService";
-
- public static final String TRANSPORT_LEVEL = "TransportLevel";
-
- public static final String MESSAGE_SIGNATURE = "MessageSignature";
-
- public static final String SERVICE_URI = "SERVICE_URI";
-
- public static final String METHOD_NAME = "METHOD_NAME";
-
- public static final String SERVICE_NAME = "SERVICE_NAME";
-
- public static final String APP_SERVICE_STRING_PARAM = "AFAC_STRING_PARAM";
-
- public static final String SERVICE_RESP_MSG_SUFFIX = "_ResponseMessage";
-
- public static final String SERVICE_INPUT_PARAMS_TYPE_SUFFIX = "_InputParamsType";
-
- public static final String SERVICE_OUTPUT_PARAMS_TYPE_SUFFIX = "_OutputParamsType";
-
- public static final String SERVICE_REQ_MSG_SUFFIX = "_RequestMessage";
-
- public static final String SERVICE_IN_PARAMS_SUFFIX = "_InputParams";
-
- public static final String SERVICE_OUT_PARAMS_SUFFIX = "_OutputParams";
-
- public static final String SERVICE_TMP_DIR = "AFAC_TMP_DIR";
-
- public static final String SERVICE_INPUT_MESSAGE_NAME = "AFAC_INPUT_MESSAGE_NAME";
-
- public static final String BROKER_URL = "http://ogceportal.iu.teragrid.org:12346/";
-
- public static final String SERVICE_BROKER = "http://tyr14.cs.indiana.edu:7777/axis2/services/HostSchedulerService?wsdl";
-
- public static final int GSI_FTP_PORT = 2811;
-
- public static final String HOST = "host";
-
- public static final String UTF8 = "UTF-8";
-
- public static final String ARRAY_VALUE = "value";
-
- public static final String ADMIN_TOPIC = "ADMIN";
+ public static final int DEFAULT_GSI_FTP_PORT = 2811;
public static final String _127_0_0_1 = "127.0.0.1";
public static final String LOCALHOST = "localhost";
-
- // GFac data types
- public static class Types {
- public static final String TYPE_STRING = "String";
-
- public static final String TYPE_INT = "Integer";
-
- public static final String TYPE_FLOAT = "Float";
-
- public static final String TYPE_DOUBLE = "Double";
-
- public static final String TYPE_BOOLEAN = "Boolean";
-
- public static final String TYPE_QNAME = "QName";
-
- public static final String TYPE_URI = "URI";
-
- public static final String TYPE_STRING_ARRAY = "StringArray";
-
- public static final String TYPE_INT_ARRAY = "IntegerArray";
-
- public static final String TYPE_FLAOT_ARRAY = "FloatArray";
-
- public static final String TYPE_DOUBLE_ARRAY = "DoubleArray";
-
- public static final String TYPE_BOOLEAN_ARRAY = "BooleanArray";
-
- public static final String TYPE_QNAME_ARRAY = "QNameArray";
-
- public static final String TYPE_URI_ARRAY = "URIArray";
-
- public static final String TYPE_LEADFILEID = "LEADFileID";
-
- public static final String TYPE_LEADFILEID_ARRAY = "LEADFileIDArray";
-
- public static final String TYPE_STDOUT = "StdOut";
-
- public static final String TYPE_STDERRORs = "StdErr";
-
- public static final String LEAD_NAMELIST_FILE = "LEADNameListFile";
-
- public static final String LEAD_NAMELIST_PROPERTIES_FILE = "LEADNameListPropertiesFile";
-
- public static final String LEAD_CROSSCUT_PARAMETERS = "LeadCrosscutParameters";
-
- public static final String TYPE_DATAID = "DataID";
- public static final String TYPE_DATAID_ARRAY = "DataIDArray";
-
- };
-
- public static interface InbuitOperations {
- public static final String OP_KILL = "Kill";
-
- public static final String OP_PING = "Ping";
-
- public static final String OP_SHUTDOWN = "Shutdown";
-
- public static final String USER_INTERACTION = "UserInteraction";
- }
-
- public static final String LOGGER_NAME = "gfac.logger";
-
- public static String REGISTRY_URL = "https://localhost:6666/xregistry?wsdl";
-
- public static String HOSTBINDING_EXTENSION_NAME = "resource-mapping";
-
- public static int SLEEP_TIME = 1000;
-
- public static String FAULT_NAMESPACE = "http://extreme.indiana.edu/management/faults";
-
- public static String FAULT_DETAILS_NAME = "faultParameters";
-
- public static enum TransportSchema {
- http, ssh, sftp, gsiftp
- };
+
}
Modified: incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GfacUtils.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GfacUtils.java?rev=1160842&r1=1160841&r2=1160842&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GfacUtils.java (original)
+++ incubator/airavata/trunk/modules/gfac-core/src/main/java/org/apache/airavata/core/gfac/utils/GfacUtils.java Tue Aug 23 18:39:53 2011
@@ -35,9 +35,7 @@ import java.net.InetAddress;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.UnknownHostException;
-import java.util.ArrayList;
import java.util.Date;
-import java.util.Iterator;
import java.util.Properties;
import java.util.Random;
import java.util.UUID;
@@ -46,28 +44,8 @@ import java.util.concurrent.atomic.Atomi
import javax.xml.namespace.QName;
-import org.apache.airavata.core.gfac.context.ExecutionContext;
-import org.apache.airavata.core.gfac.context.MessageContext;
import org.apache.airavata.core.gfac.exception.GfacException;
import org.apache.airavata.core.gfac.exception.GfacException.FaultCode;
-import org.globus.gram.Gram;
-import org.globus.gram.GramAttributes;
-import org.globus.gram.GramJob;
-import org.globus.gram.internal.GRAMConstants;
-import org.ietf.jgss.GSSCredential;
-import org.ogce.namespaces.x2010.x08.x30.workflowContextHeader.WorkflowContextHeaderDocument.WorkflowContextHeader;
-import org.ogce.namespaces.x2010.x08.x30.workflowResourceMapping.ResourceMappingDocument.ResourceMapping;
-import org.ogce.schemas.gfac.documents.ApplicationDescriptionDocument;
-import org.ogce.schemas.gfac.documents.ApplicationDescriptionType;
-import org.ogce.schemas.gfac.documents.GlobusGatekeeperType;
-import org.ogce.schemas.gfac.documents.GlobusJobManagerType;
-import org.ogce.schemas.gfac.documents.HostDescriptionDocument;
-import org.ogce.schemas.gfac.documents.HostDescriptionType;
-import org.ogce.schemas.gfac.documents.MethodType;
-import org.ogce.schemas.gfac.documents.PortTypeType;
-import org.ogce.schemas.gfac.documents.ServiceMapType;
-import org.ogce.schemas.gfac.documents.ServiceType.ServiceName;
-import org.ogce.schemas.gfac.validator.SchemaValidator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -145,107 +123,6 @@ public class GfacUtils {
}
}
- public static void syncFileSystem(String host, GSSCredential gssCred) {
- try {
- GramAttributes gramAttr = new GramAttributes();
- gramAttr.setExecutable("/bin/sync");
- GramJob job = new GramJob(gramAttr.toRSL());
- job.setCredentials(gssCred);
- log.info("RSL = " + job.getRSL());
- try {
- Gram.request(host, job, false, false);
- } catch (Exception e) {
- String error = "Cannot launch GRAM job to sync filesystem. " + e.getMessage();
- log.error(error, e);
- throw new Exception(e);
- }
-
- int twoMin = 1000 * 60 * 2;
- long start = System.currentTimeMillis();
-
- while ((System.currentTimeMillis() - start) < twoMin) {
- int jobStatus = job.getStatus();
-
- // job finished successfully
- if (jobStatus == GRAMConstants.STATUS_DONE) {
- log.info("Filesystem sync succeeded");
- return;
- } else if (jobStatus == GRAMConstants.STATUS_FAILED) {
- String error = "Filesystem sync failed";
- log.info(error);
- throw new Exception(error);
- }
- try {
- Thread.sleep(2000);
- } catch (InterruptedException ie) {
- log.error("Thread " + Thread.currentThread().getName() + " interrupted", ie);
- try {
- job.cancel();
- } catch (Exception e) {
- log.error("Exception cancelling job", e);
- }
- }
- }
- log.info("Filesystem sync timed out");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public static HostDescriptionType parseHostDescirption(String hostDescStr) throws GfacException {
- try {
- HostDescriptionType hostDesc = HostDescriptionDocument.Factory.parse(hostDescStr).getHostDescription();
- SchemaValidator validator = new SchemaValidator(hostDesc);
- validator.validate();
- return hostDesc;
- } catch (Exception e) {
- throw new GfacException(e, FaultCode.InvaliedLocalArgumnet);
- }
- }
-
- public static ApplicationDescriptionType parseAppDescirption(Reader reader) throws GfacException {
- try {
- ApplicationDescriptionType appDesc = ApplicationDescriptionDocument.Factory.parse(reader)
- .getApplicationDescription();
- SchemaValidator validator = new SchemaValidator(appDesc);
- validator.validate();
- return appDesc;
- } catch (IOException e) {
- throw new GfacException(e, FaultCode.InvaliedLocalArgumnet);
- } catch (Exception e) {
- throw new GfacException(e, FaultCode.InvaliedLocalArgumnet);
- }
- }
-
- public static MethodType findOperationFromServiceMap(String operationName, ServiceMapType serviceMap)
- throws GfacException {
- PortTypeType portType = serviceMap.getPortTypeArray()[0];
- MethodType[] methods = portType.getMethodArray();
- for (int i = 0; i < methods.length; i++) {
- if (methods[i].getMethodName().equals(operationName)) {
- return methods[i];
- }
- }
-
- if (isInbuiltOperation(operationName)) {
- MethodType method = portType.addNewMethod();
- method.setMethodName(operationName);
- return method;
- }
-
- throw new GfacException("Method name " + operationName + " not found", FaultCode.InvaliedLocalArgumnet);
- }
-
- public static MethodType findOperationWithApplication(ServiceMapType serviceMap) throws GfacException {
- MethodType[] methods = serviceMap.getPortTypeArray()[0].getMethodArray();
- for (int i = 0; i < methods.length; i++) {
- if (methods[i].getApplication() != null) {
- return methods[i];
- }
- }
- return null;
- }
-
public static boolean isLocalHost(String appHost) throws GfacException {
try {
String localHost = InetAddress.getLocalHost().getCanonicalHostName();
@@ -259,18 +136,6 @@ public class GfacUtils {
} catch (UnknownHostException e) {
throw new GfacException(e, FaultCode.LocalError);
}
- }
-
- public static boolean isInbuiltOperation(String name) {
- return GFacConstants.InbuitOperations.OP_KILL.equals(name)
- || GFacConstants.InbuitOperations.OP_PING.equals(name)
- || GFacConstants.InbuitOperations.OP_SHUTDOWN.equals(name);
- }
-
- public static void printArray(ArrayList<String> list) {
- for (Iterator iter = list.iterator(); iter.hasNext();) {
- System.out.println(iter.next());
- }
}
public static String createServiceDirName(QName serviceName) {
@@ -286,34 +151,6 @@ public class GfacUtils {
return errStrW.getBuffer().toString();
}
- // public static String prettyPrint2String(XmlElement ele) {
- // try {
- // MXSerializer serializer = new MXSerializer();
- // StringWriter writer = new StringWriter();
- // serializer.setOutput(writer);
- // serializer.setProperty(PROPERTY_SERIALIZER_INDENTATION, INDENT);
- // XmlConstants.BUILDER.serialize(ele, serializer);
- // return writer.toString();
- // } catch (Exception e) {
- // e.printStackTrace();
- // return "Error happend pretty printing";
- // }
- // }
-
- // public static void prettyPrint(XmlElement ele) throws GfacException {
- // try {
- //
- // System.out.println(prettyPrint2String(ele));
- //
- // } catch (IllegalArgumentException e) {
- // throw new GfacException(e, FaultCode.InvaliedLocalArgumnet);
- // } catch (IllegalStateException e) {
- // throw new GfacException(e, FaultCode.InvaliedLocalArgumnet);
- // } catch (XmlBuilderException e) {
- // throw new GfacException(e, FaultCode.InvaliedLocalArgumnet);
- // }
- // }
-
public static URI createGsiftpURI(ContactInfo host, String localPath) throws GfacException {
try {
StringBuffer buf = new StringBuffer();
@@ -367,12 +204,7 @@ public class GfacUtils {
throw new GfacException(e, FaultCode.InvaliedLocalArgumnet);
}
}
-
- public static QName getServiceNameFromServiceMap(ServiceMapType serviceMap) {
- ServiceName serviceName = serviceMap.getService().getServiceName();
- return new QName(serviceName.getTargetNamespace(), serviceName.getStringValue());
- }
-
+
public static URI createWorkflowQName(QName name) throws GfacException {
try {
return new URI("urn:qname:" + name.getNamespaceURI() + ":" + name.getLocalPart());
@@ -397,124 +229,10 @@ public class GfacUtils {
return Boolean.valueOf(value.trim());
}
- // public static String buildAnnotations(QName name, String value) {
- // XmlElement anno = builder.newFragment(name.getNamespaceURI(),
- // name.getLocalPart());
- // anno.addChild(value);
- // return builder.serializeToString(anno);
- // }
-
- public static QName findApplcationName(ServiceMapType serviceMap) throws GfacException {
- MethodType method = GfacUtils.findOperationWithApplication(serviceMap);
-
- if (method == null) {
- throw new GfacException("None of the methods has application defined", FaultCode.InvaliedLocalArgumnet);
- }
-
- String applicationName = method.getApplication().getApplicationName().getStringValue();
- String applicationNameNs = method.getApplication().getApplicationName().getTargetNamespace();
- return new QName(applicationNameNs, applicationName);
- }
-
- public static GlobusGatekeeperType findGateKeeper(ExecutionContext appExecContext, boolean wsgram)
- throws GfacException {
- WorkflowContextHeader header = appExecContext.getWorkflowHeader();
- boolean isSpruceEnabled = false;
- if (header != null) {
- isSpruceEnabled = (appExecContext.getWorkflowHeader().getURGENCY() != null);
- ResourceMapping resourceMapping = appExecContext.getWorkflowHeader().getResourceMappings()
- .getResourceMappingArray()[0];
- if (resourceMapping != null) {
- URI gatekeeperfromResourceMapping = null;
- try {
- gatekeeperfromResourceMapping = new URI(resourceMapping.getGatekeeperEpr());
- } catch (URISyntaxException e) {
- throw new GfacException(e.getLocalizedMessage(), e);
- }
- if (gatekeeperfromResourceMapping != null) {
- log.info("Gate keeper selected from resource mapping");
- GlobusGatekeeperType gatekeeper = GlobusGatekeeperType.Factory.newInstance();
-
- if (!resourceMapping.getWsgramPreferred()) {
- if (resourceMapping.getJobManager() != null) {
- throw new GfacException(
- "Job Manager parameter must not defined for Pre-WSGram in Resource Mapping, "
- + "include it with your gatekeepr EPR in resource mapping",
- FaultCode.InternalServiceError);
- }
- } else {
- if (resourceMapping.getJobManager() != null) {
- gatekeeper.setJobmanagertype(GlobusJobManagerType.Enum.forString(resourceMapping
- .getJobManager()));
- }
- }
- gatekeeper.setEndPointReference(gatekeeperfromResourceMapping.toString());
- return gatekeeper;
- }
- }
- }
-
- HostDescriptionType hostDesc = appExecContext.getExecutionModel().getHostDesc();
- GlobusGatekeeperType[] gatekeepers = hostDesc.getHostConfiguration().getGlobusGatekeeperArray();
- for (GlobusGatekeeperType gateKeeper : gatekeepers) {
- if (gateKeeper.getWsGram() == wsgram
- && (isSpruceEnabled == gateKeeper.getJobmanagertype().equals(GlobusJobManagerType.SPRUCE))) {
- log.info((wsgram ? "WSGram" : "Gram ") + (!isSpruceEnabled ? "Non" : "") + " Spruce Gate keeper"
- + gateKeeper.xmlText() + " selected");
- return gateKeeper;
- }
- }
- log.warn("Even though urgency header precent, there is no spruce job manager present. Moving on with non spruce job manager");
- for (GlobusGatekeeperType gateKeeper : gatekeepers) {
- if (gateKeeper.getWsGram() == wsgram) {
- log.info((wsgram ? "WSGram" : "Gram ") + (!isSpruceEnabled ? "Non" : "") + " Spruce Gate keeper"
- + gateKeeper.xmlText() + " selected");
- return gateKeeper;
- }
- }
- return null;
- }
-
public static String formatJobStatus(String jobid, String jobstatus) {
return "Status of job " + jobid + "is " + jobstatus;
}
- // public static GlobusGatekeeperType getSpruceGatekeeper(ExecutionContext
- // appExecContext) {
- // GlobusGatekeeperType spruceGatekeeper = null;
- //
- // HostDescriptionType hostDesc = appExecContext.getHostDesc();
- // GlobusGatekeeperType[] gatekeepers =
- // hostDesc.getHostConfiguration().getGlobusGatekeeperArray();
- //
- // if (gatekeepers != null && gatekeepers.length > 0) {
- // for (GlobusGatekeeperType gatekeeper : gatekeepers) {
- // if (gatekeeper.getJobmanagertype().equals(GlobusJobManagerType.SPRUCE)) {
- // spruceGatekeeper = gatekeeper;
- // break;
- // }
- // }
- // }
- //
- // return spruceGatekeeper;
- // }
-
- // public static String findServiceRegistryUrl(LeadContextHeader header){
- // if(header == null){
- // return null;
- // }else{
- // URI serviceRegistryUrl = header.getXRegistryUrl();
- // if(serviceRegistryUrl == null){
- // serviceRegistryUrl = header.getResourceCatalogUrl();
- // }
- // if(serviceRegistryUrl != null){
- // return serviceRegistryUrl.toString();
- // }else{
- // return null;
- // }
- // }
- // }
-
public static String createRandomName(String name) {
return name + System.currentTimeMillis() + "_" + tempFileCount.incrementAndGet();
}