adding data storage interface
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/4c0978b6 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/4c0978b6 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/4c0978b6 Branch: refs/heads/develop Commit: 4c0978b61d3ebdb9f6540d7f2c4268de61bf6473 Parents: 77841a4 Author: Chathuri Wimalasena <[email protected]> Authored: Mon Nov 23 10:58:05 2015 -0500 Committer: Chathuri Wimalasena <[email protected]> Committed: Mon Nov 23 10:58:05 2015 -0500 ---------------------------------------------------------------------- .../server/handler/AiravataServerHandler.java | 32 +- .../java/org/apache/airavata/api/Airavata.java | 1111 +++++++++++++----- .../main/resources/lib/airavata/Airavata.cpp | 440 ++++--- .../src/main/resources/lib/airavata/Airavata.h | 161 +-- .../lib/airavata/Airavata_server.skeleton.cpp | 17 +- .../airavata/compute_resource_model_types.cpp | 10 + .../lib/airavata/compute_resource_model_types.h | 9 + .../resources/lib/Airavata/API/Airavata.php | 244 ++-- .../Model/AppCatalog/ComputeResource/Types.php | 9 + .../lib/apache/airavata/api/Airavata-remote | 32 +- .../lib/apache/airavata/api/Airavata.py | 264 +++-- .../model/appcatalog/computeresource/ttypes.py | 14 + .../tools/RegisterOGCEUS3Application.java | 4 +- .../tools/RegisterSampleApplications.java | 2 +- .../client/tools/RegisterUS3Application.java | 4 +- .../org/apache/airavata/model/Workflow.java | 2 +- .../ApplicationDeploymentDescription.java | 2 +- .../appdeployment/ApplicationModule.java | 2 +- .../appcatalog/appdeployment/CommandObject.java | 2 +- .../appcatalog/appdeployment/SetEnvPaths.java | 2 +- .../ApplicationInterfaceDescription.java | 2 +- .../appcatalog/computeresource/BatchQueue.java | 2 +- .../computeresource/CloudJobSubmission.java | 2 +- .../ComputeResourceDescription.java | 2 +- .../appcatalog/computeresource/DMType.java | 62 + .../computeresource/DataMovementInterface.java | 2 +- .../computeresource/GlobusJobSubmission.java | 2 +- .../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 | 2 +- .../computeresource/UnicoreDataMovement.java | 2 +- .../computeresource/UnicoreJobSubmission.java | 2 +- .../ComputeResourcePreference.java | 2 +- .../gatewayprofile/GatewayResourceProfile.java | 2 +- .../gatewayprofile/StoragePreference.java | 2 +- .../StorageResourceDescription.java | 2 +- .../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 +- .../model/task/EnvironmentSetupTaskModel.java | 2 +- .../model/task/JobSubmissionTaskModel.java | 2 +- .../airavata/model/task/MonitorTaskModel.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 +- .../app/catalog/impl/ComputeResourceImpl.java | 28 +- .../app/catalog/impl/StorageResourceImpl.java | 2 +- .../util/AppCatalogThriftConversion.java | 7 + .../airavata/registry/cpi/ComputeResource.java | 4 +- .../ComputeResourceRegister.java | 2 +- .../airavata-api/airavata_api.thrift | 34 +- .../airavata-api/compute_resource_model.thrift | 5 + 98 files changed, 1780 insertions(+), 867 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/4c0978b6/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 cfb754c..75f7359 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 @@ -2954,7 +2954,7 @@ public class AiravataServerHandler implements Airavata.Iface { * Add a Local data moevement details to a compute resource * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces. * - * @param computeResourceId The identifier of the compute resource to which JobSubmission protocol to be added + * @param resourceId The identifier of the compute resource to which JobSubmission protocol to be added * @param priorityOrder Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero. * @param localDataMovement The LOCALDataMovement object to be added to the resource. * @return status @@ -2962,19 +2962,19 @@ public class AiravataServerHandler implements Airavata.Iface { */ @Override @SecurityCheck - public String addLocalDataMovementDetails(AuthzToken authzToken, String computeResourceId, int priorityOrder, + public String addLocalDataMovementDetails(AuthzToken authzToken, String resourceId, DMType dmType, int priorityOrder, LOCALDataMovement localDataMovement) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException { try { appCatalog = RegistryFactory.getAppCatalog(); ComputeResource computeResource = appCatalog.getComputeResource(); - return addDataMovementInterface(computeResource, computeResourceId, + return addDataMovementInterface(computeResource, resourceId,dmType, computeResource.addLocalDataMovement(localDataMovement), DataMovementProtocol.LOCAL, priorityOrder); } catch (AppCatalogException e) { - logger.error(computeResourceId, "Error while adding data movement interface to resource compute resource...", e); + logger.error(resourceId, "Error while adding data movement interface to resource resource...", e); AiravataSystemException exception = new AiravataSystemException(); exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR); - exception.setMessage("Error while adding data movement interface to resource compute resource. More info : " + e.getMessage()); + exception.setMessage("Error while adding data movement interface to resource. More info : " + e.getMessage()); throw exception; } } @@ -3023,21 +3023,21 @@ public class AiravataServerHandler implements Airavata.Iface { } private String addDataMovementInterface(ComputeResource computeResource, - String computeResourceId, String dataMovementInterfaceId, + String computeResourceId, DMType dmType, String dataMovementInterfaceId, DataMovementProtocol protocolType, int priorityOrder) throws AppCatalogException { DataMovementInterface dataMovementInterface = new DataMovementInterface(); dataMovementInterface.setDataMovementInterfaceId(dataMovementInterfaceId); dataMovementInterface.setPriorityOrder(priorityOrder); dataMovementInterface.setDataMovementProtocol(protocolType); - return computeResource.addDataMovementProtocol(computeResourceId,dataMovementInterface); + return computeResource.addDataMovementProtocol(computeResourceId, dmType, dataMovementInterface); } /** * Add a SCP data moevement details to a compute resource * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces. * - * @param computeResourceId The identifier of the compute resource to which JobSubmission protocol to be added + * @param resourceId The identifier of the compute resource to which JobSubmission protocol to be added * @param priorityOrder Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero. * @param scpDataMovement The SCPDataMovement object to be added to the resource. * @return status @@ -3045,15 +3045,15 @@ public class AiravataServerHandler implements Airavata.Iface { */ @Override @SecurityCheck - public String addSCPDataMovementDetails(AuthzToken authzToken, String computeResourceId, int priorityOrder, SCPDataMovement scpDataMovement) + public String addSCPDataMovementDetails(AuthzToken authzToken, String resourceId, DMType dmType, int priorityOrder, SCPDataMovement scpDataMovement) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException { try { appCatalog = RegistryFactory.getAppCatalog(); ComputeResource computeResource = appCatalog.getComputeResource(); - return addDataMovementInterface(computeResource, computeResourceId, + return addDataMovementInterface(computeResource, resourceId,dmType, computeResource.addScpDataMovement(scpDataMovement), DataMovementProtocol.SCP, priorityOrder); } catch (AppCatalogException e) { - logger.error(computeResourceId, "Error while adding data movement interface to resource compute resource...", e); + logger.error(resourceId, "Error while adding data movement interface to resource compute resource...", e); AiravataSystemException exception = new AiravataSystemException(); exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR); exception.setMessage("Error while adding data movement interface to resource compute resource. More info : " + e.getMessage()); @@ -3107,15 +3107,15 @@ public class AiravataServerHandler implements Airavata.Iface { @Override @SecurityCheck - public String addUnicoreDataMovementDetails(AuthzToken authzToken, String computeResourceId, int priorityOrder, UnicoreDataMovement unicoreDataMovement) + public String addUnicoreDataMovementDetails(AuthzToken authzToken, String resourceId, DMType dmType, int priorityOrder, UnicoreDataMovement unicoreDataMovement) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException { try { appCatalog = RegistryFactory.getAppCatalog(); ComputeResource computeResource = appCatalog.getComputeResource(); - return addDataMovementInterface(computeResource, computeResourceId, + return addDataMovementInterface(computeResource, resourceId,dmType, computeResource.addUnicoreDataMovement(unicoreDataMovement), DataMovementProtocol.UNICORE_STORAGE_SERVICE, priorityOrder); } catch (AppCatalogException e) { - logger.error(computeResourceId, "Error while adding data movement interface to resource compute resource...", e); + logger.error(resourceId, "Error while adding data movement interface to resource compute resource...", e); AiravataSystemException exception = new AiravataSystemException(); exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR); exception.setMessage("Error while adding data movement interface to resource compute resource. More info : " + e.getMessage()); @@ -3170,13 +3170,13 @@ public class AiravataServerHandler implements Airavata.Iface { */ @Override @SecurityCheck - public String addGridFTPDataMovementDetails(AuthzToken authzToken, String computeResourceId, int priorityOrder, + public String addGridFTPDataMovementDetails(AuthzToken authzToken, String computeResourceId, DMType dmType, int priorityOrder, GridFTPDataMovement gridFTPDataMovement) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException { try { appCatalog = RegistryFactory.getAppCatalog(); ComputeResource computeResource = appCatalog.getComputeResource(); - return addDataMovementInterface(computeResource, computeResourceId, + return addDataMovementInterface(computeResource, computeResourceId,dmType, computeResource.addGridFTPDataMovement(gridFTPDataMovement), DataMovementProtocol.GridFTP, priorityOrder); } catch (AppCatalogException e) { logger.error(computeResourceId, "Error while adding data movement interface to resource compute resource...", e);
