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 2015/09/28 19:58:33 UTC
[11/11] airavata git commit: data storage preference related changes
to app catalog
data storage preference related changes to app catalog
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/d84783da
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/d84783da
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/d84783da
Branch: refs/heads/master
Commit: d84783da02f25e9a8f99178eecf6a626c28a5595
Parents: 07da736
Author: Chathuri Wimalasena <ch...@apache.org>
Authored: Mon Sep 28 13:58:08 2015 -0400
Committer: Chathuri Wimalasena <ch...@apache.org>
Committed: Mon Sep 28 13:58:08 2015 -0400
----------------------------------------------------------------------
.../server/handler/AiravataServerHandler.java | 127 +
.../java/org/apache/airavata/api/Airavata.java | 38423 ++++++++++-------
.../main/resources/lib/airavata/Airavata.cpp | 9723 +++--
.../src/main/resources/lib/airavata/Airavata.h | 1319 +-
.../lib/airavata/Airavata_server.skeleton.cpp | 25 +
.../airavata/compute_resource_model_types.cpp | 420 +-
.../lib/airavata/compute_resource_model_types.h | 14 +-
.../gateway_resource_profile_model_types.cpp | 291 +-
.../gateway_resource_profile_model_types.h | 108 +-
.../resources/lib/Airavata/API/Airavata.php | 2190 +-
.../Model/AppCatalog/ComputeResource/Types.php | 196 +-
.../Model/AppCatalog/GatewayProfile/Types.php | 257 +-
.../lib/apache/airavata/api/Airavata-remote | 35 +
.../lib/apache/airavata/api/Airavata.py | 5361 ++-
.../model/appcatalog/computeresource/ttypes.py | 124 +-
.../model/appcatalog/gatewayprofile/ttypes.py | 176 +-
.../org/apache/airavata/model/Workflow.java | 2 +-
.../ApplicationDeploymentDescription.java | 2 +-
.../appdeployment/ApplicationModule.java | 2 +-
.../appcatalog/appdeployment/SetEnvPaths.java | 2 +-
.../ApplicationInterfaceDescription.java | 2 +-
.../appcatalog/computeresource/BatchQueue.java | 2 +-
.../computeresource/CloudJobSubmission.java | 2 +-
.../ComputeResourceDescription.java | 218 +-
.../computeresource/DataMovementInterface.java | 2 +-
.../computeresource/GlobusJobSubmission.java | 34 +-
.../computeresource/GridFTPDataMovement.java | 2 +-
.../computeresource/JobSubmissionInterface.java | 2 +-
.../computeresource/LOCALDataMovement.java | 2 +-
.../computeresource/LOCALSubmission.java | 2 +-
.../computeresource/ResourceJobManager.java | 2 +-
.../computeresource/SCPDataMovement.java | 2 +-
.../computeresource/SSHJobSubmission.java | 172 +-
.../computeresource/UnicoreDataMovement.java | 2 +-
.../computeresource/UnicoreJobSubmission.java | 2 +-
.../ComputeResourcePreference.java | 120 +-
.../gatewayprofile/GatewayResourceProfile.java | 312 +-
.../application/io/InputDataObjectType.java | 2 +-
.../application/io/OutputDataObjectType.java | 2 +-
.../airavata/model/commons/ErrorModel.java | 2 +-
.../model/commons/ValidationResults.java | 2 +-
.../airavata/model/commons/ValidatorResult.java | 2 +-
.../model/error/AiravataClientException.java | 2 +-
.../model/error/AiravataSystemException.java | 2 +-
.../model/error/AuthenticationException.java | 2 +-
.../model/error/AuthorizationException.java | 2 +-
.../error/ExperimentNotFoundException.java | 2 +-
.../model/error/InvalidRequestException.java | 2 +-
.../model/error/LaunchValidationException.java | 2 +-
.../model/error/ProjectNotFoundException.java | 2 +-
.../airavata/model/error/TimedOutException.java | 2 +-
.../airavata/model/error/ValidationResults.java | 2 +-
.../airavata/model/error/ValidatorResult.java | 2 +-
.../model/experiment/ExperimentModel.java | 2 +-
.../model/experiment/ExperimentStatistics.java | 2 +-
.../experiment/ExperimentSummaryModel.java | 2 +-
.../experiment/UserConfigurationDataModel.java | 2 +-
.../org/apache/airavata/model/job/JobModel.java | 2 +-
.../event/ExperimentStatusChangeEvent.java | 2 +-
.../model/messaging/event/JobIdentifier.java | 2 +-
.../messaging/event/JobStatusChangeEvent.java | 2 +-
.../event/JobStatusChangeRequestEvent.java | 2 +-
.../airavata/model/messaging/event/Message.java | 2 +-
.../messaging/event/ProcessIdentifier.java | 2 +-
.../event/ProcessStatusChangeEvent.java | 2 +-
.../event/ProcessStatusChangeRequestEvent.java | 2 +-
.../messaging/event/ProcessSubmitEvent.java | 2 +-
.../messaging/event/ProcessTerminateEvent.java | 2 +-
.../model/messaging/event/TaskIdentifier.java | 2 +-
.../messaging/event/TaskOutputChangeEvent.java | 2 +-
.../messaging/event/TaskStatusChangeEvent.java | 2 +-
.../event/TaskStatusChangeRequestEvent.java | 2 +-
.../airavata/model/process/ProcessModel.java | 2 +-
.../ComputationalResourceSchedulingModel.java | 2 +-
.../airavata/model/security/AuthzToken.java | 2 +-
.../airavata/model/status/ExperimentStatus.java | 2 +-
.../apache/airavata/model/status/JobStatus.java | 2 +-
.../airavata/model/status/ProcessStatus.java | 2 +-
.../airavata/model/status/TaskStatus.java | 2 +-
.../model/task/DataStagingTaskModel.java | 2 +-
.../apache/airavata/model/task/TaskModel.java | 2 +-
.../airavata/model/workspace/Gateway.java | 2 +-
.../apache/airavata/model/workspace/Group.java | 2 +-
.../airavata/model/workspace/Project.java | 2 +-
.../apache/airavata/model/workspace/User.java | 2 +-
.../catalog/impl/GwyResourceProfileImpl.java | 81 +-
.../model/ComputeResourcePreference.java | 10 +
.../catalog/model/DataStoragePreference.java | 96 +
.../catalog/model/DataStoragePreferencePK.java | 64 +
.../resources/AppCatAbstractResource.java | 6 +
.../ComputeHostPreferenceResource.java | 11 +
.../DataStoragePreferenceResource.java | 323 +
.../app/catalog/util/AppCatalogJPAUtils.java | 21 +
.../catalog/util/AppCatalogResourceType.java | 1 +
.../util/AppCatalogThriftConversion.java | 24 +-
.../src/main/resources/META-INF/persistence.xml | 1 +
.../src/main/resources/appcatalog-derby.sql | 14 +-
.../src/main/resources/appcatalog-mysql.sql | 12 +
.../src/test/resources/appcatalog-derby.sql | 17 +-
.../registry/cpi/GwyResourceProfile.java | 4 +
.../airavata-api/airavata_api.thrift | 37 +
.../gateway_resource_profile_model.thrift | 2 +-
102 files changed, 38638 insertions(+), 21859 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/d84783da/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index dd30b9e..fccf66f 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -41,6 +41,7 @@ import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
import org.apache.airavata.model.appcatalog.computeresource.*;
import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.DataStoragePreference;
import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
import org.apache.airavata.model.application.io.InputDataObjectType;
import org.apache.airavata.model.application.io.OutputDataObjectType;
@@ -3366,6 +3367,32 @@ public class AiravataServerHandler implements Airavata.Iface {
}
}
+ @Override
+ public boolean addGatewayDataStoragePreference(AuthzToken authzToken, String gatewayID, String dataMoveId, DataStoragePreference dataStoragePreference) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+ try {
+ if (!isGatewayExistInternal(gatewayID)){
+ logger.error("Gateway does not exist.Please provide a valid gateway id...");
+ throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+ }
+ appCatalog = RegistryFactory.getAppCatalog();
+ GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
+ if (!gatewayProfile.isGatewayResourceProfileExists(gatewayID)){
+ throw new AppCatalogException("Gateway resource profile '"+gatewayID+"' does not exist!!!");
+ }
+ GatewayResourceProfile profile = gatewayProfile.getGatewayProfile(gatewayID);
+// gatewayProfile.removeGatewayResourceProfile(gatewayID);
+ profile.addToDataStoragePreferences(dataStoragePreference);
+ gatewayProfile.updateGatewayResourceProfile(gatewayID, profile);
+ return true;
+ } catch (AppCatalogException e) {
+ logger.error(gatewayID, "Error while registering gateway resource profile preference...", e);
+ AiravataSystemException exception = new AiravataSystemException();
+ exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+ exception.setMessage("Error while registering gateway resource profile preference. More info : " + e.getMessage());
+ throw exception;
+ }
+ }
+
/**
* Fetch a Compute Resource Preference of a registered gateway profile.
*
@@ -3410,6 +3437,34 @@ public class AiravataServerHandler implements Airavata.Iface {
}
}
+ @Override
+ public DataStoragePreference getGatewayDataStoragePreference(AuthzToken authzToken, String gatewayID, String dataMoveId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+ try {
+ if (!isGatewayExistInternal(gatewayID)){
+ logger.error("Gateway does not exist.Please provide a valid gateway id...");
+ throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+ }
+ appCatalog = RegistryFactory.getAppCatalog();
+ GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
+ ComputeResource computeResource = appCatalog.getComputeResource();
+ if (!gatewayProfile.isGatewayResourceProfileExists(gatewayID)){
+ logger.error(gatewayID, "Given gateway profile does not exist in the system. Please provide a valid gateway id...");
+ AiravataSystemException exception = new AiravataSystemException();
+ exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+ exception.setMessage("Given gateway profile does not exist in the system. Please provide a valid gateway id...");
+ throw exception;
+ }
+
+ return gatewayProfile.getDataStoragePreference(gatewayID, dataMoveId);
+ } catch (AppCatalogException e) {
+ logger.error(gatewayID, "Error while reading gateway data storage preference...", e);
+ AiravataSystemException exception = new AiravataSystemException();
+ exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+ exception.setMessage("Error while reading gateway data storage preference. More info : " + e.getMessage());
+ throw exception;
+ }
+ }
+
/**
* Fetch all Compute Resource Preferences of a registered gateway profile.
*
@@ -3439,6 +3494,25 @@ public class AiravataServerHandler implements Airavata.Iface {
}
@Override
+ public List<DataStoragePreference> getAllGatewayDataStoragePreferences(AuthzToken authzToken, String gatewayID) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+ try {
+ if (!isGatewayExistInternal(gatewayID)){
+ logger.error("Gateway does not exist.Please provide a valid gateway id...");
+ throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+ }
+ appCatalog = RegistryFactory.getAppCatalog();
+ GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
+ return gatewayProfile.getGatewayProfile(gatewayID).getDataStoragePreferences();
+ } catch (AppCatalogException e) {
+ logger.error(gatewayID, "Error while reading gateway data storage preferences...", e);
+ AiravataSystemException exception = new AiravataSystemException();
+ exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+ exception.setMessage("Error while reading gateway data storage preferences. More info : " + e.getMessage());
+ throw exception;
+ }
+ }
+
+ @Override
@SecurityCheck
public List<GatewayResourceProfile> getAllGatewayComputeResources(AuthzToken authzToken) throws InvalidRequestException,
AiravataClientException, AiravataSystemException, AuthorizationException, TException {
@@ -3500,6 +3574,40 @@ public class AiravataServerHandler implements Airavata.Iface {
}
}
+ @Override
+ public boolean updateGatewayDataStoragePreference(AuthzToken authzToken, String gatewayID, String dataMoveId, DataStoragePreference dataStoragePreference) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+ try {
+ if (!isGatewayExistInternal(gatewayID)){
+ logger.error("Gateway does not exist.Please provide a valid gateway id...");
+ throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+ }
+ appCatalog = RegistryFactory.getAppCatalog();
+ GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
+ GatewayResourceProfile profile = gatewayProfile.getGatewayProfile(gatewayID);
+ List<DataStoragePreference> dataStoragePreferences = profile.getDataStoragePreferences();
+ DataStoragePreference preferenceToRemove = null;
+ for (DataStoragePreference preference : dataStoragePreferences) {
+ if (preference.getDataMovememtResourceId().equals(dataMoveId)){
+ preferenceToRemove=preference;
+ break;
+ }
+ }
+ if (preferenceToRemove!=null) {
+ profile.getDataStoragePreferences().remove(
+ preferenceToRemove);
+ }
+ profile.getDataStoragePreferences().add(dataStoragePreference);
+ gatewayProfile.updateGatewayResourceProfile(gatewayID, profile);
+ return true;
+ } catch (AppCatalogException e) {
+ logger.error(gatewayID, "Error while reading gateway data storage preference...", e);
+ AiravataSystemException exception = new AiravataSystemException();
+ exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+ exception.setMessage("Error while updating gateway data storage preference. More info : " + e.getMessage());
+ throw exception;
+ }
+ }
+
/**
* Delete the Compute Resource Preference of a registered gateway profile.
*
@@ -3530,6 +3638,25 @@ public class AiravataServerHandler implements Airavata.Iface {
}
@Override
+ public boolean deleteGatewayDataStoragePreference(AuthzToken authzToken, String gatewayID, String dataMoveId) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException {
+ try {
+ if (!isGatewayExistInternal(gatewayID)){
+ logger.error("Gateway does not exist.Please provide a valid gateway id...");
+ throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+ }
+ appCatalog = RegistryFactory.getAppCatalog();
+ GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
+ return gatewayProfile.removeDataStoragePreferenceFromGateway(gatewayID, dataMoveId);
+ } catch (AppCatalogException e) {
+ logger.error(gatewayID, "Error while reading gateway data storage preference...", e);
+ AiravataSystemException exception = new AiravataSystemException();
+ exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+ exception.setMessage("Error while updating gateway data storage preference. More info : " + e.getMessage());
+ throw exception;
+ }
+ }
+
+ @Override
@SecurityCheck
public List<String> getAllWorkflows(AuthzToken authzToken, String gatewayId) throws InvalidRequestException,
AiravataClientException, AiravataSystemException, AuthorizationException, TException {