You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2014/11/11 21:12:19 UTC

[15/50] [abbrv] airavata git commit: Updated JobExecutionContext with thrift data model types

Updated JobExecutionContext with thrift data model types


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

Branch: refs/heads/master
Commit: 73e21be4cf423dc35fb5f1a3363f989a40e067e7
Parents: 96a673f
Author: shamrath <sh...@gmail.com>
Authored: Thu Oct 30 15:57:33 2014 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Wed Nov 5 11:16:15 2014 -0500

----------------------------------------------------------------------
 .../gfac/core/context/JobExecutionContext.java  | 91 +++++++++++++++-----
 .../airavata/gfac/core/cpi/BetterGfacImpl.java  | 37 ++++----
 2 files changed, 85 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/73e21be4/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/JobExecutionContext.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/JobExecutionContext.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/JobExecutionContext.java
index 2b2255f..3616b42 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/JobExecutionContext.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/JobExecutionContext.java
@@ -33,6 +33,9 @@ import org.apache.airavata.gfac.SecurityContext;
 import org.apache.airavata.gfac.core.cpi.GFac;
 import org.apache.airavata.gfac.core.notification.GFacNotifier;
 import org.apache.airavata.gfac.core.provider.GFacProvider;
+import org.apache.airavata.model.appcatalog.computeresource.DataMovementProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
 import org.apache.airavata.model.workspace.experiment.Experiment;
 import org.apache.airavata.model.workspace.experiment.JobDetails;
 import org.apache.airavata.model.workspace.experiment.TaskDetails;
@@ -67,16 +70,42 @@ public class JobExecutionContext extends AbstractContext implements Serializable
     private ZooKeeper zk;
 
     private String credentialStoreToken;
-
+    /**
+     * User defined working directory.
+     */
     private String workingDir;
-
+    /**
+     * Input data directory
+     */
     private String inputDir;
+    /**
+     * Output data directory
+     */
     private String outputDir;
-    private String standaredOutput;
-    private String standaredError;
-    private String prefferedJobSubmissionProtocal;
-    private String prefferedDataMovementProtocal;
-
+    /**
+     * standard output file path
+     */
+    private String standardOutput;
+    /**
+     * standard error file path
+     */
+    private String standardError;
+    /**
+     * User preferred job submission protocol.
+     */
+    private JobSubmissionProtocol preferredJobSubmissionProtocol;
+    /**
+     * User preferred data movement protocol.
+     */
+    private DataMovementProtocol preferredDataMovementProtocol;
+    /**
+     * List of job submission protocols sorted by priority order.
+      */
+    private List<JobSubmissionInterface> hostPrioritizedJobSubmissionInterfaces;
+    /**
+     * use preferred job submission protocol.
+     */
+    private JobSubmissionInterface preferredJobSubmissionInterface;
 
 //    private ContextHeaderDocument.ContextHeader contextHeader;
 
@@ -354,35 +383,51 @@ public class JobExecutionContext extends AbstractContext implements Serializable
         this.outputDir = outputDir;
     }
 
-    public String getStandaredOutput() {
-        return standaredOutput;
+    public String getStandardOutput() {
+        return standardOutput;
+    }
+
+    public void setStandardOutput(String standardOutput) {
+        this.standardOutput = standardOutput;
+    }
+
+    public String getStandardError() {
+        return standardError;
+    }
+
+    public void setStandardError(String standardError) {
+        this.standardError = standardError;
+    }
+
+    public JobSubmissionProtocol getPreferredJobSubmissionProtocol() {
+        return preferredJobSubmissionProtocol;
     }
 
-    public void setStandaredOutput(String standaredOutput) {
-        this.standaredOutput = standaredOutput;
+    public void setPreferredJobSubmissionProtocol(JobSubmissionProtocol preferredJobSubmissionProtocol) {
+        this.preferredJobSubmissionProtocol = preferredJobSubmissionProtocol;
     }
 
-    public String getStandaredError() {
-        return standaredError;
+    public DataMovementProtocol getPreferredDataMovementProtocol() {
+        return preferredDataMovementProtocol;
     }
 
-    public void setStandaredError(String standaredError) {
-        this.standaredError = standaredError;
+    public void setPreferredDataMovementProtocol(DataMovementProtocol preferredDataMovementProtocol) {
+        this.preferredDataMovementProtocol = preferredDataMovementProtocol;
     }
 
-    public String getPrefferedJobSubmissionProtocal() {
-        return prefferedJobSubmissionProtocal;
+    public List<JobSubmissionInterface> getHostPrioritizedJobSubmissionInterfaces() {
+        return hostPrioritizedJobSubmissionInterfaces;
     }
 
-    public void setPrefferedJobSubmissionProtocal(String prefferedJobSubmissionProtocal) {
-        this.prefferedJobSubmissionProtocal = prefferedJobSubmissionProtocal;
+    public void setHostPrioritizedJobSubmissionInterfaces(List<JobSubmissionInterface> hostPrioritizedJobSubmissionInterfaces) {
+        this.hostPrioritizedJobSubmissionInterfaces = hostPrioritizedJobSubmissionInterfaces;
     }
 
-    public String getPrefferedDataMovementProtocal() {
-        return prefferedDataMovementProtocal;
+    public JobSubmissionInterface getPreferredJobSubmissionInterface() {
+        return preferredJobSubmissionInterface;
     }
 
-    public void setPrefferedDataMovementProtocal(String prefferedDataMovementProtocal) {
-        this.prefferedDataMovementProtocal = prefferedDataMovementProtocal;
+    public void setPreferredJobSubmissionInterface(JobSubmissionInterface preferredJobSubmissionInterface) {
+        this.preferredJobSubmissionInterface = preferredJobSubmissionInterface;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/73e21be4/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
index fd43c65..696b61b 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
@@ -53,6 +53,7 @@ import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentD
 import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
 import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
 import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.messaging.event.*;
 import org.apache.airavata.model.workspace.experiment.*;
@@ -70,6 +71,8 @@ import java.io.File;
 import java.io.IOException;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Properties;
 
@@ -319,31 +322,25 @@ public class BetterGfacImpl implements GFac,Watcher {
             /*
             * Stdout and Stderr for Shell
             */
-            jobExecutionContext.setStandaredOutput(workingDir + File.separator + applicationInterface.getApplicationName().replaceAll("\\s+", "") + ".stdout");
-            jobExecutionContext.setStandaredError(workingDir + File.separator + applicationInterface.getApplicationName().replaceAll("\\s+", "") + ".stderr");
+            jobExecutionContext.setStandardOutput(workingDir + File.separator + applicationInterface.getApplicationName().replaceAll("\\s+", "") + ".stdout");
+            jobExecutionContext.setStandardError(workingDir + File.separator + applicationInterface.getApplicationName().replaceAll("\\s+", "") + ".stderr");
+
+            jobExecutionContext.setPreferredJobSubmissionProtocol(gatewayResourcePreferences.getPreferredJobSubmissionProtocol());
         }
 
         List<JobSubmissionInterface> jobSubmissionInterfaces = computeResource.getJobSubmissionInterfaces();
-        String preferredJobSubmissionProtocol = gatewayResourcePreferences.getPreferredJobSubmissionProtocol();
-        String hostClass;
-        if (preferredJobSubmissionProtocol != null){
-            hostClass = preferredJobSubmissionProtocol;
-        }else {
-            if (jobSubmissionInterfaces != null && !jobSubmissionInterfaces.isEmpty()){
-                int lowestPriority = jobSubmissionInterfaces.get(0).getPriorityOrder();
-                String selectedHost = null;
-                for (int i = 0; i < jobSubmissionInterfaces.size() - 1; i++){
-                    if (jobSubmissionInterfaces.get(i+1).getPriorityOrder() < lowestPriority ){
-                        lowestPriority = jobSubmissionInterfaces.get(i+1).getPriorityOrder();
-                        selectedHost = jobSubmissionInterfaces.get(i+1).getJobSubmissionProtocol().toString();
-                    }
+        if (jobSubmissionInterfaces != null && !jobSubmissionInterfaces.isEmpty()){
+            Collections.sort(jobSubmissionInterfaces, new Comparator<JobSubmissionInterface>() {
+                @Override
+                public int compare(JobSubmissionInterface jobSubmissionInterface, JobSubmissionInterface jobSubmissionInterface2) {
+                    return jobSubmissionInterface.getPriorityOrder() - jobSubmissionInterface2.getPriorityOrder();
                 }
-                hostClass = selectedHost;
-            }else {
-                throw new GFacException("Compute resource should have atleast one job submission interface defined...");
-            }
+            });
+
+            jobExecutionContext.setHostPrioritizedJobSubmissionInterfaces(jobSubmissionInterfaces);
+        }else {
+            throw new GFacException("Compute resource should have at least one job submission interface defined...");
         }
-        jobExecutionContext.setPrefferedJobSubmissionProtocal(hostClass);
 
         return jobExecutionContext;
     }