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());
}
}