You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2014/06/29 18:43:19 UTC

git commit: adding app catalog CPI - AIRAVATA-1228

Repository: airavata
Updated Branches:
  refs/heads/master 45b3c4b84 -> 373d1dd9b


adding app catalog CPI - AIRAVATA-1228


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/373d1dd9
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/373d1dd9
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/373d1dd9

Branch: refs/heads/master
Commit: 373d1dd9b1b168cfc307616ad9f3c02e4c7828d4
Parents: 45b3c4b
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Sun Jun 29 12:43:12 2014 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Sun Jun 29 12:43:12 2014 -0400

----------------------------------------------------------------------
 .../appcatalog/cpi/ApplicationDeployment.java   |  38 ++++++
 .../appcatalog/cpi/ApplicationInterface.java    |  81 +++++++++++++
 .../appcatalog/cpi/ComputeResource.java         | 116 +++++++++++++++++++
 .../resources/ApplicationInputResource.java     |   4 +-
 4 files changed, 237 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/373d1dd9/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java
index ac73134..e214ee3 100644
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java
+++ b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java
@@ -1,4 +1,42 @@
 package org.airavata.appcatalog.cpi;
 
+import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
+
+import java.util.List;
+import java.util.Map;
+
 public interface ApplicationDeployment {
+    /**
+     * Add application deployment
+     * @param deploymentDescription application deployment
+     * @return unique id for application deployment
+     */
+    String addApplicationDeployment (ApplicationDeploymentDescription deploymentDescription);
+
+    /**
+     * This method will retrive application deployement
+     * @param deploymentId unique deployment id
+     * @return application deployment
+     */
+    String getApplicationDeployement (String deploymentId);
+
+    /**
+     * This method will return a list of application deployments according to given search criteria
+     * @param filters map should be provided as the field name and it's value
+     * @return list of application deployments
+     */
+    List<ApplicationDeploymentDescription> getApplicationDeployements (Map<String, String> filters);
+
+    /**
+     * Check whether application deployment exists
+     * @param deploymentId unique deployment id
+     * @return true or false
+     */
+    boolean isAppDeploymentExists (String deploymentId);
+
+    /**
+     * Remove application deployment
+     * @param deploymentId unique deployment id
+     */
+    void removeAppDeployment (String deploymentId);
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/373d1dd9/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java
index 8fde2dd..15d8b50 100644
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java
+++ b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java
@@ -1,4 +1,85 @@
 package org.airavata.appcatalog.cpi;
 
+import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
+import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
+
+import java.util.List;
+import java.util.Map;
+
 public interface ApplicationInterface {
+    /**
+     * This method will add an application module
+     * @param applicationModule application module
+     * @return unique module id
+     */
+    String addApplicationModule (ApplicationModule applicationModule);
+
+    /**
+     * This method will add application interface description
+     * @param applicationInterfaceDescription application interface
+     * @return unique app interface id
+     */
+    String addApplicationInterface(ApplicationInterfaceDescription applicationInterfaceDescription);
+
+    /**
+     * This method will add an application module mapping
+     * @param moduleId unique module Id
+     * @param interfaceId unique interface id
+     */
+    void addApplicationModuleMapping (String moduleId, String interfaceId);
+
+    /**
+     * This method will retrieve application module by given module id
+     * @param moduleId unique module Id
+     * @return application module object
+     */
+    ApplicationModule getApplicationModule (String moduleId);
+
+    /**
+     * This method will retrieve application interface by given interface id
+     * @param interfaceId unique interface id
+     * @return application interface desc
+     */
+    ApplicationInterfaceDescription getApplicationInterface(String interfaceId);
+
+    /**
+     * This method will return a list of application modules according to given search criteria
+     * @param filters map should be provided as the field name and it's value
+     * @return list of application modules
+     */
+    List<ApplicationModule> getApplicationModules(Map<String, String> filters);
+
+    /**
+     * This method will return a list of application interfaces according to given search criteria
+     * @param filters map should be provided as the field name and it's value
+     * @return list of application interfaces
+     */
+    List<ApplicationInterfaceDescription> getApplicationInterfaces(Map<String, String> filters);
+
+    /**
+     * Remove application interface
+     * @param interfaceId unique interface id
+     */
+    void removeApplicationInterface (String interfaceId);
+
+    /**
+     * Remove application module
+     * @param moduleId unique module Id
+     */
+    void removeApplicationModule (String moduleId);
+
+    /**
+     * Check whether application interface exists
+     * @param interfaceId unique interface id
+     * @return true or false
+     */
+    boolean isApplicationInterfaceExists(String interfaceId);
+
+    /**
+     * Check whether application module exists
+     * @param moduleId unique module Id
+     * @return true or false
+     */
+    boolean isApplicationModuleExists(String moduleId);
+
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/373d1dd9/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ComputeResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ComputeResource.java b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ComputeResource.java
index 9ca2454..259beaf 100644
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ComputeResource.java
+++ b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ComputeResource.java
@@ -6,48 +6,164 @@ import java.util.List;
 import java.util.Map;
 
 public interface ComputeResource {
+    /**
+     * This function will add a compute resource description to the database
+     * @param description compute resource description
+     * @return unique resource ID generated by airavata
+     */
     String addComputeResource (ComputeResourceDescription description);
 
+    /**
+     * This function will add a SSHJobSubmission to the database
+     * @param sshJobSubmission sshJobSubmission object
+     * @return unique submission ID generated by airavata
+     */
     String addSSHJobSubmission (SSHJobSubmission sshJobSubmission);
 
+    /**
+     * This will add a SSHJobSubmission protocol to the database
+     * @param computeResourceId compute resource id
+     * @param jobSubmissionId job submission id
+     */
     void addSSHJobSubmissionProtocol(String computeResourceId, String jobSubmissionId);
 
+    /**
+     * This method will add a GSISSHJobSubmission to the database
+     * @param gsisshJobSubmission GSISSHJobSubmission object
+     * @return uniquely generated submission id
+     */
     String addGSISSHJobSubmission (GSISSHJobSubmission gsisshJobSubmission);
 
+    /**
+     * This will add a GSISSHJobSubmission protocol to the database
+     * @param computeResourceId compute resource id
+     * @param jobSubmissionId job submission id
+     */
     void addGSISSHJobSubmissionProtocol (String computeResourceId, String jobSubmissionId);
 
+    /**
+     * This method will add a GlobusJobSubmission to the database
+     * @param globusJobSubmission GSISSHJobSubmission object
+     * @return uniquely generated submission id
+     */
     String addGlobusJobSubmission (GlobusJobSubmission globusJobSubmission);
 
+    /**
+     * This will add a GlobusJobSubmission protocol to the database
+     * @param computeResourceId compute resource id
+     * @param jobSubmissionId job submission id
+     */
     void addGlobusJobSubmissionProtocol (String computeResourceId, String jobSubmissionId);
 
+    /**
+     * This method will add a SCPData movement to the database
+     * @param scpDataMovement SCPData movement object
+     * @return uniquely generated data move id
+     */
     String addScpDataMovement (SCPDataMovement scpDataMovement);
 
+    /**
+     * This will add a SCPDataMovement protocol to the database
+     * @param computeResourceId compute resource id
+     * @param dataMoveId data movement id
+     */
     void addScpDataMovementProtocol (String computeResourceId, String dataMoveId);
 
+    /**
+     * This method will add a GridFTP Data movement to the database
+     * @param gridFTPDataMovement GridFTP Data movement object
+     * @return uniquely generated data move id
+     */
     String addGridFTPDataMovement (GridFTPDataMovement gridFTPDataMovement);
 
+    /**
+     * This will add a GridFTPDataMovement protocol to the database
+     * @param computeResourceId compute resource id
+     * @param dataMoveId data movement id
+     */
     void addGridFTPDataMovementProtocol (String computeResourceId, String dataMoveId);
 
+    /**
+     * This method will retrieve compute resource object on given resource id
+     * @param resourceId unique resource id
+     * @return ComputeResource object
+     */
     ComputeResourceDescription getComputeResource (String resourceId);
 
+    /**
+     * This method will return a list of computeResource descriptions according to given search criteria
+     * @param filters map should be provided as the field name and it's value
+     * @return list of compute resources
+     */
     List<ComputeResourceDescription> getComputeResourceList (Map<String, String> filters);
 
+    /**
+     * This method will retrieve GSISSHJobSubmission object
+     * @param submissionId unique submission id
+     * @return GSISSHSubmission object
+     */
     GSISSHJobSubmission getGSISSHJobSubmission (String submissionId);
 
+    /**
+     * This method will return a list of GSISSHSubmission objects according to given search criteria
+     * @param filters map should be provided as the field name and it's value
+     * @return list of GSISSHSubmission objects
+     */
     List<GSISSHJobSubmission> getGSISSHJobSubmissionList (Map<String, String> filters);
 
+    /**
+     * This method will retrieve GlobusJobSubmission object
+     * @param submissionId unique submission id
+     * @return GlobusJobSubmission object
+     */
     GlobusJobSubmission getGlobusJobSubmission (String submissionId);
 
+    /**
+     * This method will return a list of GlobusJobSubmission objects according to given search criteria
+     * @param filters map should be provided as the field name and it's value
+     * @return list of GlobusJobSubmission objects
+     */
     List<GlobusJobSubmission> getGlobusJobSubmissionList (Map<String, String> filters);
 
+    /**
+     * This method will retrieve SCP Data movement object
+     * @param dataMoveId unique data move id
+     * @return SCPDataMovement object
+     */
     SCPDataMovement getSCPDataMovement (String dataMoveId);
 
+    /**
+     * This method will return a list of SCPDataMovement objects according to given search criteria
+     * @param filters map should be provided as the field name and it's value
+     * @return list of SCPDataMovement objects
+     */
     List<SCPDataMovement> getSCPDataMovementList (Map<String, String> filters);
 
+    /**
+     * This method will retrieve GridFTPDataMovement object
+     * @param dataMoveId unique data move id
+     * @return GridFTPDataMovement object
+     */
     GridFTPDataMovement getGridFTPDataMovement (String dataMoveId);
 
+    /**
+     * This method will return a list of GridFTPDataMovement objects according to given search criteria
+     * @param filters map should be provided as the field name and it's value
+     * @return list of GridFTPDataMovement objects
+     */
     List<GridFTPDataMovement> getGridFTPDataMovementList (Map<String, String> filters);
 
+    /**
+     * This method will check whether the given resource already exists in the system
+     * @param resourceId unique resource id
+     * @return true or false
+     */
     boolean isComputeResourceExists (String resourceId);
 
+    /**
+     * This method will remove given resource from the system
+     * @param resourceId unique resource id
+     */
+    void removeComputeResource (String resourceId);
+
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/373d1dd9/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java
index d4f2be0..1f187c5 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java
@@ -68,7 +68,7 @@ public class ApplicationInputResource extends AbstractResource {
     public Resource get(Object identifier) throws AppCatalogException {
         HashMap<String, String> ids;
         if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
+            ids = (HashMap<String, String>) identifier;
         } else {
             logger.error("Identifier should be a map with the field name and it's value");
             throw new AppCatalogException("Identifier should be a map with the field name and it's value");
@@ -286,7 +286,7 @@ public class ApplicationInputResource extends AbstractResource {
     public boolean isExists(Object identifier) throws AppCatalogException {
         HashMap<String, String> ids;
         if (identifier instanceof Map) {
-            ids = (HashMap) identifier;
+            ids = (HashMap<String, String>) identifier;
         } else {
             logger.error("Identifier should be a map with the field name and it's value");
             throw new AppCatalogException("Identifier should be a map with the field name and it's value");