Repository: airavata
Updated Branches:
  refs/heads/master b6c7c41e3 -> a6245bd58


fixing test cases with gfac-ssh implementation


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/a6245bd5
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/a6245bd5
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/a6245bd5

Branch: refs/heads/master
Commit: a6245bd58c85aff2c81bb19f6d8c9c89c0b7950c
Parents: b6c7c41
Author: lahiru <[email protected]>
Authored: Wed Apr 23 23:35:04 2014 -0400
Committer: lahiru <[email protected]>
Committed: Wed Apr 23 23:35:04 2014 -0400

----------------------------------------------------------------------
 .../gfac/provider/impl/SSHProvider.java         | 82 ++++++++++++++------
 .../gfac-ssh/src/test/resources/gfac-config.xml |  4 +-
 2 files changed, 62 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/a6245bd5/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/provider/impl/SSHProvider.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/provider/impl/SSHProvider.java
 
b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/provider/impl/SSHProvider.java
index 78cf25c..6886b8e 100644
--- 
a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/provider/impl/SSHProvider.java
+++ 
b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/provider/impl/SSHProvider.java
@@ -39,8 +39,10 @@ import org.apache.airavata.gfac.Constants;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.context.JobExecutionContext;
 import org.apache.airavata.gfac.context.MessageContext;
+import org.apache.airavata.gfac.context.security.GSISecurityContext;
 import org.apache.airavata.gfac.context.security.SSHSecurityContext;
 import org.apache.airavata.gfac.handler.GFacHandlerException;
+import org.apache.airavata.gfac.notification.events.StartExecutionEvent;
 import org.apache.airavata.gfac.provider.GFacProviderException;
 import org.apache.airavata.gfac.util.GFACSSHUtils;
 import org.apache.airavata.gfac.utils.GFacUtils;
@@ -50,11 +52,11 @@ import org.apache.airavata.gsi.ssh.api.SSHApiException;
 import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;
 import org.apache.airavata.gsi.ssh.impl.RawCommandInfo;
 import org.apache.airavata.gsi.ssh.impl.StandardOutReader;
+import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
+import org.apache.airavata.model.workspace.experiment.ErrorCategory;
+import org.apache.airavata.model.workspace.experiment.JobDetails;
 import org.apache.airavata.model.workspace.experiment.JobState;
-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.apache.airavata.schemas.gfac.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -69,7 +71,7 @@ public class SSHProvider extends AbstractProvider{
     private String jobID = null;
     private String taskID = null;
     // we keep gsisshprovider to support qsub submission incase of hpc 
scenario with ssh
-    private GSISSHProvider gsiSshProvider = null;
+    private boolean hpcType = false;
 
     public void initialize(JobExecutionContext jobExecutionContext) throws 
GFacProviderException, GFacException {
        super.initialize(jobExecutionContext);
@@ -103,13 +105,13 @@ public class SSHProvider extends AbstractProvider{
                 throw new GFacProviderException(e.getLocalizedMessage(), e);
             }
         }else{
-           gsiSshProvider = new GSISSHProvider();
+           hpcType = true;
         }
     }
 
 
     public void execute(JobExecutionContext jobExecutionContext) throws 
GFacProviderException {
-        if (gsiSshProvider == null) {
+        if (!hpcType) {
             ApplicationDeploymentDescriptionType app = 
jobExecutionContext.getApplicationContext().getApplicationDeploymentDescription().getType();
             try {
                 /*
@@ -142,7 +144,55 @@ public class SSHProvider extends AbstractProvider{
             }
         } else {
             try {
-                gsiSshProvider.execute(jobExecutionContext);
+                jobExecutionContext.getNotifier().publish(new 
StartExecutionEvent());
+                HostDescriptionType host = 
jobExecutionContext.getApplicationContext().
+                        getHostDescription().getType();
+                HpcApplicationDeploymentType app = 
(HpcApplicationDeploymentType) jobExecutionContext.getApplicationContext().
+                        getApplicationDeploymentDescription().getType();
+                JobDetails jobDetails = new JobDetails();
+                String taskID = jobExecutionContext.getTaskData().getTaskID();
+                try {
+                    Cluster cluster = null;
+                    if 
(jobExecutionContext.getSecurityContext(SSHSecurityContext.SSH_SECURITY_CONTEXT)
 != null) {
+                        cluster = ((SSHSecurityContext) 
jobExecutionContext.getSecurityContext(SSHSecurityContext.SSH_SECURITY_CONTEXT)).getPbsCluster();
+                    }
+                    if (cluster == null) {
+                        throw new GFacProviderException("Security context is 
not set properly");
+                    } else {
+                        log.info("Successfully retrieved the Security 
Context");
+                    }
+                    // This installed path is a mandetory field, because this 
could change based on the computing resource
+                    JobDescriptor jobDescriptor = 
GFacUtils.createJobDescriptor(jobExecutionContext, app, cluster);
+
+                    log.info(jobDescriptor.toXML());
+
+                    jobDetails.setJobDescription(jobDescriptor.toXML());
+
+                    String jobID = cluster.submitBatchJob(jobDescriptor);
+                    jobExecutionContext.setJobDetails(jobDetails);
+                    if (jobID == null) {
+                        jobDetails.setJobID("none");
+                        GFacUtils.saveJobStatus(jobDetails, JobState.FAILED, 
taskID);
+                    } else {
+                        jobDetails.setJobID(jobID);
+                        GFacUtils.saveJobStatus(jobDetails, 
JobState.SUBMITTED, taskID);
+                    }
+
+                } catch (SSHApiException e) {
+                    String error = "Error submitting the job to host " + 
host.getHostAddress() + " message: " + e.getMessage();
+                    log.error(error);
+                    jobDetails.setJobID("none");
+                    GFacUtils.saveJobStatus(jobDetails, JobState.FAILED, 
taskID);
+                    GFacUtils.saveErrorDetails(error, 
CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR, 
taskID);
+                    throw new GFacProviderException(error, e);
+                } catch (Exception e) {
+                    String error = "Error submitting the job to host " + 
host.getHostAddress() + " message: " + e.getMessage();
+                    log.error(error);
+                    jobDetails.setJobID("none");
+                    GFacUtils.saveJobStatus(jobDetails, JobState.FAILED, 
taskID);
+                    GFacUtils.saveErrorDetails(error, 
CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR, 
taskID);
+                    throw new GFacProviderException(error, e);
+                }
             } catch (GFacException e) {
                 throw new GFacProviderException(e.getMessage(), e);
             }
@@ -150,13 +200,7 @@ public class SSHProvider extends AbstractProvider{
     }
 
     public void dispose(JobExecutionContext jobExecutionContext) throws 
GFacProviderException {
-        if (gsiSshProvider != null){
-            try {
-                gsiSshProvider.dispose(jobExecutionContext);
-            } catch (GFacException e) {
-                throw new GFacProviderException(e.getMessage(),e);
-            }
-        }
+
     }
 
 
@@ -242,13 +286,7 @@ public class SSHProvider extends AbstractProvider{
     }
 
     public void initProperties(Map<String, String> properties) throws 
GFacProviderException, GFacException {
-         if (gsiSshProvider != null){
-            try {
-               initProperties(properties);
-            } catch (GFacException e) {
-                throw new GFacProviderException(e.getMessage(),e);
-            }
-        }
+
     }
     /**
      * This method will read standard output and if there's any it will be 
parsed

http://git-wip-us.apache.org/repos/asf/airavata/blob/a6245bd5/modules/gfac/gfac-ssh/src/test/resources/gfac-config.xml
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ssh/src/test/resources/gfac-config.xml 
b/modules/gfac/gfac-ssh/src/test/resources/gfac-config.xml
index f3881ad..85d148d 100644
--- a/modules/gfac/gfac-ssh/src/test/resources/gfac-config.xml
+++ b/modules/gfac/gfac-ssh/src/test/resources/gfac-config.xml
@@ -24,10 +24,10 @@
      <Provider class="org.apache.airavata.gfac.provider.impl.SSHProvider" 
host="org.apache.airavata.schemas.gfac.impl.SSHHostTypeImpl">
          <InHandlers>
             <Handler 
class="org.apache.airavata.gfac.handler.SSHDirectorySetupHandler"/>
-            <Handler 
class="org.apache.airavata.gfac.handler.GSISSHInputHandler"/>
+            <Handler class="org.apache.airavata.gfac.handler.SSHInputHandler"/>
         </InHandlers>
         <OutHandlers>
-            <Handler 
class="org.apache.airavata.gfac.handler.GSISSHOutputHandler"/>
+            <Handler 
class="org.apache.airavata.gfac.handler.SSHOutputHandler"/>
         </OutHandlers>
     </Provider>
 </GFac>
\ No newline at end of file

Reply via email to