You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2016/08/05 23:42:30 UTC

[3/6] airavata git commit: Qos per queue: que1=qos1, que2=qos2, que3=qos3

Qos per queue: que1=qos1,que2=qos2,que3=qos3


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

Branch: refs/heads/develop
Commit: 9bc25f9a117370dabbea4f4300f6d133feddf062
Parents: f831fed
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Fri Aug 5 18:49:44 2016 -0400
Committer: Shameera Rathnayaka <sh...@gmail.com>
Committed: Fri Aug 5 18:49:44 2016 -0400

----------------------------------------------------------------------
 .../apache/airavata/gfac/core/GFacUtils.java    | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/9bc25f9a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
index 0bda74e..afbf425 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
@@ -73,6 +73,8 @@ import java.net.UnknownHostException;
 import java.nio.ByteBuffer;
 import java.security.SecureRandom;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 //import org.apache.airavata.commons.gfac.type.ActualParameter;
 
@@ -457,12 +459,12 @@ public class GFacUtils {
         }
 
         if (crp.getQualityOfService() != null) {
-            jobDescriptor.setQoS(crp.getQualityOfService());
+            // qos per queue
+            jobDescriptor.setQoS(
+                    getQoS(crp.getQualityOfService(), crp.getPreferredBatchQueue()));
         }
 
-        if (crp.getReservation() != null) {
-            jobDescriptor.setReservation(crp.getReservation());
-        }
+        jobDescriptor.setReservation(crp.getReservation());
         // To make job name alpha numeric
         jobDescriptor.setJobName("A" + String.valueOf(generateJobName()));
         jobDescriptor.setWorkingDirectory(processContext.getWorkingDir());
@@ -634,6 +636,16 @@ public class GFacUtils {
         return jobDescriptor;
     }
 
+    private static String getQoS(String qualityOfService, String preferredBatchQueue) {
+        final String qos = "qos";
+        Pattern pattern = Pattern.compile(preferredBatchQueue + "=(?<" + qos + ">[^,]*)");
+        Matcher matcher = pattern.matcher(qualityOfService);
+        if (matcher.matches()) {
+            return matcher.group(qos);
+        }
+        return null;
+    }
+
     private static int generateJobName() {
         Random random = new Random();
         int i = random.nextInt(Integer.MAX_VALUE);