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");