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/12 16:06:26 UTC
[airavata] 02/02: AIRAVATA-2823 Populate parent ids on child
entities
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 31120306ca5fd3f396156e78e3d624142187662f
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Tue Jun 12 12:05:21 2018 -0400
AIRAVATA-2823 Populate parent ids on child entities
---
.../repositories/expcatalog/ProcessRepository.java | 24 +++++++++++++++-------
.../repositories/expcatalog/TaskRepository.java | 19 +++++++++++------
.../expcatalog/ProcessRepositoryTest.java | 14 +++++++++++++
3 files changed, 44 insertions(+), 13 deletions(-)
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessRepository.java
index 9679810..731133f 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessRepository.java
@@ -41,6 +41,8 @@ import java.util.Map;
public class ProcessRepository extends ExpCatAbstractRepository<ProcessModel, ProcessEntity, String> {
private final static Logger logger = LoggerFactory.getLogger(ProcessRepository.class);
+ private final TaskRepository taskRepository = new TaskRepository();
+
public ProcessRepository() { super(ProcessModel.class, ProcessEntity.class); }
protected String saveProcessModelData(ProcessModel processModel) throws RegistryException {
@@ -65,11 +67,6 @@ public class ProcessRepository extends ExpCatAbstractRepository<ProcessModel, Pr
});
}
- if (processModel.getTasks() != null) {
- logger.debug("Populating the parent process id of Tasks for the Process");
- processModel.getTasks().forEach(taskEntity -> taskEntity.setParentProcessId(processId));
- }
-
if (!isProcessExist(processId)) {
logger.debug("Setting creation time if process doesn't already exist");
processModel.setCreationTime(System.currentTimeMillis());
@@ -79,8 +76,15 @@ public class ProcessRepository extends ExpCatAbstractRepository<ProcessModel, Pr
Mapper mapper = ObjectMapperSingleton.getInstance();
ProcessEntity processEntity = mapper.map(processModel, ProcessEntity.class);
+ populateParentIds(processEntity);
+
+ return execute(entityManager -> entityManager.merge(processEntity));
+ }
+
+ protected void populateParentIds(ProcessEntity processEntity) {
+ String processId = processEntity.getProcessId();
if (processEntity.getProcessResourceSchedule() != null) {
- logger.debug("Populating the Primary Key of ProcessResourceSchedule object for the Process");
+ logger.debug("Populating the Primary Key of ProcessResourceSchedule objects for the Process");
processEntity.getProcessResourceSchedule().setProcessId(processId);
}
@@ -104,7 +108,13 @@ public class ProcessRepository extends ExpCatAbstractRepository<ProcessModel, Pr
processEntity.getProcessErrors().forEach(processErrorEntity -> processErrorEntity.setProcessId(processId));
}
- return execute(entityManager -> entityManager.merge(processEntity));
+ if (processEntity.getTasks() != null) {
+ logger.debug("Populating the Primary Key of Task objects for the Process");
+ processEntity.getTasks().forEach(taskEntity -> {
+ taskEntity.setParentProcessId(processId);
+ taskRepository.populateParentIds(taskEntity);
+ });
+ }
}
public String addProcess(ProcessModel process, String experimentId) 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 040f923..7c2404d 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
@@ -55,11 +55,6 @@ public class TaskRepository extends ExpCatAbstractRepository<TaskModel, TaskEnti
String taskId = taskModel.getTaskId();
- if (taskModel.getJobs() != null) {
- logger.debug("Populating the Job objects' Task ID for the Task");
- taskModel.getJobs().forEach(jobEntity -> jobEntity.setTaskId(taskId));
- }
-
if (taskModel.getTaskStatuses() != null) {
logger.debug("Populating the status id of TaskStatus objects for the Task");
taskModel.getTaskStatuses().forEach(taskStatusEntity -> {
@@ -79,6 +74,15 @@ public class TaskRepository extends ExpCatAbstractRepository<TaskModel, TaskEnti
Mapper mapper = ObjectMapperSingleton.getInstance();
TaskEntity taskEntity = mapper.map(taskModel, TaskEntity.class);
+ populateParentIds(taskEntity);
+
+ return execute(entityManager -> entityManager.merge(taskEntity));
+ }
+
+ protected void populateParentIds(TaskEntity taskEntity) {
+
+ String taskId = taskEntity.getTaskId();
+
if (taskEntity.getTaskStatuses() != null) {
logger.debug("Populating the Primary Key of TaskStatus objects for the Task");
taskEntity.getTaskStatuses().forEach(taskStatusEntity -> taskStatusEntity.setTaskId(taskId));
@@ -89,7 +93,10 @@ public class TaskRepository extends ExpCatAbstractRepository<TaskModel, TaskEnti
taskEntity.getTaskErrors().forEach(taskErrorEntity -> taskErrorEntity.setTaskId(taskId));
}
- return execute(entityManager -> entityManager.merge(taskEntity));
+ if (taskEntity.getJobs() != null) {
+ logger.debug("Populating the Job objects' Task ID for the Task");
+ taskEntity.getJobs().forEach(jobEntity -> jobEntity.setTaskId(taskId));
+ }
}
public String addTask(TaskModel task, String processId) throws RegistryException {
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 b7da06f..b454738 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
@@ -26,6 +26,10 @@ 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.task.TaskModel;
+import org.apache.airavata.model.task.TaskTypes;
import org.apache.airavata.model.workspace.Gateway;
import org.apache.airavata.model.workspace.Project;
import org.apache.airavata.registry.core.repositories.expcatalog.util.Initialize;
@@ -98,6 +102,16 @@ public class ProcessRepositoryTest {
ProcessStatus processStatus = new ProcessStatus();
processStatus.setState(ProcessState.CREATED);
processModel.addToProcessStatuses(processStatus);
+
+ TaskModel task = new TaskModel();
+ task.setTaskId("task-id");
+ task.setTaskType(TaskTypes.ENV_SETUP);
+ processModel.addToTasks(task);
+
+ TaskStatus taskStatus = new TaskStatus(TaskState.CREATED);
+ taskStatus.setStatusId("task-status-id");
+ task.addToTaskStatuses(taskStatus);
+
String processId = processRepository.addProcess(processModel, experimentId);
assertTrue(processId != null);
assertTrue(experimentRepository.getExperiment(experimentId).getProcesses().size() == 1);
--
To stop receiving notification emails like this one, please contact
machristie@apache.org.