diff --git a/scheduling-abstraction-layer/src/main/java/org/activeeon/morphemic/PAGateway.java b/scheduling-abstraction-layer/src/main/java/org/activeeon/morphemic/PAGateway.java index 8cc2bbba232f3224d3caab2578c5043b2498a2f4..79cb7abad7c32e0ab292b36ada73775e417d4c81 100644 --- a/scheduling-abstraction-layer/src/main/java/org/activeeon/morphemic/PAGateway.java +++ b/scheduling-abstraction-layer/src/main/java/org/activeeon/morphemic/PAGateway.java @@ -1074,7 +1074,12 @@ public class PAGateway { scriptTasks.add(createInfraTask(task, deployment, suffix, token)); task.setDeploymentFirstSubmittedTaskName(scriptTasks.get(scriptTasks.size()-1).getName().substring(0, scriptTasks.get(scriptTasks.size()-1).getName().lastIndexOf("_"))); // If the infrastructure comes with the deployment of the EMS, we set it up. - Optional.ofNullable(deployment.getEmsDeployment()).ifPresent(emsDeploymentRequest -> scriptTasks.add(createEmsDeploymentTask(emsDeploymentRequest,suffix,token))); + Optional.ofNullable(deployment.getEmsDeployment()).ifPresent(emsDeploymentRequest -> { + String emsTaskSuffix = "_" + task.getName() + suffix; + ScriptTask emsScriptTask = createEmsDeploymentTask(emsDeploymentRequest,emsTaskSuffix,token); + emsScriptTask.addDependence(scriptTasks.get(scriptTasks.size()-1)); + scriptTasks.add(emsScriptTask); + }); LOGGER.info("Token added: " + token); deployment.setIsDeployed(true); deployment.setNodeAccessToken(token); @@ -1286,7 +1291,10 @@ public class PAGateway { // Creating application deployment tasks createAndAddAppDeploymentTasks(task, suffix, token, scriptTasks, job); }); - task.setDeploymentFirstSubmittedTaskName(scriptTasks.get(0).getName().substring(0, scriptTasks.get(0).getName().lastIndexOf("_"))); + if(!scriptTasks.isEmpty()) { + task.setDeploymentFirstSubmittedTaskName( + scriptTasks.get(0).getName().substring(0, scriptTasks.get(0).getName().lastIndexOf("_"))); + } } scriptTasks.forEach(scriptTask -> task.addSubmittedTaskName(scriptTask.getName())); @@ -1393,12 +1401,17 @@ public class PAGateway { paJob.setProjectName("Morphemic"); - long submittedJobId = schedulerGateway.submit(paJob).longValue(); - jobToSubmit.setSubmittedJobId(submittedJobId); + long submittedJobId = -1L; + if (!paJob.getTasks().isEmpty()) { + submittedJobId = schedulerGateway.submit(paJob).longValue(); + jobToSubmit.setSubmittedJobId(submittedJobId); + LOGGER.info("Job submitted successfully. ID = " + submittedJobId); + } else { + LOGGER.warn("The job " + jobId + " is already deployed. Nothing to be submitted here."); + } EntityManagerHelper.persist(jobToSubmit); EntityManagerHelper.commit(); - LOGGER.info("Job submitted successfully. ID = " + submittedJobId); return(submittedJobId); }