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 <[email protected]> Authored: Fri May 15 11:52:42 2015 -0400 Committer: Chathuri Wimalasena <[email protected]> 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);
