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/11/06 22:19:13 UTC
[airavata] 01/03: AIRAVATA-2905 Finishing ComputeResourceRepository
changes
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git
commit 1d29f870edf806e671834e0f885d01167a9cb22e
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Tue Nov 6 17:09:03 2018 -0500
AIRAVATA-2905 Finishing ComputeResourceRepository changes
---
.../appcatalog/ComputeResourceRepository.java | 69 +++++++++++++++++++++-
.../api/service/handler/RegistryServerHandler.java | 69 +++-------------------
2 files changed, 75 insertions(+), 63 deletions(-)
diff --git a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/ComputeResourceRepository.java b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/ComputeResourceRepository.java
index 7c2f44c..ca2696c 100644
--- a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/ComputeResourceRepository.java
+++ b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/appcatalog/ComputeResourceRepository.java
@@ -19,11 +19,40 @@
*/
package org.apache.airavata.registry.core.repositories.appcatalog;
-import org.apache.airavata.model.appcatalog.computeresource.*;
-import org.apache.airavata.model.data.movement.*;
+import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.FileSystems;
+import org.apache.airavata.model.appcatalog.computeresource.GlobusJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
+import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.compute_resource_modelConstants;
import org.apache.airavata.model.data.movement.DMType;
+import org.apache.airavata.model.data.movement.DataMovementInterface;
+import org.apache.airavata.model.data.movement.GridFTPDataMovement;
+import org.apache.airavata.model.data.movement.LOCALDataMovement;
+import org.apache.airavata.model.data.movement.SCPDataMovement;
+import org.apache.airavata.model.data.movement.UnicoreDataMovement;
import org.apache.airavata.model.parallelism.ApplicationParallelismType;
-import org.apache.airavata.registry.core.entities.appcatalog.*;
+import org.apache.airavata.registry.core.entities.appcatalog.BatchQueuePK;
+import org.apache.airavata.registry.core.entities.appcatalog.CloudJobSubmissionEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.ComputeResourceFileSystemEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.DataMovementInterfacePK;
+import org.apache.airavata.registry.core.entities.appcatalog.GridftpDataMovementEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.GridftpEndpointEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.JobSubmissionInterfacePK;
+import org.apache.airavata.registry.core.entities.appcatalog.LocalDataMovementEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.LocalSubmissionEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.ResourceJobManagerEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.ScpDataMovementEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.SshJobSubmissionEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.UnicoreDatamovementEntity;
+import org.apache.airavata.registry.core.entities.appcatalog.UnicoreSubmissionEntity;
import org.apache.airavata.registry.core.utils.AppCatalogUtils;
import org.apache.airavata.registry.core.utils.DBConstants;
import org.apache.airavata.registry.core.utils.ObjectMapperSingleton;
@@ -216,6 +245,13 @@ public class ComputeResourceRepository extends AppCatAbstractRepository<ComputeR
return submissionId;
}
+ public void updateSSHJobSubmission(SSHJobSubmission sshJobSubmission) throws AppCatalogException {
+ Mapper mapper = ObjectMapperSingleton.getInstance();
+ SshJobSubmissionEntity sshJobSubmissionEntity = mapper.map(sshJobSubmission, SshJobSubmissionEntity.class);
+ sshJobSubmissionEntity.setUpdateTime(AiravataUtils.getCurrentTimestamp());
+ execute(entityManager -> entityManager.merge(sshJobSubmissionEntity));
+ }
+
@Override
public String addCloudJobSubmission(CloudJobSubmission cloudJobSubmission) throws AppCatalogException {
cloudJobSubmission.setJobSubmissionInterfaceId(AppCatalogUtils.getID("Cloud"));
@@ -225,6 +261,12 @@ public class ComputeResourceRepository extends AppCatAbstractRepository<ComputeR
return cloudJobSubmissionEntity.getJobSubmissionInterfaceId();
}
+ public void updateCloudJobSubmission(CloudJobSubmission cloudJobSubmission) throws AppCatalogException {
+ Mapper mapper = ObjectMapperSingleton.getInstance();
+ CloudJobSubmissionEntity cloudJobSubmissionEntity = mapper.map(cloudJobSubmission, CloudJobSubmissionEntity.class);
+ execute(entityManager -> entityManager.merge(cloudJobSubmissionEntity));
+ }
+
@Override
public String addResourceJobManager(ResourceJobManager resourceJobManager) throws AppCatalogException {
ResourceJobManagerRepository resourceJobManagerRepository = new ResourceJobManagerRepository();
@@ -303,6 +345,14 @@ public class ComputeResourceRepository extends AppCatAbstractRepository<ComputeR
return localSubmissionEntity.getJobSubmissionInterfaceId();
}
+ public void updateLocalJobSubmission(LOCALSubmission localSubmission) throws AppCatalogException {
+
+ Mapper mapper = ObjectMapperSingleton.getInstance();
+ LocalSubmissionEntity localSubmissionEntity = mapper.map(localSubmission, LocalSubmissionEntity.class);
+ localSubmissionEntity.setUpdateTime(AiravataUtils.getCurrentTimestamp());
+ execute(entityManager -> entityManager.merge(localSubmissionEntity));
+ }
+
@Override
public String addGlobusJobSubmission(GlobusJobSubmission globusJobSubmission) throws AppCatalogException {
return null;
@@ -329,6 +379,12 @@ public class ComputeResourceRepository extends AppCatAbstractRepository<ComputeR
return localDataMovementEntity.getDataMovementInterfaceId();
}
+ public void updateLocalDataMovement(LOCALDataMovement localDataMovement) throws AppCatalogException {
+ Mapper mapper = ObjectMapperSingleton.getInstance();
+ LocalDataMovementEntity localDataMovementEntity = mapper.map(localDataMovement, LocalDataMovementEntity.class);
+ execute(entityManager -> entityManager.merge(localDataMovementEntity));
+ }
+
@Override
public String addScpDataMovement(SCPDataMovement scpDataMovement) throws AppCatalogException {
scpDataMovement.setDataMovementInterfaceId(AppCatalogUtils.getID("SCP"));
@@ -338,6 +394,13 @@ public class ComputeResourceRepository extends AppCatAbstractRepository<ComputeR
return scpDataMovementEntity.getDataMovementInterfaceId();
}
+ public void updateScpDataMovement(SCPDataMovement scpDataMovement) throws AppCatalogException {
+ Mapper mapper = ObjectMapperSingleton.getInstance();
+ ScpDataMovementEntity scpDataMovementEntity = mapper.map(scpDataMovement, ScpDataMovementEntity.class);
+ scpDataMovementEntity.setUpdateTime(AiravataUtils.getCurrentTimestamp());
+ execute(entityManager -> entityManager.merge(scpDataMovementEntity));
+ }
+
@Override
public String addUnicoreDataMovement(UnicoreDataMovement unicoreDataMovement) throws AppCatalogException {
unicoreDataMovement.setDataMovementInterfaceId(AppCatalogUtils.getID("UNICORE"));
diff --git a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
index 5f8bc3b..eb2439b 100644
--- a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
+++ b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/handler/RegistryServerHandler.java
@@ -90,15 +90,6 @@ import org.apache.airavata.model.workspace.Project;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.airavata.registry.api.exception.RegistryServiceException;
import org.apache.airavata.registry.api.registry_apiConstants;
-import org.apache.airavata.registry.core.app.catalog.resources.CloudSubmissionResource;
-import org.apache.airavata.registry.core.app.catalog.resources.GridftpDataMovementResource;
-import org.apache.airavata.registry.core.app.catalog.resources.LocalDataMovementResource;
-import org.apache.airavata.registry.core.app.catalog.resources.LocalSubmissionResource;
-import org.apache.airavata.registry.core.app.catalog.resources.ScpDataMovementResource;
-import org.apache.airavata.registry.core.app.catalog.resources.SshJobSubmissionResource;
-import org.apache.airavata.registry.core.app.catalog.resources.UnicoreDataMovementResource;
-import org.apache.airavata.registry.core.app.catalog.resources.UnicoreJobSubmissionResource;
-import org.apache.airavata.registry.core.app.catalog.util.AppCatalogThriftConversion;
import org.apache.airavata.registry.core.entities.expcatalog.JobPK;
import org.apache.airavata.registry.core.experiment.catalog.resources.AbstractExpCatResource;
import org.apache.airavata.registry.core.repositories.appcatalog.ApplicationDeploymentRepository;
@@ -185,6 +176,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
private ParserRepository parserInfoRepository = new ParserRepository();
private ParsingTemplateRepository parsingTemplateRepository = new ParsingTemplateRepository();
private UserRepository userRepository = new UserRepository();
+ private ComputeResourceRepository computeResourceRepository = new ComputeResourceRepository();
/**
* Fetch Apache Registry API version
@@ -2983,18 +2975,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateGridFTPDataMovementDetails(String dataMovementInterfaceId, GridFTPDataMovement gridFTPDataMovement) throws RegistryServiceException, TException {
- try {
- GridftpDataMovementResource movment = AppCatalogThriftConversion.getGridFTPDataMovementDescription(gridFTPDataMovement);
- movment.setDataMovementInterfaceId(dataMovementInterfaceId);
- movment.save();
- logger.debug("Airavata updated GRIDFTP data movement with data movement id: " + dataMovementInterfaceId );
- return true;
- } catch (Exception e) {
- logger.error(dataMovementInterfaceId, "Error while adding job submission interface to resource compute resource...", e);
- RegistryServiceException exception = new RegistryServiceException();
- exception.setMessage("Error while adding job submission interface to resource compute resource. More info : " + e.getMessage());
- throw exception;
- }
+ throw new RegistryServiceException("updateGridFTPDataMovementDetails is not yet implemented");
}
/**
@@ -3036,18 +3017,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateUnicoreDataMovementDetails(String dataMovementInterfaceId, UnicoreDataMovement unicoreDataMovement) throws RegistryServiceException, TException {
- try {
- UnicoreDataMovementResource movment = AppCatalogThriftConversion.getUnicoreDMResource(unicoreDataMovement);
- movment.setDataMovementId(dataMovementInterfaceId);
- movment.save();
- logger.debug("Airavata updated UNICORE data movement with data movement id: " + dataMovementInterfaceId);
- return true;
- } catch (Exception e) {
- logger.error(dataMovementInterfaceId, "Error while updating unicore data movement to compute resource...", e);
- RegistryServiceException exception = new RegistryServiceException();
- exception.setMessage("Error while updating unicore data movement to compute resource. More info : " + e.getMessage());
- throw exception;
- }
+ throw new RegistryServiceException("updateUnicoreDataMovementDetails is not yet implemented");
}
/**
@@ -3089,9 +3059,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateSCPDataMovementDetails(String dataMovementInterfaceId, SCPDataMovement scpDataMovement) throws RegistryServiceException, TException {
try {
- ScpDataMovementResource movment = AppCatalogThriftConversion.getSCPDataMovementDescription(scpDataMovement);
- movment.setDataMovementInterfaceId(dataMovementInterfaceId);
- movment.save();
+ computeResourceRepository.updateScpDataMovement(scpDataMovement);
logger.debug("Airavata updated SCP data movement with data movement id: " + dataMovementInterfaceId);
return true;
} catch (Exception e) {
@@ -3140,9 +3108,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateLocalDataMovementDetails(String dataMovementInterfaceId, LOCALDataMovement localDataMovement) throws RegistryServiceException, TException {
try {
- LocalDataMovementResource movment = AppCatalogThriftConversion.getLocalDataMovement(localDataMovement);
- movment.setDataMovementInterfaceId(dataMovementInterfaceId);
- movment.save();
+ computeResourceRepository.updateLocalDataMovement(localDataMovement);
logger.debug("Airavata updated local data movement with data movement id: " + dataMovementInterfaceId);
return true;
} catch (Exception e) {
@@ -3190,18 +3156,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateUnicoreJobSubmissionDetails(String jobSubmissionInterfaceId, UnicoreJobSubmission unicoreJobSubmission) throws RegistryServiceException, TException {
- try {
- UnicoreJobSubmissionResource submission = AppCatalogThriftConversion.getUnicoreJobSubmission(unicoreJobSubmission);
- submission.setjobSubmissionInterfaceId(jobSubmissionInterfaceId);
- submission.save();
- logger.debug("Airavata updated UNICORE job submission for job submission interface id: " + jobSubmissionInterfaceId);
- return true;
- } catch (Exception e) {
- logger.error(jobSubmissionInterfaceId, "Error while adding job submission interface to resource compute resource...", e);
- RegistryServiceException exception = new RegistryServiceException();
- exception.setMessage("Error while adding job submission interface to resource compute resource. More info : " + e.getMessage());
- throw exception;
- }
+ throw new RegistryServiceException("updateUnicoreJobSubmissionDetails is not yet implemented");
}
/**
@@ -3215,9 +3170,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateCloudJobSubmissionDetails(String jobSubmissionInterfaceId, CloudJobSubmission sshJobSubmission) throws RegistryServiceException, TException {
try {
- CloudSubmissionResource submission = AppCatalogThriftConversion.getCloudJobSubmission(sshJobSubmission);
- submission.setJobSubmissionInterfaceId(jobSubmissionInterfaceId);
- submission.save();
+ computeResourceRepository.updateCloudJobSubmission(sshJobSubmission);
logger.debug("Airavata updated Cloud job submission for job submission interface id: " + jobSubmissionInterfaceId);
return true;
} catch (Exception e) {
@@ -3239,9 +3192,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateSSHJobSubmissionDetails(String jobSubmissionInterfaceId, SSHJobSubmission sshJobSubmission) throws RegistryServiceException, TException {
try {
- SshJobSubmissionResource submission = AppCatalogThriftConversion.getSSHJobSubmission(sshJobSubmission);
- submission.setJobSubmissionInterfaceId(jobSubmissionInterfaceId);
- submission.save();
+ computeResourceRepository.updateSSHJobSubmission(sshJobSubmission);
logger.debug("Airavata updated SSH job submission for job submission interface id: " + jobSubmissionInterfaceId);
return true;
} catch (Exception e) {
@@ -3380,9 +3331,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateLocalSubmissionDetails(String jobSubmissionInterfaceId, LOCALSubmission localSubmission) throws RegistryServiceException, TException {
try {
- LocalSubmissionResource submission = AppCatalogThriftConversion.getLocalJobSubmission(localSubmission);
- submission.setJobSubmissionInterfaceId(jobSubmissionInterfaceId);
- submission.save();
+ computeResourceRepository.updateLocalJobSubmission(localSubmission);
logger.debug("Airavata updated local job submission for job submission interface id: " + jobSubmissionInterfaceId);
return true;
} catch (Exception e) {