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 2015/05/15 17:52:47 UTC

airavata git commit: validating node count

Repository: airavata
Updated Branches:
  refs/heads/master 769b905e1 -> d8054829b


validating node count


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

Branch: refs/heads/master
Commit: d8054829b448ad2a754f9cbae6437d185bfdfbec
Parents: 769b905
Author: Chathuri Wimalasena <ch...@apache.org>
Authored: Fri May 15 11:52:42 2015 -0400
Committer: Chathuri Wimalasena <ch...@apache.org>
Committed: Fri May 15 11:52:42 2015 -0400

----------------------------------------------------------------------
 .../airavata/gfac/core/cpi/BetterGfacImpl.java  |  2 +-
 .../validator/impl/BatchQueueValidator.java     | 22 ++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/d8054829/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 c3462ed..4e30bf5 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
@@ -554,7 +554,7 @@ public class BetterGfacImpl implements GFac,Watcher {
             return cancel(jobExecutionContext);
         } catch (Exception e) {
             GFacUtils.saveErrorDetails(jobExecutionContext, e.getCause().toString(), CorrectiveAction.CONTACT_SUPPORT, ErrorCategory.AIRAVATA_INTERNAL_ERROR);
-            log.error("Error inovoking the job with experiment ID: " + experimentID);
+            log.error("Error cancelling the job with experiment ID: " + experimentID);
             throw new GFacException(e);
         }
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/d8054829/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/BatchQueueValidator.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/BatchQueueValidator.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/BatchQueueValidator.java
index 8cd88fa..a1b8e12 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/BatchQueueValidator.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/BatchQueueValidator.java
@@ -91,6 +91,7 @@ public class BatchQueueValidator implements JobMetadataValidator {
                 if (computationalResourceScheduling != null){
                     String experimentQueueName = computationalResourceScheduling.getQueueName().trim();
                     int experimentWallTimeLimit = computationalResourceScheduling.getWallTimeLimit();
+                    int experimentNodeCount = computationalResourceScheduling.getNodeCount();
                     ValidatorResult queueNameResult = new ValidatorResult();
 
                     //Set the validation to false. Once all the queue's are looped, if nothing matches, then this gets passed.
@@ -100,6 +101,7 @@ public class BatchQueueValidator implements JobMetadataValidator {
                     for (BatchQueue queue : batchQueues){
                         String resourceQueueName = queue.getQueueName();
                         int maxQueueRunTime = queue.getMaxRunTime();
+                        int maxNodeCount = queue.getMaxNodes();
                         if (resourceQueueName != null && resourceQueueName.equals(experimentQueueName)){
                             queueNameResult.setResult(true);
                             queueNameResult.setErrorDetails("");
@@ -123,7 +125,27 @@ public class BatchQueueValidator implements JobMetadataValidator {
                                     wallTimeResult.setErrorDetails("");
                                 }
                             }
+                            //validate max node count
+                            ValidatorResult nodeCountResult = new ValidatorResult();
+                            if (maxNodeCount == 0) {
+                                nodeCountResult.setResult(true);
+                                nodeCountResult.setErrorDetails("Max node count is not configured for the queue," +
+                                        "Validation is being skipped");
+                                logger.info("Max node count is not configured for the queue" +
+                                        "Validation is being skipped");
+                            } else {
+                                if (maxNodeCount < experimentNodeCount){
+                                    nodeCountResult.setResult(false);
+                                    nodeCountResult.setErrorDetails("Job Execution node count " + experimentNodeCount +
+                                            "exceeds the allowable node count" + maxNodeCount +
+                                            "for queue " + resourceQueueName);
+                                } else {
+                                    nodeCountResult.setResult(true);
+                                    nodeCountResult.setErrorDetails("");
+                                }
+                            }
                             validatorResultList.add(wallTimeResult);
+                            validatorResultList.add(nodeCountResult);
                         }
                     }
                     validatorResultList.add(queueNameResult);