You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2018/06/15 14:37:13 UTC

[airavata] 03/03: AIRAVATA-2827 Populate JobStatusPK from Job's PK

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

machristie pushed a commit to branch group-based-auth
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit 4f334fa864bab290f21938df5b36d413ed06eed6
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Fri Jun 15 10:35:23 2018 -0400

    AIRAVATA-2827 Populate JobStatusPK from Job's PK
---
 .../core/repositories/expcatalog/JobRepository.java  | 13 +++++++++----
 .../core/repositories/expcatalog/TaskRepository.java |  7 ++++++-
 .../expcatalog/ProcessRepositoryTest.java            | 20 ++++++++++++++++----
 3 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/JobRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/JobRepository.java
index 25af655..3744913 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/JobRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/JobRepository.java
@@ -69,11 +69,18 @@ public class JobRepository extends ExpCatAbstractRepository<JobModel, JobEntity,
         }
 
 
-        String jobId = jobPK.getJobId();
-        String taskId = jobPK.getTaskId();
         Mapper mapper = ObjectMapperSingleton.getInstance();
         JobEntity jobEntity = mapper.map(jobModel, JobEntity.class);
 
+        populateParentIds(jobEntity);
+
+        return execute(entityManager -> entityManager.merge(jobEntity));
+    }
+
+    protected void populateParentIds(JobEntity jobEntity) {
+
+        String jobId = jobEntity.getJobId();
+        String taskId = jobEntity.getTaskId();
         if (jobEntity.getJobStatuses() != null) {
             logger.debug("Populating the Primary Key of JobStatus objects for the Job");
             jobEntity.getJobStatuses().forEach(jobStatusEntity -> {
@@ -81,8 +88,6 @@ public class JobRepository extends ExpCatAbstractRepository<JobModel, JobEntity,
                 jobStatusEntity.setTaskId(taskId);
             });
         }
-
-        return execute(entityManager -> entityManager.merge(jobEntity));
     }
 
     public String addJob(JobModel job, String processId) throws RegistryException {
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/TaskRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/TaskRepository.java
index 7c2404d..268e7c8 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/TaskRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/TaskRepository.java
@@ -40,6 +40,8 @@ import java.util.Map;
 public class TaskRepository extends ExpCatAbstractRepository<TaskModel, TaskEntity, String> {
     private final static Logger logger = LoggerFactory.getLogger(TaskRepository.class);
 
+    private final JobRepository jobRepository = new JobRepository();
+
     public TaskRepository() { super(TaskModel.class, TaskEntity.class); }
 
     protected String saveTaskModelData(TaskModel taskModel) throws RegistryException {
@@ -95,7 +97,10 @@ public class TaskRepository extends ExpCatAbstractRepository<TaskModel, TaskEnti
 
         if (taskEntity.getJobs() != null) {
             logger.debug("Populating the Job objects' Task ID for the Task");
-            taskEntity.getJobs().forEach(jobEntity -> jobEntity.setTaskId(taskId));
+            taskEntity.getJobs().forEach(jobEntity -> {
+                jobEntity.setTaskId(taskId);
+                jobRepository.populateParentIds(jobEntity);
+            });
         }
     }
 
diff --git a/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessRepositoryTest.java b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessRepositoryTest.java
index b454738..dada4d0 100644
--- a/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessRepositoryTest.java
+++ b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessRepositoryTest.java
@@ -22,12 +22,10 @@ package org.apache.airavata.registry.core.repositories.expcatalog;
 
 import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.airavata.model.experiment.ExperimentType;
+import org.apache.airavata.model.job.JobModel;
 import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.status.ProcessState;
-import org.apache.airavata.model.status.ProcessStatus;
-import org.apache.airavata.model.status.TaskState;
-import org.apache.airavata.model.status.TaskStatus;
+import org.apache.airavata.model.status.*;
 import org.apache.airavata.model.task.TaskModel;
 import org.apache.airavata.model.task.TaskTypes;
 import org.apache.airavata.model.workspace.Gateway;
@@ -118,6 +116,19 @@ public class ProcessRepositoryTest {
 
         processModel.setProcessDetail("detail");
         processModel.setUseUserCRPref(true);
+
+        TaskModel jobSubmissionTask = new TaskModel();
+        jobSubmissionTask.setTaskType(TaskTypes.JOB_SUBMISSION);
+        jobSubmissionTask.setTaskId("job-task-id");
+        JobModel job = new JobModel();
+        job.setProcessId(processId);
+        job.setJobId("job-id");
+        job.setJobDescription("job-description");
+        JobStatus jobStatus = new JobStatus(JobState.SUBMITTED);
+        jobStatus.setStatusId("submitted-job-status-id");
+        job.addToJobStatuses(jobStatus);
+        jobSubmissionTask.addToJobs(job);
+        processModel.addToTasks(jobSubmissionTask);
         processRepository.updateProcess(processModel, processId);
 
         ProcessModel retrievedProcess = processRepository.getProcess(processId);
@@ -126,6 +137,7 @@ public class ProcessRepositoryTest {
         assertTrue(retrievedProcess.isUseUserCRPref());
         assertEquals(1, retrievedProcess.getProcessStatusesSize());
         assertEquals(ProcessState.CREATED, retrievedProcess.getProcessStatuses().get(0).getState());
+        assertEquals(2, retrievedProcess.getTasksSize());
 
         ComputationalResourceSchedulingModel computationalResourceSchedulingModel = new ComputationalResourceSchedulingModel();
         assertEquals(processId, processRepository.addProcessResourceSchedule(computationalResourceSchedulingModel, processId));

-- 
To stop receiving notification emails like this one, please contact
machristie@apache.org.