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 <[email protected]> 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 [email protected].
