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.