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/30 21:00:20 UTC
git commit: app catalog cpi impl for application interface -
AIRAVATA-1228
Repository: airavata
Updated Branches:
refs/heads/master 2fe5d9e3d -> 3a2c052c7
app catalog cpi impl for application interface - AIRAVATA-1228
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/3a2c052c
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/3a2c052c
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/3a2c052c
Branch: refs/heads/master
Commit: 3a2c052c76dbf0df4c7a8500abb7a1cf4df5e063
Parents: 2fe5d9e
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Mon Jun 30 15:00:14 2014 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Mon Jun 30 15:00:14 2014 -0400
----------------------------------------------------------------------
.../appcatalog/cpi/ComputeResource.java | 13 ++
.../data/impl/ApplicationDeploymentImpl.java | 3 +
.../data/impl/ApplicationInterfaceImpl.java | 173 ++++++++++++++++++-
.../catalog/data/impl/ComputeResourceImpl.java | 45 ++++-
.../catalog/data/model/ApplicationInput.java | 34 ++--
.../catalog/data/model/ApplicationOutput.java | 10 --
.../data/resources/AbstractResource.java | 5 +-
.../resources/ApplicationInputResource.java | 41 +++--
.../resources/ApplicationOutputResource.java | 11 --
.../data/resources/SSHSubmissionResource.java | 26 +--
.../catalog/data/util/AppCatalogJPAUtils.java | 6 +-
.../data/util/AppCatalogThriftConversion.java | 112 ++++++++++++
.../src/main/resources/appcatalog-derby.sql | 6 +-
.../src/main/resources/appcatalog-mysql.sql | 5 +-
14 files changed, 393 insertions(+), 97 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/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 38b5ef3..6e3c933 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
@@ -126,6 +126,19 @@ public interface ComputeResource {
List<GlobusJobSubmission> getGlobusJobSubmissionList (Map<String, String> filters) throws AppCatalogException;
/**
+ * This method will retrieve GSISSHJobSubmission object
+ * @param submissionId unique submission id
+ * @return GSISSHSubmission object
+ */
+ SSHJobSubmission getSSHJobSubmission (String submissionId) throws AppCatalogException;
+
+ /**
+ * 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<SSHJobSubmission> getSSHJobSubmissionList (Map<String, String> filters) throws AppCatalogException;
+ /**
* This method will retrieve SCP Data movement object
* @param dataMoveId unique data move id
* @return SCPDataMovement object
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java
index 6dbb6b9..85343a2 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java
@@ -24,11 +24,14 @@ package org.apache.aiaravata.application.catalog.data.impl;
import org.airavata.appcatalog.cpi.AppCatalogException;
import org.airavata.appcatalog.cpi.ApplicationDeployment;
import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.Map;
public class ApplicationDeploymentImpl implements ApplicationDeployment {
+ private final static Logger logger = LoggerFactory.getLogger(ApplicationDeploymentImpl.class);
@Override
public String addApplicationDeployment(ApplicationDeploymentDescription deploymentDescription) throws AppCatalogException {
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
index deb50f6..4bc63d3 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
@@ -23,66 +23,221 @@ package org.apache.aiaravata.application.catalog.data.impl;
import org.airavata.appcatalog.cpi.AppCatalogException;
import org.airavata.appcatalog.cpi.ApplicationInterface;
+import org.apache.aiaravata.application.catalog.data.resources.*;
+import org.apache.aiaravata.application.catalog.data.util.AppCatalogThriftConversion;
+import org.apache.aiaravata.application.catalog.data.util.AppCatalogUtils;
import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.Map;
public class ApplicationInterfaceImpl implements ApplicationInterface {
+ private final static Logger logger = LoggerFactory.getLogger(ApplicationInterfaceImpl.class);
@Override
public String addApplicationModule(ApplicationModule applicationModule) throws AppCatalogException {
- return null;
+ try {
+ AppModuleResource moduleResource = new AppModuleResource();
+ moduleResource.setModuleName(applicationModule.getAppModuleName());
+ moduleResource.setModuleId(AppCatalogUtils.getID(applicationModule.getAppModuleName()));
+ moduleResource.setModuleDesc(applicationModule.getAppModuleDescription());
+ moduleResource.setModuleVersion(applicationModule.getAppModuleVersion());
+ moduleResource.save();
+ applicationModule.setAppModuleId(moduleResource.getModuleId());
+ return moduleResource.getModuleId();
+ }catch (Exception e) {
+ logger.error("Error while saving application module...", e);
+ throw new AppCatalogException(e);
+ }
}
@Override
public String addApplicationInterface(ApplicationInterfaceDescription applicationInterfaceDescription) throws AppCatalogException {
- return null;
+ try {
+ AppInterfaceResource resource = new AppInterfaceResource();
+ resource.setAppName(applicationInterfaceDescription.getApplicationName());
+ resource.setInterfaceId(AppCatalogUtils.getID(applicationInterfaceDescription.getApplicationName()));
+ resource.save();
+ applicationInterfaceDescription.setApplicationInterfaceId(resource.getInterfaceId());
+
+ List<String> applicationModules = applicationInterfaceDescription.getApplicationModules();
+ if (applicationModules != null && !applicationModules.isEmpty()){
+ for (String moduleId : applicationModules){
+ AppModuleResource appModuleResource = new AppModuleResource();
+ AppModuleMappingResource moduleMappingResource = new AppModuleMappingResource();
+ moduleMappingResource.setInterfaceId(resource.getInterfaceId());
+ moduleMappingResource.setModuleId(moduleId);
+ moduleMappingResource.setModuleResource((AppModuleResource)appModuleResource.get(moduleId));
+ moduleMappingResource.setAppInterfaceResource(resource);
+ moduleMappingResource.save();
+ }
+ }
+
+ List<InputDataObjectType> applicationInputs = applicationInterfaceDescription.getApplicationInputs();
+ if (applicationInputs != null && !applicationInputs.isEmpty()){
+ for (InputDataObjectType input : applicationInputs){
+ ApplicationInputResource inputResource = new ApplicationInputResource();
+ inputResource.setAppInterfaceResource(resource);
+ inputResource.setInterfaceID(resource.getInterfaceId());
+ inputResource.setUserFriendlyDesc(input.getUserFriendlyDescription());
+ inputResource.setInputKey(input.getName());
+ inputResource.setInputVal(input.getValue());
+ inputResource.setDataType(input.getType().toString());
+ inputResource.setMetadata(input.getMetaData());
+ inputResource.setStandareInput(input.isStandardInput());
+ inputResource.setAppArgument(input.getApplicationArguement());
+ inputResource.save();
+ }
+ }
+
+ List<OutputDataObjectType> applicationOutputs = applicationInterfaceDescription.getApplicationOutputs();
+ if (applicationOutputs != null && !applicationOutputs.isEmpty()){
+ for (OutputDataObjectType output : applicationOutputs){
+ ApplicationOutputResource outputResource = new ApplicationOutputResource();
+ outputResource.setInterfaceID(resource.getInterfaceId());
+ outputResource.setAppInterfaceResource(resource);
+ outputResource.setOutputKey(output.getName());
+ outputResource.setOutputVal(output.getValue());
+ outputResource.setDataType(output.getType().toString());
+ outputResource.save();
+ }
+ }
+ return resource.getInterfaceId();
+ }catch (Exception e) {
+ logger.error("Error while saving application interface...", e);
+ throw new AppCatalogException(e);
+ }
}
@Override
public void addApplicationModuleMapping(String moduleId, String interfaceId) throws AppCatalogException {
-
+ try {
+ AppModuleResource appModuleResource = new AppModuleResource();
+ AppInterfaceResource interfaceResource = new AppInterfaceResource();
+ AppModuleMappingResource moduleMappingResource = new AppModuleMappingResource();
+ moduleMappingResource.setInterfaceId(interfaceId);
+ moduleMappingResource.setModuleId(moduleId);
+ moduleMappingResource.setModuleResource((AppModuleResource)appModuleResource.get(moduleId));
+ moduleMappingResource.setAppInterfaceResource((AppInterfaceResource)interfaceResource.get(interfaceId));
+ moduleMappingResource.save();
+ }catch (Exception e) {
+ logger.error("Error while saving application module mapping...", e);
+ throw new AppCatalogException(e);
+ }
}
@Override
public ApplicationModule getApplicationModule(String moduleId) throws AppCatalogException {
- return null;
+ try {
+ AppModuleResource appModuleResource = new AppModuleResource();
+ return AppCatalogThriftConversion.getApplicationModuleDesc((AppModuleResource) appModuleResource.get(moduleId));
+ }catch (Exception e) {
+ logger.error("Error while retrieving application module...", e);
+ throw new AppCatalogException(e);
+ }
}
@Override
public ApplicationInterfaceDescription getApplicationInterface(String interfaceId) throws AppCatalogException {
- return null;
+ try {
+ AppInterfaceResource interfaceResource = new AppInterfaceResource();
+ return AppCatalogThriftConversion.getApplicationInterfaceDescription((AppInterfaceResource)interfaceResource.get(interfaceId));
+ }catch (Exception e) {
+ logger.error("Error while retrieving application interface...", e);
+ throw new AppCatalogException(e);
+ }
}
@Override
public List<ApplicationModule> getApplicationModules(Map<String, String> filters) throws AppCatalogException {
+ try {
+ AppModuleResource resource = new AppModuleResource();
+ for (String fieldName : filters.keySet() ){
+ if (fieldName.equals(AbstractResource.ApplicationModuleConstants.MODULE_NAME)){
+ List<Resource> resources = resource.get(AbstractResource.ApplicationModuleConstants.MODULE_NAME, filters.get(fieldName));
+ if (resources != null && !resources.isEmpty()){
+ return AppCatalogThriftConversion.getAppModules(resources);
+ }
+ }else {
+ logger.error("Unsupported field name for app module.", new IllegalArgumentException());
+ throw new IllegalArgumentException("Unsupported field name for app module.");
+ }
+ }
+ }catch (Exception e){
+ logger.error("Error while retrieving app module list...", e);
+ throw new AppCatalogException(e);
+ }
return null;
}
@Override
public List<ApplicationInterfaceDescription> getApplicationInterfaces(Map<String, String> filters) throws AppCatalogException {
+ try {
+ AppInterfaceResource resource = new AppInterfaceResource();
+ for (String fieldName : filters.keySet() ){
+ if (fieldName.equals(AbstractResource.ApplicationInterfaceConstants.APPLICATION_NAME)){
+ List<Resource> resources = resource.get(AbstractResource.ApplicationInterfaceConstants.APPLICATION_NAME, filters.get(fieldName));
+ if (resources != null && !resources.isEmpty()){
+ return AppCatalogThriftConversion.getAppInterfaceDescList(resources);
+ }
+ }else {
+ logger.error("Unsupported field name for app interface.", new IllegalArgumentException());
+ throw new IllegalArgumentException("Unsupported field name for app interface.");
+ }
+ }
+ }catch (Exception e){
+ logger.error("Error while retrieving app interface list...", e);
+ throw new AppCatalogException(e);
+ }
return null;
}
@Override
public void removeApplicationInterface(String interfaceId) throws AppCatalogException {
-
+ try {
+ AppInterfaceResource resource = new AppInterfaceResource();
+ resource.remove(interfaceId);
+ }catch (Exception e){
+ logger.error("Error while removing app interface...", e);
+ throw new AppCatalogException(e);
+ }
}
@Override
public void removeApplicationModule(String moduleId) throws AppCatalogException {
-
+ try {
+ AppModuleResource resource = new AppModuleResource();
+ resource.remove(moduleId);
+ }catch (Exception e){
+ logger.error("Error while removing app module...", e);
+ throw new AppCatalogException(e);
+ }
}
@Override
public boolean isApplicationInterfaceExists(String interfaceId) throws AppCatalogException {
- return false;
+ try {
+ AppInterfaceResource resource = new AppInterfaceResource();
+ return resource.isExists(interfaceId);
+ }catch (Exception e){
+ logger.error("Error while retrieving app interface...", e);
+ throw new AppCatalogException(e);
+ }
}
@Override
public boolean isApplicationModuleExists(String moduleId) throws AppCatalogException {
- return false;
+ try {
+ AppModuleResource resource = new AppModuleResource();
+ return resource.isExists(moduleId);
+ }catch (Exception e){
+ logger.error("Error while retrieving app module...", e);
+ throw new AppCatalogException(e);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
index 275705b..03c61d0 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ComputeResourceImpl.java
@@ -21,7 +21,6 @@
package org.apache.aiaravata.application.catalog.data.impl;
-import org.airavata.appcatalog.cpi.AppCatalog;
import org.airavata.appcatalog.cpi.AppCatalogException;
import org.airavata.appcatalog.cpi.ComputeResource;
import org.apache.aiaravata.application.catalog.data.resources.*;
@@ -36,7 +35,7 @@ import java.util.Map;
import java.util.Set;
public class ComputeResourceImpl implements ComputeResource {
- private final static Logger logger = LoggerFactory.getLogger(ComputeResource.class);
+ private final static Logger logger = LoggerFactory.getLogger(ComputeResourceImpl.class);
@Override
public String addComputeResource(ComputeResourceDescription description) throws AppCatalogException {
@@ -467,6 +466,45 @@ public class ComputeResourceImpl implements ComputeResource {
}
@Override
+ public SSHJobSubmission getSSHJobSubmission(String submissionId) throws AppCatalogException {
+ try {
+ SSHSubmissionResource resource = new SSHSubmissionResource();
+ SSHSubmissionResource submissionResource = (SSHSubmissionResource)resource.get(submissionId);
+ return AppCatalogThriftConversion.getSSHJobSubmissionDescription(submissionResource);
+ }catch (Exception e){
+ logger.error("Error while retrieving SSH Job Submission...", e);
+ throw new AppCatalogException(e);
+ }
+ }
+
+ @Override
+ public List<SSHJobSubmission> getSSHJobSubmissionList(Map<String, String> filters) throws AppCatalogException {
+ try {
+ SSHSubmissionResource resource = new SSHSubmissionResource();
+ for (String fieldName : filters.keySet() ){
+ if (fieldName.equals(AbstractResource.SSHSubmissionConstants.RESOURCE_ID)){
+ List<Resource> resources = resource.get(AbstractResource.SSHSubmissionConstants.RESOURCE_ID, filters.get(fieldName));
+ if (resources != null && !resources.isEmpty()){
+ return AppCatalogThriftConversion.getSSHSubmissionList(resources);
+ }
+ }else if (fieldName.equals(AbstractResource.SSHSubmissionConstants.RESOURCE_JOB_MANAGER)){
+ List<Resource> resources = resource.get(AbstractResource.SSHSubmissionConstants.RESOURCE_JOB_MANAGER, filters.get(fieldName));
+ if (resources != null && !resources.isEmpty()){
+ return AppCatalogThriftConversion.getSSHSubmissionList(resources);
+ }
+ }else {
+ logger.error("Unsupported field name for SSH Submission.", new IllegalArgumentException());
+ throw new IllegalArgumentException("Unsupported field name for SSH Submission.");
+ }
+ }
+ }catch (Exception e){
+ logger.error("Error while retrieving SSH Submission list...", e);
+ throw new AppCatalogException(e);
+ }
+ return null;
+ }
+
+ @Override
public SCPDataMovement getSCPDataMovement(String dataMoveId) throws AppCatalogException {
try {
SCPDataMovementResource resource = new SCPDataMovementResource();
@@ -548,8 +586,7 @@ public class ComputeResourceImpl implements ComputeResource {
public boolean isComputeResourceExists(String resourceId) throws AppCatalogException {
try {
ComputeHostResource resource = new ComputeHostResource();
- ComputeHostResource computeResource = (ComputeHostResource)resource.get(resourceId);
- return computeResource != null;
+ return resource.isExists(resourceId);
}catch (Exception e){
logger.error("Error while retrieving compute resource...", e);
throw new AppCatalogException(e);
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java
index f7e45ab..689f24e 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java
@@ -41,10 +41,12 @@ public class ApplicationInput implements Serializable {
private String dataType;
@Column(name = "METADATA")
private String metadata;
- @Column(name = "APP_PARAMETER")
- private String appParameter;
- @Column(name = "APP_UI_DESCRIPTION")
- private String appUIDesc;
+ @Column(name = "APP_ARGUMENT")
+ private String appArgument;
+ @Column(name = "USER_FRIENDLY_DESC")
+ private String userFriendlyDesc;
+ @Column(name = "STANDARD_INPUT")
+ private boolean standardInput;
@ManyToOne(cascade= CascadeType.MERGE)
@JoinColumn(name = "INTERFACE_ID")
@@ -90,20 +92,20 @@ public class ApplicationInput implements Serializable {
this.metadata = metadata;
}
- public String getAppParameter() {
- return appParameter;
+ public String getAppArgument() {
+ return appArgument;
}
- public void setAppParameter(String appParameter) {
- this.appParameter = appParameter;
+ public void setAppArgument(String appArgument) {
+ this.appArgument = appArgument;
}
- public String getAppUIDesc() {
- return appUIDesc;
+ public String getUserFriendlyDesc() {
+ return userFriendlyDesc;
}
- public void setAppUIDesc(String appUIDesc) {
- this.appUIDesc = appUIDesc;
+ public void setUserFriendlyDesc(String userFriendlyDesc) {
+ this.userFriendlyDesc = userFriendlyDesc;
}
public ApplicationInterface getApplicationInterface() {
@@ -113,4 +115,12 @@ public class ApplicationInput implements Serializable {
public void setApplicationInterface(ApplicationInterface applicationInterface) {
this.applicationInterface = applicationInterface;
}
+
+ public boolean isStandardInput() {
+ return standardInput;
+ }
+
+ public void setStandardInput(boolean standardInput) {
+ this.standardInput = standardInput;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java
index ba55e09..6e418af 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java
@@ -39,8 +39,6 @@ public class ApplicationOutput implements Serializable {
private String outputVal;
@Column(name = "DATA_TYPE")
private String dataType;
- @Column(name = "METADATA")
- private String metadata;
@ManyToOne(cascade= CascadeType.MERGE)
@JoinColumn(name = "INTERFACE_ID")
@@ -62,14 +60,6 @@ public class ApplicationOutput implements Serializable {
this.dataType = dataType;
}
- public String getMetadata() {
- return metadata;
- }
-
- public void setMetadata(String metadata) {
- this.metadata = metadata;
- }
-
public ApplicationInterface getApplicationInterface() {
return applicationInterface;
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
index 90cc4d0..d6534ba 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
@@ -201,8 +201,9 @@ public abstract class AbstractResource implements Resource {
public static final String INPUT_VALUE = "inputVal";
public static final String DATA_TYPE = "dataType";
public static final String METADATA = "metadata";
- public static final String APP_PARAMETER = "appParameter";
- public static final String APP_UI_DESCRIPTION = "appUIDesc";
+ public static final String APP_ARGUMENT = "appArgument";
+ public static final String USER_FRIENDLY_DESC = "userFriendlyDesc";
+ public static final String STANDARD_INPUT = "standardInput";
}
public final class AppOutputConstants {
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/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 1f187c5..84f6889 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
@@ -27,8 +27,9 @@ public class ApplicationInputResource extends AbstractResource {
private String dataType;
private String inputVal;
private String metadata;
- private String appParameter;
- private String appUIDesc;
+ private String appArgument;
+ private String userFriendlyDesc;
+ private boolean standareInput;
private AppInterfaceResource appInterfaceResource;
@@ -250,9 +251,9 @@ public class ApplicationInputResource extends AbstractResource {
existingApplicationInput.setInputKey(inputKey);
existingApplicationInput.setInputVal(inputVal);
existingApplicationInput.setMetadata(metadata);
- existingApplicationInput.setAppParameter(appParameter);
- existingApplicationInput.setAppUIDesc(appUIDesc);
-
+ existingApplicationInput.setAppArgument(appArgument);
+ existingApplicationInput.setUserFriendlyDesc(userFriendlyDesc);
+ existingApplicationInput.setStandardInput(standareInput);
em.merge(existingApplicationInput);
} else {
ApplicationInput applicationInput = new ApplicationInput();
@@ -263,9 +264,9 @@ public class ApplicationInputResource extends AbstractResource {
applicationInput.setInputKey(inputKey);
applicationInput.setInputVal(inputVal);
applicationInput.setMetadata(metadata);
- applicationInput.setAppParameter(appParameter);
- applicationInput.setAppUIDesc(appUIDesc);
-
+ applicationInput.setAppArgument(appArgument);
+ applicationInput.setUserFriendlyDesc(userFriendlyDesc);
+ applicationInput.setStandardInput(standareInput);
em.persist(applicationInput);
}
em.getTransaction().commit();
@@ -354,20 +355,20 @@ public class ApplicationInputResource extends AbstractResource {
this.metadata = metadata;
}
- public String getAppParameter() {
- return appParameter;
+ public String getAppArgument() {
+ return appArgument;
}
- public void setAppParameter(String appParameter) {
- this.appParameter = appParameter;
+ public void setAppArgument(String appArgument) {
+ this.appArgument = appArgument;
}
- public String getAppUIDesc() {
- return appUIDesc;
+ public String getUserFriendlyDesc() {
+ return userFriendlyDesc;
}
- public void setAppUIDesc(String appUIDesc) {
- this.appUIDesc = appUIDesc;
+ public void setUserFriendlyDesc(String userFriendlyDesc) {
+ this.userFriendlyDesc = userFriendlyDesc;
}
public AppInterfaceResource getAppInterfaceResource() {
@@ -377,4 +378,12 @@ public class ApplicationInputResource extends AbstractResource {
public void setAppInterfaceResource(AppInterfaceResource appInterfaceResource) {
this.appInterfaceResource = appInterfaceResource;
}
+
+ public boolean isStandareInput() {
+ return standareInput;
+ }
+
+ public void setStandareInput(boolean standareInput) {
+ this.standareInput = standareInput;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java
index 7046fd7..4389cd7 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java
@@ -25,7 +25,6 @@ public class ApplicationOutputResource extends AbstractResource {
private String outputKey;
private String outputVal;
private String dataType;
- private String metadata;
private AppInterfaceResource appInterfaceResource;
@@ -248,7 +247,6 @@ public class ApplicationOutputResource extends AbstractResource {
existingApplicationOutput.setDataType(dataType);
existingApplicationOutput.setOutputKey(outputKey);
existingApplicationOutput.setOutputVal(outputVal);
- existingApplicationOutput.setMetadata(metadata);
em.merge(existingApplicationOutput);
} else {
@@ -259,7 +257,6 @@ public class ApplicationOutputResource extends AbstractResource {
applicationOutput.setDataType(dataType);
applicationOutput.setOutputKey(outputKey);
applicationOutput.setOutputVal(outputVal);
- applicationOutput.setMetadata(metadata);
em.persist(applicationOutput);
}
@@ -341,14 +338,6 @@ public class ApplicationOutputResource extends AbstractResource {
this.dataType = dataType;
}
- public String getMetadata() {
- return metadata;
- }
-
- public void setMetadata(String metadata) {
- this.metadata = metadata;
- }
-
public AppInterfaceResource getAppInterfaceResource() {
return appInterfaceResource;
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/SSHSubmissionResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/SSHSubmissionResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/SSHSubmissionResource.java
index 9330fa0..02100dc 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/SSHSubmissionResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/SSHSubmissionResource.java
@@ -85,19 +85,7 @@ public class SSHSubmissionResource extends AbstractResource {
Query q;
AppCatalogQueryGenerator generator = new AppCatalogQueryGenerator(SSH_SUBMISSION);
List results;
- if (fieldName.equals(SSHSubmissionConstants.SUBMISSION_ID)) {
- generator.setParameter(SSHSubmissionConstants.SUBMISSION_ID, value);
- q = generator.selectQuery(em);
- results = q.getResultList();
- if (results.size() != 0) {
- for (Object result : results) {
- SSHSubmission sshSubmission = (SSHSubmission) result;
- SSHSubmissionResource sshSubmissionResource =
- (SSHSubmissionResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.SSH_SUBMISSION, sshSubmission);
- sshSubmissionResourceList.add(sshSubmissionResource);
- }
- }
- } else if (fieldName.equals(SSHSubmissionConstants.RESOURCE_ID)) {
+ if (fieldName.equals(SSHSubmissionConstants.RESOURCE_ID)) {
generator.setParameter(SSHSubmissionConstants.RESOURCE_ID, value);
q = generator.selectQuery(em);
results = q.getResultList();
@@ -109,18 +97,6 @@ public class SSHSubmissionResource extends AbstractResource {
sshSubmissionResourceList.add(sshSubmissionResource);
}
}
- } else if (fieldName.equals(SSHSubmissionConstants.SSH_PORT)) {
- generator.setParameter(SSHSubmissionConstants.SSH_PORT, value);
- q = generator.selectQuery(em);
- results = q.getResultList();
- if (results.size() != 0) {
- for (Object result : results) {
- SSHSubmission sshSubmission = (SSHSubmission) result;
- SSHSubmissionResource sshSubmissionResource =
- (SSHSubmissionResource) AppCatalogJPAUtils.getResource(AppCatalogResourceType.SSH_SUBMISSION, sshSubmission);
- sshSubmissionResourceList.add(sshSubmissionResource);
- }
- }
} else if (fieldName.equals(SSHSubmissionConstants.RESOURCE_JOB_MANAGER)) {
generator.setParameter(SSHSubmissionConstants.RESOURCE_JOB_MANAGER, value);
q = generator.selectQuery(em);
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
index 599c956..2eb78b8 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
@@ -457,8 +457,9 @@ public class AppCatalogJPAUtils {
resource.setInputVal(o.getInputVal());
resource.setDataType(o.getDataType());
resource.setMetadata(o.getMetadata());
- resource.setAppParameter(o.getAppParameter());
- resource.setAppUIDesc(o.getAppUIDesc());
+ resource.setAppArgument(o.getAppArgument());
+ resource.setUserFriendlyDesc(o.getUserFriendlyDesc());
+ resource.setStandareInput(o.isStandardInput());
resource.setAppInterfaceResource((AppInterfaceResource)createAppInterfaceResource(o.getApplicationInterface()));
return resource;
}
@@ -469,7 +470,6 @@ public class AppCatalogJPAUtils {
resource.setOutputKey(o.getOutputKey());
resource.setOutputVal(o.getOutputVal());
resource.setDataType(o.getDataType());
- resource.setMetadata(o.getMetadata());
resource.setAppInterfaceResource((AppInterfaceResource)createAppInterfaceResource(o.getApplicationInterface()));
return resource;
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
index 8feb1a4..977d524 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
@@ -23,6 +23,11 @@ package org.apache.aiaravata.application.catalog.data.util;
import org.airavata.appcatalog.cpi.AppCatalogException;
import org.apache.aiaravata.application.catalog.data.resources.*;
+import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
+import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.appinterface.DataType;
+import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
import org.apache.airavata.model.computehost.*;
import java.util.*;
@@ -167,6 +172,14 @@ public class AppCatalogThriftConversion {
return globusJobSubmission;
}
+ public static SSHJobSubmission getSSHJobSubmissionDescription (SSHSubmissionResource submission) throws AppCatalogException {
+ SSHJobSubmission sshJobSubmission = new SSHJobSubmission();
+ sshJobSubmission.setJobSubmissionDataID(submission.getSubmissionID());
+ sshJobSubmission.setResourceJobManager(ResourceJobManager.valueOf(submission.getResourceJobManager()));
+ sshJobSubmission.setSshPort(submission.getSshPort());
+ return sshJobSubmission;
+ }
+
public static SCPDataMovement getSCPDataMovementDescription (SCPDataMovementResource dataMovementResource) throws AppCatalogException {
SCPDataMovement dataMovement = new SCPDataMovement();
dataMovement.setDataMovementDataID(dataMovementResource.getDataMoveID());
@@ -219,6 +232,14 @@ public class AppCatalogThriftConversion {
return list;
}
+ public static List<SSHJobSubmission> getSSHSubmissionList (List<Resource> resources) throws AppCatalogException {
+ List<SSHJobSubmission> list = new ArrayList<SSHJobSubmission>();
+ for (Resource resource : resources){
+ list.add(getSSHJobSubmissionDescription((SSHSubmissionResource)resource));
+ }
+ return list;
+ }
+
public static List<GridFTPDataMovement> getGridFTPDataMovementList (List<Resource> resources) throws AppCatalogException {
List<GridFTPDataMovement> list = new ArrayList<GridFTPDataMovement>();
for (Resource resource : resources){
@@ -278,6 +299,97 @@ public class AppCatalogThriftConversion {
return resource;
}
+ public static ApplicationModule getApplicationModuleDesc (AppModuleResource resource){
+ ApplicationModule module = new ApplicationModule();
+ module.setAppModuleId(resource.getModuleId());
+ module.setAppModuleDescription(resource.getModuleDesc());
+ module.setAppModuleName(resource.getModuleName());
+ module.setAppModuleVersion(resource.getModuleVersion());
+ return module;
+ }
+
+ public static ApplicationInterfaceDescription getApplicationInterfaceDescription (AppInterfaceResource resource) throws AppCatalogException {
+ ApplicationInterfaceDescription description = new ApplicationInterfaceDescription();
+ description.setApplicationInterfaceId(resource.getInterfaceId());
+ description.setApplicationName(resource.getAppName());
+
+ AppModuleResource appModuleResource = new AppModuleResource();
+ List<Resource> appModules = appModuleResource.get(AbstractResource.AppModuleMappingConstants.INTERFACE_ID, resource.getInterfaceId());
+ if (appModules != null && !appModules.isEmpty()){
+ description.setApplicationModules(getAppModuleIds(appModules));
+ }
+
+ ApplicationInputResource inputResource = new ApplicationInputResource();
+ List<Resource> appInputs = inputResource.get(AbstractResource.AppInputConstants.INTERFACE_ID, resource.getInterfaceId());
+ if (appInputs != null && !appInputs.isEmpty()){
+ description.setApplicationInputs(getAppInputs(appInputs));
+ }
+
+ ApplicationOutputResource outputResource = new ApplicationOutputResource();
+ List<Resource> appOutputs = outputResource.get(AbstractResource.AppOutputConstants.INTERFACE_ID, resource.getInterfaceId());
+ if (appOutputs != null && !appOutputs.isEmpty()){
+ description.setApplicationOutputs(getAppOutputs(appOutputs));
+ }
+ return description;
+ }
+
+ public static List<String> getAppModuleIds (List<Resource> appModules){
+ List<String> modules = new ArrayList<String>();
+ for (Resource resource : appModules){
+ modules.add(((AppModuleResource)resource).getModuleId());
+ }
+ return modules;
+ }
+
+ public static List<ApplicationModule> getAppModules (List<Resource> appModules){
+ List<ApplicationModule> modules = new ArrayList<ApplicationModule>();
+ for (Resource resource : appModules){
+ modules.add(getApplicationModuleDesc((AppModuleResource) resource));
+ }
+ return modules;
+ }
+
+ public static List<ApplicationInterfaceDescription> getAppInterfaceDescList (List<Resource> appInterfaces) throws AppCatalogException {
+ List<ApplicationInterfaceDescription> interfaceDescriptions = new ArrayList<ApplicationInterfaceDescription>();
+ for (Resource resource : appInterfaces){
+ interfaceDescriptions.add(getApplicationInterfaceDescription((AppInterfaceResource) resource));
+ }
+ return interfaceDescriptions;
+ }
+
+ public static List<InputDataObjectType> getAppInputs (List<Resource> resources){
+ List<InputDataObjectType> inputs = new ArrayList<InputDataObjectType>();
+ for (Resource resource : resources){
+ inputs.add(getInputDataObjType((ApplicationInputResource) resource));
+ }
+ return inputs;
+ }
+ public static InputDataObjectType getInputDataObjType (ApplicationInputResource input){
+ InputDataObjectType inputDataObjectType = new InputDataObjectType();
+ inputDataObjectType.setName(input.getInputKey());
+ inputDataObjectType.setValue(input.getInputVal());
+ inputDataObjectType.setApplicationArguement(input.getAppArgument());
+ inputDataObjectType.setMetaData(input.getMetadata());
+ inputDataObjectType.setType(DataType.valueOf(input.getDataType()));
+ inputDataObjectType.setStandardInput(input.isStandareInput());
+ inputDataObjectType.setUserFriendlyDescription(input.getUserFriendlyDesc());
+ return inputDataObjectType;
+ }
+
+ public static List<OutputDataObjectType> getAppOutputs (List<Resource> resources){
+ List<OutputDataObjectType> outputs = new ArrayList<OutputDataObjectType>();
+ for (Resource resource : resources){
+ outputs.add(getOutputDataObjType((ApplicationOutputResource) resource));
+ }
+ return outputs;
+ }
+ public static OutputDataObjectType getOutputDataObjType (ApplicationOutputResource output){
+ OutputDataObjectType outputDataObjectType = new OutputDataObjectType();
+ outputDataObjectType.setName(output.getOutputKey());
+ outputDataObjectType.setValue(output.getOutputVal());
+ outputDataObjectType.setType(DataType.valueOf(output.getDataType()));
+ return outputDataObjectType;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
index a151bbb..535c372 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
@@ -225,8 +225,9 @@ CREATE TABLE APPLICATION_INPUT
INPUT_VALUE VARCHAR(255),
DATA_TYPE VARCHAR(255),
METADATA VARCHAR(255),
- APP_PARAMETER VARCHAR(255),
- APP_UI_DESCRIPTION VARCHAR(255),
+ APP_ARGUMENT VARCHAR(255),
+ STANDARD_INPUT SMALLINT,
+ USER_FRIENDLY_DESC VARCHAR(255),
PRIMARY KEY(INTERFACE_ID,INPUT_KEY),
FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
);
@@ -237,7 +238,6 @@ CREATE TABLE APPLICATION_OUTPUT
OUTPUT_KEY VARCHAR(255),
OUTPUT_VALUE VARCHAR(255),
DATA_TYPE VARCHAR(255),
- METADATA VARCHAR(255),
PRIMARY KEY(INTERFACE_ID,OUTPUT_KEY),
FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
);
http://git-wip-us.apache.org/repos/asf/airavata/blob/3a2c052c/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
index 19e5b02..c0b6c5e 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
@@ -226,8 +226,9 @@ CREATE TABLE APPLICATION_INPUT
INPUT_VALUE VARCHAR(255),
DATA_TYPE VARCHAR(255),
METADATA VARCHAR(255),
- APP_PARAMETER VARCHAR(255),
- APP_UI_DESCRIPTION VARCHAR(255),
+ APP_ARGUMENT VARCHAR(255),
+ STANDARD_INPUT SMALLINT,
+ USER_FRIENDLY_DESC VARCHAR(255),
PRIMARY KEY(INTERFACE_ID,INPUT_KEY),
FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
);