This is an automated email from the ASF dual-hosted git repository.

dimuthuupe pushed a commit to branch staging
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/staging by this push:
     new bda5e76  Aggressive fail fast for job manager configuration search
bda5e76 is described below

commit bda5e765729d48f0ebf304b0d1294adbe2186697
Author: Dimuthu Wannipurage <[email protected]>
AuthorDate: Thu Mar 21 11:30:47 2019 -0400

    Aggressive fail fast for job manager configuration search
---
 .../impl/task/submission/JobSubmissionTask.java    |  9 --------
 .../impl/task/submission/config/JobFactory.java    | 25 ++++++++++++++--------
 2 files changed, 16 insertions(+), 18 deletions(-)

diff --git 
a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/JobSubmissionTask.java
 
b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/JobSubmissionTask.java
index 2f9c0ef..0e085c3 100644
--- 
a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/JobSubmissionTask.java
+++ 
b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/JobSubmissionTask.java
@@ -177,10 +177,6 @@ public abstract class JobSubmissionTask extends 
AiravataTask {
 
         JobManagerConfiguration jobManagerConfiguration = 
JobFactory.getJobManagerConfiguration(resourceJobManager);
 
-        if (jobManagerConfiguration == null) {
-            throw new Exception("Job manager configuration can not be null for 
protocol " + getTaskContext().getJobSubmissionProtocol() + " and job id " + 
jobId);
-        }
-
         CommandOutput commandOutput = 
agentAdaptor.executeCommand(jobManagerConfiguration.getMonitorCommand(jobId).getRawCommand(),
 null);
 
         return jobManagerConfiguration.getParser().parseJobStatus(jobId, 
commandOutput.getStdOut());
@@ -200,11 +196,6 @@ public abstract class JobSubmissionTask extends 
AiravataTask {
 
         JobManagerConfiguration jobManagerConfiguration = 
JobFactory.getJobManagerConfiguration(resourceJobManager);
 
-        if (jobManagerConfiguration == null) {
-            throw new Exception("Job manager configuration can not be null for 
protocol "
-                    + getTaskContext().getJobSubmissionProtocol() + " and job 
name " + jobName + " and user " + userName);
-        }
-
         RawCommandInfo jobIdMonitorCommand = 
jobManagerConfiguration.getJobIdMonitorCommand(jobName, userName);
         CommandOutput commandOutput = 
agentAdaptor.executeCommand(jobIdMonitorCommand.getRawCommand(), null);
         return jobManagerConfiguration.getParser().parseJobId(jobName, 
commandOutput.getStdOut());
diff --git 
a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/config/JobFactory.java
 
b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/config/JobFactory.java
index 2427ad1..e9099e4 100644
--- 
a/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/config/JobFactory.java
+++ 
b/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/submission/config/JobFactory.java
@@ -23,11 +23,14 @@ import 
org.apache.airavata.helix.impl.task.submission.config.app.*;
 import org.apache.airavata.helix.impl.task.submission.config.app.parser.*;
 import org.apache.airavata.model.appcatalog.computeresource.*;
 import org.apache.airavata.registry.api.RegistryService;
-import org.apache.airavata.registry.cpi.AppCatalog;
 import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class JobFactory {
 
+    private final static Logger logger = 
LoggerFactory.getLogger(JobFactory.class);
+
     public static String getTemplateFileName(ResourceJobManagerType 
resourceJobManagerType) {
         switch (resourceJobManagerType) {
             case FORK:
@@ -49,7 +52,7 @@ public class JobFactory {
 
     public static ResourceJobManager 
getResourceJobManager(RegistryService.Client registryClient,
                                                            
JobSubmissionProtocol submissionProtocol,
-                                                           
JobSubmissionInterface jobSubmissionInterface) {
+                                                           
JobSubmissionInterface jobSubmissionInterface) throws Exception {
         try {
             if (submissionProtocol == JobSubmissionProtocol.SSH ) {
                 SSHJobSubmission sshJobSubmission = 
getSSHJobSubmission(registryClient, 
jobSubmissionInterface.getJobSubmissionInterfaceId());
@@ -67,10 +70,13 @@ public class JobFactory {
                     return sshJobSubmission.getResourceJobManager();
                 }
             }
-        } catch (AppCatalogException e) {
-            e.printStackTrace();
+        } catch (Exception e) {
+            logger.error("Failed to fetch a resource job manager for protocol 
" + submissionProtocol + " and interface " + 
jobSubmissionInterface.getJobSubmissionInterfaceId(), e);
+            throw new Exception("Failed to fetch a resource job manager for 
protocol " + submissionProtocol + " and interface " + 
jobSubmissionInterface.getJobSubmissionInterfaceId(), e);
         }
-        return null;
+
+        // If not resource job manager is found, throw an exception to fail 
fast
+        throw new Exception("No resource job manager for protocol " + 
submissionProtocol + " and interface " + 
jobSubmissionInterface.getJobSubmissionInterfaceId());
     }
 
     public static LOCALSubmission getLocalJobSubmission(RegistryService.Client 
registryClient, String submissionId) throws AppCatalogException {
@@ -92,9 +98,9 @@ public class JobFactory {
     }
 
     public static JobManagerConfiguration 
getJobManagerConfiguration(ResourceJobManager resourceJobManager) throws 
Exception {
-        if(resourceJobManager == null)
-            return null;
-
+        if(resourceJobManager == null) {
+            throw new Exception("Resource job manager can not be null");
+        }
 
         String templateFileName = 
getTemplateFileName(resourceJobManager.getResourceJobManagerType());
         switch (resourceJobManager.getResourceJobManagerType()) {
@@ -115,7 +121,8 @@ public class JobFactory {
                         resourceJobManager.getJobManagerCommands(), new 
ForkOutputParser());
             // We don't have a job configuration manager for CLOUD type
             default:
-                return null;
+                throw new Exception("Could not find a job manager 
configuration for job manager type "
+                        + resourceJobManager.getResourceJobManagerType());
         }
 
     }

Reply via email to