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) {