changes to the replicaLocation data model
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/36da4ee4 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/36da4ee4 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/36da4ee4 Branch: refs/heads/master Commit: 36da4ee4dac92bba6104d9bc9d89e22e1e837d96 Parents: 5d0bee5 Author: scnakandala <[email protected]> Authored: Wed Dec 16 15:14:17 2015 -0500 Committer: scnakandala <[email protected]> Committed: Wed Dec 16 15:14:17 2015 -0500 ---------------------------------------------------------------------- .../java/org/apache/airavata/api/Airavata.java | 501 ++++++++--- .../src/main/resources/lib/airavata/Airavata.h | 512 ++++++++--- .../lib/airavata/Airavata_server.skeleton.cpp | 499 ++++++++--- .../airavata/replica_catalog_models_types.cpp | 206 ++--- .../lib/airavata/replica_catalog_models_types.h | 54 +- .../resources/lib/Airavata/API/Airavata.php | 440 ++++++--- .../lib/Airavata/Model/Data/Resource/Types.php | 145 +-- .../lib/apache/airavata/api/Airavata.py | 884 ++++++++++++++----- .../airavata/model/data/resource/ttypes.py | 103 +-- .../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 +- .../computeresource/GlobusJobSubmission.java | 2 +- .../computeresource/JobSubmissionInterface.java | 2 +- .../computeresource/LOCALSubmission.java | 2 +- .../computeresource/ResourceJobManager.java | 2 +- .../computeresource/SSHJobSubmission.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 +- .../data/movement/DataMovementInterface.java | 2 +- .../data/movement/GridFTPDataMovement.java | 2 +- .../model/data/movement/LOCALDataMovement.java | 2 +- .../model/data/movement/SCPDataMovement.java | 2 +- .../data/movement/UnicoreDataMovement.java | 2 +- .../data/resource/DataReplicaLocationModel.java | 686 ++++---------- .../model/data/resource/DataResourceModel.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 +- .../data/catalog/core/DataManagerImplTest.java | 1 - .../data/catalog/model/DataReplicaLocation.java | 62 +- .../utils/ThriftDataModelConversion.java | 17 +- .../src/main/resources/datacatalog-derby.sql | 7 +- .../src/main/resources/datacatalog-mysql.sql | 7 +- .../airavata/data/catalog/DataCatalogTest.java | 1 - .../replica_catalog_models.thrift | 15 +- 93 files changed, 2648 insertions(+), 1644 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/36da4ee4/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java index 8b96b0d..b84b3ac 100644 --- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java +++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"}) -@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-15") +@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = "2015-12-16") public class Airavata { public interface Iface { @@ -89,6 +89,8 @@ public class Airavata { * @return gateway * Modified gateway obejct. * + * @exception AiravataClientException + * * * * @param authzToken @@ -137,6 +139,23 @@ public class Airavata { */ public List<org.apache.airavata.model.workspace.Gateway> getAllGateways(org.apache.airavata.model.security.AuthzToken authzToken) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Check for the Existance of a Gateway within Airavata + * + * @param gatewayId + * Provide the gatewayId of the gateway you want to check the existancy + * + * @return boolean + * Boolean idetifier for the existance or non-existane of the gatewayId + * + * @return gatewayId + * return the gatewayId of the existing gateway. + * + * + * + * @param authzToken + * @param gatewayId + */ public boolean isGatewayExist(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** @@ -216,6 +235,21 @@ public class Airavata { */ public Map<String,String> getAllGatewaySSHPubKeys(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException; + /** + * Delete a Gateway + * + * @param gatewayId + * The gateway Id of the Gateway to be deleted. + * + * @return boolean + * Boolean identifier for the success or failure of the deletion operation. + * + * + * + * @param authzToken + * @param airavataCredStoreToken + * @param gatewayId + */ public boolean deleteSSHPubKey(org.apache.airavata.model.security.AuthzToken authzToken, String airavataCredStoreToken, String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException; /** @@ -229,6 +263,7 @@ public class Airavata { * The Project Object described in the workspace_model * * + * * @param authzToken * @param gatewayId * @param project @@ -236,7 +271,14 @@ public class Airavata { public String createProject(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.airavata.model.workspace.Project project) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** - * Update a Project + * Update an Existing Project + * + * @param projectId + * The projectId of the project needed an update. + * + * @return void + * Currently this does not return any value. + * * * * @param authzToken @@ -247,6 +289,14 @@ public class Airavata { /** * Get a Project by ID + * This method is to obtain a project by providing a projectId + * + * @param projectId + * projectId of the project you require + * + * @return project + * project data model will be returned + * * * * @param authzToken @@ -254,21 +304,40 @@ public class Airavata { */ public org.apache.airavata.model.workspace.Project getProject(org.apache.airavata.model.security.AuthzToken authzToken, String projectId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.ProjectNotFoundException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Delete a Project + * This method is used to delete an existing Project + * + * @param projectId + * projectId of the project you want to delete + * + * @return boolean + * Boolean identifier for the success or failure of the deletion operation. + * + * + * + * @param authzToken + * @param projectId + */ public boolean deleteProject(org.apache.airavata.model.security.AuthzToken authzToken, String projectId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.ProjectNotFoundException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** - * * Get all Project by user with pagination. Results will be ordered based - * * on creation time DESC - * * - * * @param gatewayId - * * The identifier for the requested gateway. - * * @param userName - * * The identifier of the user - * * @param limit - * * The amount results to be fetched - * * @param offset - * * The starting point of the results to be fetched - * * + * Get all Project by user with pagination. Results will be ordered based + * on creation time DESC + * + * @param gatewayId + * The identifier for the requested gateway. + * + * @param userName + * The identifier of the user + * + * @param limit + * The amount results to be fetched + * + * @param offset + * The starting point of the results to be fetched + * + * * * @param authzToken * @param gatewayId @@ -293,6 +362,7 @@ public class Airavata { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -317,6 +387,7 @@ public class Airavata { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -341,6 +412,7 @@ public class Airavata { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -365,6 +437,7 @@ public class Airavata { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -389,6 +462,7 @@ public class Airavata { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -413,6 +487,7 @@ public class Airavata { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -439,6 +514,7 @@ public class Airavata { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -464,6 +540,7 @@ public class Airavata { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -501,6 +578,7 @@ public class Airavata { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param projectId * @param limit @@ -521,6 +599,7 @@ public class Airavata { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -530,39 +609,40 @@ public class Airavata { public List<org.apache.airavata.model.experiment.ExperimentModel> getUserExperiments(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, String userName, int limit, int offset) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** - * Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed - * but inferred from the sshKeyAuthentication header. This experiment is just a persistent place holder. The client - * has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except - * registering the experiment in a persistent store. - * - * @param basicExperimentMetadata - * The create experiment will require the basic experiment metadata like the name and description, intended user, - * the gateway identifer and if the experiment should be shared public by defualt. During the creation of an experiment - * the ExperimentMetadata is a required field. - * - * @return - * The server-side generated.airavata.registry.core.experiment.globally unique identifier. - * - * @throws org.apache.airavata.model.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.model.error.AiravataClientException - * The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve: - * - * UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative - * step, then Airavata Registry will not have a provenance area setup. The client has to follow - * gateway registration steps and retry this request. - * - * AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined. - * For now this is a place holder. - * - * INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake - * is implemented, the authorization will be more substantial. - * - * @throws org.apache.airavata.model.error.AiravataSystemException - * This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client - * rather an Airavata Administrator will be notified to take corrective action. - * + * * Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed + * * but inferred from the sshKeyAuthentication header. This experiment is just a persistent place holder. The client + * * has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except + * * registering the experiment in a persistent store. + * * + * * @param basicExperimentMetadata + * * The create experiment will require the basic experiment metadata like the name and description, intended user, + * * the gateway identifer and if the experiment should be shared public by defualt. During the creation of an experiment + * * the ExperimentMetadata is a required field. + * * + * * @return + * * The server-side generated.airavata.registry.core.experiment.globally unique identifier. + * * + * * @throws org.apache.airavata.model.error.InvalidRequestException + * * For any incorrect forming of the request itself. + * * + * * @throws org.apache.airavata.model.error.AiravataClientException + * * The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve: + * * + * * UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative + * * step, then Airavata Registry will not have a provenance area setup. The client has to follow + * * gateway registration steps and retry this request. + * * + * * AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined. + * * For now this is a place holder. + * * + * * INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake + * * is implemented, the authorization will be more substantial. + * * + * * @throws org.apache.airavata.model.error.AiravataSystemException + * * This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client + * * rather an Airavata Administrator will be notified to take corrective action. + * * + * * * * @param authzToken * @param gatewayId @@ -571,12 +651,18 @@ public class Airavata { public String createExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String gatewayId, org.apache.airavata.model.experiment.ExperimentModel experiment) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** + * Delete an Experiment + * * If the experiment is not already launched experiment can be deleted. * * @param authzToken + * * @param experiementId + * Experiment ID of the experimnet you want to delete. + * + * @return boolean + * Identifier for the success or failure of the deletion operation * - * @return boolean identifier for the success or failure of the deletion operation * * * @param authzToken @@ -585,37 +671,38 @@ public class Airavata { public boolean deleteExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String experimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** - * Fetch previously created experiment metadata. - * - * @param airavataExperimentId - * The identifier for the requested experiment. This is returned during the create experiment step. - * - * @return experimentMetada - * This method will return the previously stored experiment metadata. - * - * @throws org.apache.airavata.model.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.model.error.ExperimentNotFoundException - * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown. - * - * @throws org.apache.airavata.model.error.AiravataClientException - * The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve: - * - * UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative - * step, then Airavata Registry will not have a provenance area setup. The client has to follow - * gateway registration steps and retry this request. - * - * AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined. - * For now this is a place holder. - * - * INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake - * is implemented, the authorization will be more substantial. - * - * @throws org.apache.airavata.model.error.AiravataSystemException - * This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client - * rather an Airavata Administrator will be notified to take corrective action. - * + * * Fetch previously created experiment metadata. + * * + * * @param airavataExperimentId + * * The identifier for the requested experiment. This is returned during the create experiment step. + * * + * * @return experimentMetada + * * This method will return the previously stored experiment metadata. + * * + * * @throws org.apache.airavata.model.error.InvalidRequestException + * * For any incorrect forming of the request itself. + * * + * * @throws org.apache.airavata.model.error.ExperimentNotFoundException + * * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown. + * * + * * @throws org.apache.airavata.model.error.AiravataClientException + * * The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve: + * * + * * UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative + * * step, then Airavata Registry will not have a provenance area setup. The client has to follow + * * gateway registration steps and retry this request. + * * + * * AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined. + * * For now this is a place holder. + * * + * * INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake + * * is implemented, the authorization will be more substantial. + * * + * * @throws org.apache.airavata.model.error.AiravataSystemException + * * This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client + * * rather an Airavata Administrator will be notified to take corrective action. + * * + * * * * @param authzToken * @param airavataExperimentId @@ -714,8 +801,11 @@ public class Airavata { * * * * Validate experiment configuration. A true in general indicates, the experiment is ready to be launched. * * - * * @param experimentID - * * @return sucess/failure + * * @param experimentId + * * + * * + * * @return boolean + * * Identifier for the success or failure of the validation operation * * * * * @@ -764,14 +854,100 @@ public class Airavata { */ public void launchExperiment(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId, String gatewayId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Get Experiment Status + * + * Obtain the status os an experiment by providing the Experiment Id + * + * @param authzToken + * + * @param experiementId + * Experiment ID of the experimnet you require the status + * + * @return ExperimentStatus + * ExperimentStatus model with current status will be returned. + * + * + * + * @param authzToken + * @param airavataExperimentId + */ public org.apache.airavata.model.status.ExperimentStatus getExperimentStatus(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Get Experiment Outputs + * This method to be used when need to obtain outputs of a certain Experiment + * + * @param authzToken + * + * @param experiementId + * Experiment ID of the experimnet you need the outputs + * + * @return list + * List of experiment outputs will be returned. They will be returned as a list of OutputDataObjectType for the experiment + * + * + * + * @param authzToken + * @param airavataExperimentId + */ public List<org.apache.airavata.model.application.io.OutputDataObjectType> getExperimentOutputs(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Get Intermediate Experiment Outputs + * This method to be used when need to obtain intermediate outputs of a certain Experiment + * + * @param authzToken + * + * @param experiementId + * Experiment ID of the experimnet you need the intermediate outputs + * + * @return list + * List of intermediate experiment outputs will be returned. They will be returned as a list of OutputDataObjectType for the experiment + * + * + * + * @param authzToken + * @param airavataExperimentId + */ public List<org.apache.airavata.model.application.io.OutputDataObjectType> getIntermediateOutputs(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Get Job Status for an Experiment + * This method to be used when need to get the job status of an Experiment. An experiment may have one or many jobs; there for one or many job statuses may turnup + * + * @param authzToken + * + * @param experiementId + * Experiment ID of the experimnet you need the intermediate outputs + * + * @return JobStatus + * Job status (string) for all all the existing jobs for the experiment will be returned in the form of a map + * + * + * + * @param authzToken + * @param airavataExperimentId + */ public Map<String,org.apache.airavata.model.status.JobStatus> getJobStatuses(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Get Job Details for all the jobs within an Experiment + * This method to be used when need to get the job details for one or many jobs of an Experiment. + * + * @param authzToken + * + * @param experiementId + * Experiment ID of the experimnet you need job details + * + * @return list of JobDetails + * Job details + * + * + * + * @param authzToken + * @param airavataExperimentId + */ public List<org.apache.airavata.model.job.JobModel> getJobDetails(org.apache.airavata.model.security.AuthzToken authzToken, String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** @@ -1504,7 +1680,7 @@ public class Airavata { * The SSHJobSubmission object to be updated. * * @return status - * Returns a success/failure of the deletion. + * Returns a success/failure of the update. * * * @param authzToken @@ -1523,7 +1699,7 @@ public class Airavata { * The CloudJobSubmission object to be updated. * * @return status - * Returns a success/failure of the deletion. + * Returns a success/failure of the update. * * * @param authzToken @@ -1532,15 +1708,36 @@ public class Airavata { */ public boolean updateCloudJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission sshJobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Update the UNIOCRE Job Submission details + * + * @param jobSubmissionInterfaceId + * The identifier of the JobSubmission Interface to be updated. + * + * @param UnicoreJobSubmission + * The UnicoreJobSubmission object to be updated. + * + * @return status + * Returns a success/failure of the update. + * + * + * + * @param authzToken + * @param jobSubmissionInterfaceId + * @param unicoreJobSubmission + */ public boolean updateUnicoreJobSubmissionDetails(org.apache.airavata.model.security.AuthzToken authzToken, String jobSubmissionInterfaceId, org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission unicoreJobSubmission) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** * Add a Local data movement details to a compute resource * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces. * - * @param computeResourceId + * @param resourceId * The identifier of the compute resource to which JobSubmission protocol to be added * + * @param DMType + * DMType object to be added to the resource. + * * @param priorityOrder * Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero. * @@ -1551,6 +1748,7 @@ public class Airavata { * Returns the unique job submission id. * * + * * @param authzToken * @param resourceId * @param dataMoveType @@ -1572,6 +1770,7 @@ public class Airavata { * Returns a success/failure of the update. * * + * * @param authzToken * @param dataMovementInterfaceId * @param localDataMovement @@ -1579,11 +1778,14 @@ public class Airavata { public boolean updateLocalDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementInterfaceId, org.apache.airavata.model.data.movement.LOCALDataMovement localDataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** - * * This method returns local datamovement object - * * @param dataMovementId - * * The identifier of the datamovement Interface to be retrieved. - * * @return LOCALDataMovement instance - * * + * This method returns local datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return LOCALDataMovement instance + * + * * * @param authzToken * @param dataMovementId @@ -1594,7 +1796,7 @@ public class Airavata { * Add a SCP data movement details to a compute resource * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces. * - * @param computeResourceId + * @param resourceId * The identifier of the compute resource to which JobSubmission protocol to be added * * @param priorityOrder @@ -1636,29 +1838,90 @@ public class Airavata { public boolean updateSCPDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementInterfaceId, org.apache.airavata.model.data.movement.SCPDataMovement scpDataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** - * * This method returns SCP datamovement object - * * @param dataMovementId - * * The identifier of the datamovement Interface to be retrieved. - * * @return SCPDataMovement instance - * * + * This method returns SCP datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return SCPDataMovement instance + * + * * * @param authzToken * @param dataMovementId */ public org.apache.airavata.model.data.movement.SCPDataMovement getSCPDataMovement(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Add a UNICORE data movement details to a compute resource + * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces. + * + * @param resourceId + * The identifier of the compute resource to which data movement 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 UnicoreDataMovement + * The UnicoreDataMovement object to be added to the resource. + * + * @return status + * Returns the unique data movement id. + * + * + * @param authzToken + * @param resourceId + * @param dataMoveType + * @param priorityOrder + * @param unicoreDataMovement + */ public String addUnicoreDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String resourceId, org.apache.airavata.model.data.movement.DMType dataMoveType, int priorityOrder, org.apache.airavata.model.data.movement.UnicoreDataMovement unicoreDataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Update a selected UNICORE data movement details + * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces. + * + * @param dataMovementInterfaceId + * The identifier of the data movement Interface to be updated. + * + * @param UnicoreDataMovement + * The UnicoreDataMovement object to be updated. + * + * @return status + * Returns a success/failure of the update. + * + * + * + * @param authzToken + * @param dataMovementInterfaceId + * @param unicoreDataMovement + */ public boolean updateUnicoreDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementInterfaceId, org.apache.airavata.model.data.movement.UnicoreDataMovement unicoreDataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * This method returns UNICORE datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return UnicoreDataMovement instance + * + * + * + * @param authzToken + * @param dataMovementId + */ public org.apache.airavata.model.data.movement.UnicoreDataMovement getUnicoreDataMovement(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** * Add a GridFTP data movement 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 dataMovement protocol to be added + * + * @param DMType + * The DMType object to be added to the resource. * * @param priorityOrder * Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero. @@ -1667,7 +1930,8 @@ public class Airavata { * The GridFTPDataMovement object to be added to the resource. * * @return status - * Returns the unique job submission id. + * Returns the unique data movement id. + * * * * @param authzToken @@ -1688,8 +1952,9 @@ public class Airavata { * @param gridFTPDataMovement * The GridFTPDataMovement object to be updated. * - * @return status - * Returns a success/failure of the updation. + * @return boolean + * Returns a success/failure of the update. + * * * * @param authzToken @@ -1699,11 +1964,14 @@ public class Airavata { public boolean updateGridFTPDataMovementDetails(org.apache.airavata.model.security.AuthzToken authzToken, String dataMovementInterfaceId, org.apache.airavata.model.data.movement.GridFTPDataMovement gridFTPDataMovement) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** - * * This method returns GridFTP datamovement object - * * @param dataMovementId - * * The identifier of the datamovement Interface to be retrieved. - * * @return GridFTPDataMovement instance - * * + * This method returns GridFTP datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return GridFTPDataMovement instance + * + * * * @param authzToken * @param dataMovementId @@ -1723,6 +1991,7 @@ public class Airavata { * Returns a success/failure of the change. * * + * * @param authzToken * @param jobSubmissionInterfaceId * @param newPriorityOrder @@ -1742,6 +2011,7 @@ public class Airavata { * Returns a success/failure of the change. * * + * * @param authzToken * @param dataMovementInterfaceId * @param newPriorityOrder @@ -1773,6 +2043,7 @@ public class Airavata { * Returns a success/failure of the changes. * * + * * @param authzToken * @param dataMovementPriorityMap */ @@ -1788,6 +2059,7 @@ public class Airavata { * Returns a success/failure of the deletion. * * + * * @param authzToken * @param computeResourceId * @param jobSubmissionInterfaceId @@ -1804,6 +2076,7 @@ public class Airavata { * Returns a success/failure of the deletion. * * + * * @param authzToken * @param computeResourceId * @param dataMovementInterfaceId @@ -1818,6 +2091,24 @@ public class Airavata { public boolean deleteResourceJobManager(org.apache.airavata.model.security.AuthzToken authzToken, String resourceJobManagerId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; + /** + * Delete a Compute Resource Queue + * + * @param computeResourceId + * The identifier of the compute resource which has the queue to be deleted + * + * @param queueName + * Name of the queue need to be deleted. Name is the uniqueue identifier for the queue within a compute resource + * + * @return status + * Returns a success/failure of the deletion. + * + * + * + * @param authzToken + * @param computeResourceId + * @param queueName + */ public boolean deleteBatchQueue(org.apache.airavata.model.security.AuthzToken authzToken, String computeResourceId, String queueName) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.airavata.model.error.AuthorizationException, org.apache.thrift.TException; /** http://git-wip-us.apache.org/repos/asf/airavata/blob/36da4ee4/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h index 1c12117..9d9df84 100644 --- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h +++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h @@ -72,6 +72,8 @@ class AiravataIf { * @return gateway * Modified gateway obejct. * + * @exception AiravataClientException + * * * * @param authzToken @@ -119,6 +121,24 @@ class AiravataIf { * @param authzToken */ virtual void getAllGateways(std::vector< ::apache::airavata::model::workspace::Gateway> & _return, const ::apache::airavata::model::security::AuthzToken& authzToken) = 0; + + /** + * Check for the Existance of a Gateway within Airavata + * + * @param gatewayId + * Provide the gatewayId of the gateway you want to check the existancy + * + * @return boolean + * Boolean idetifier for the existance or non-existane of the gatewayId + * + * @return gatewayId + * return the gatewayId of the existing gateway. + * + * + * + * @param authzToken + * @param gatewayId + */ virtual bool isGatewayExist(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) = 0; /** @@ -197,6 +217,22 @@ class AiravataIf { * @param gatewayId */ virtual void getAllGatewaySSHPubKeys(std::map<std::string, std::string> & _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId) = 0; + + /** + * Delete a Gateway + * + * @param gatewayId + * The gateway Id of the Gateway to be deleted. + * + * @return boolean + * Boolean identifier for the success or failure of the deletion operation. + * + * + * + * @param authzToken + * @param airavataCredStoreToken + * @param gatewayId + */ virtual bool deleteSSHPubKey(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataCredStoreToken, const std::string& gatewayId) = 0; /** @@ -210,6 +246,7 @@ class AiravataIf { * The Project Object described in the workspace_model * * + * * @param authzToken * @param gatewayId * @param project @@ -217,7 +254,14 @@ class AiravataIf { virtual void createProject(std::string& _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const ::apache::airavata::model::workspace::Project& project) = 0; /** - * Update a Project + * Update an Existing Project + * + * @param projectId + * The projectId of the project needed an update. + * + * @return void + * Currently this does not return any value. + * * * * @param authzToken @@ -228,27 +272,55 @@ class AiravataIf { /** * Get a Project by ID + * This method is to obtain a project by providing a projectId + * + * @param projectId + * projectId of the project you require + * + * @return project + * project data model will be returned + * * * * @param authzToken * @param projectId */ virtual void getProject( ::apache::airavata::model::workspace::Project& _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId) = 0; + + /** + * Delete a Project + * This method is used to delete an existing Project + * + * @param projectId + * projectId of the project you want to delete + * + * @return boolean + * Boolean identifier for the success or failure of the deletion operation. + * + * + * + * @param authzToken + * @param projectId + */ virtual bool deleteProject(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& projectId) = 0; /** - * * Get all Project by user with pagination. Results will be ordered based - * * on creation time DESC - * * - * * @param gatewayId - * * The identifier for the requested gateway. - * * @param userName - * * The identifier of the user - * * @param limit - * * The amount results to be fetched - * * @param offset - * * The starting point of the results to be fetched - * * + * Get all Project by user with pagination. Results will be ordered based + * on creation time DESC + * + * @param gatewayId + * The identifier for the requested gateway. + * + * @param userName + * The identifier of the user + * + * @param limit + * The amount results to be fetched + * + * @param offset + * The starting point of the results to be fetched + * + * * * @param authzToken * @param gatewayId @@ -273,6 +345,7 @@ class AiravataIf { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -297,6 +370,7 @@ class AiravataIf { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -321,6 +395,7 @@ class AiravataIf { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -345,6 +420,7 @@ class AiravataIf { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -369,6 +445,7 @@ class AiravataIf { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -393,6 +470,7 @@ class AiravataIf { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -419,6 +497,7 @@ class AiravataIf { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -444,6 +523,7 @@ class AiravataIf { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -481,6 +561,7 @@ class AiravataIf { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param projectId * @param limit @@ -501,6 +582,7 @@ class AiravataIf { * @param offset * The starting point of the results to be fetched * + * * @param authzToken * @param gatewayId * @param userName @@ -510,39 +592,40 @@ class AiravataIf { virtual void getUserExperiments(std::vector< ::apache::airavata::model::experiment::ExperimentModel> & _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const std::string& userName, const int32_t limit, const int32_t offset) = 0; /** - * Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed - * but inferred from the sshKeyAuthentication header. This experiment is just a persistent place holder. The client - * has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except - * registering the experiment in a persistent store. - * - * @param basicExperimentMetadata - * The create experiment will require the basic experiment metadata like the name and description, intended user, - * the gateway identifer and if the experiment should be shared public by defualt. During the creation of an experiment - * the ExperimentMetadata is a required field. - * - * @return - * The server-side generated.airavata.registry.core.experiment.globally unique identifier. - * - * @throws org.apache.airavata.model.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.model.error.AiravataClientException - * The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve: - * - * UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative - * step, then Airavata Registry will not have a provenance area setup. The client has to follow - * gateway registration steps and retry this request. - * - * AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined. - * For now this is a place holder. - * - * INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake - * is implemented, the authorization will be more substantial. - * - * @throws org.apache.airavata.model.error.AiravataSystemException - * This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client - * rather an Airavata Administrator will be notified to take corrective action. - * + * * Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed + * * but inferred from the sshKeyAuthentication header. This experiment is just a persistent place holder. The client + * * has to subsequently configure and launch the created experiment. No action is taken on Airavata Server except + * * registering the experiment in a persistent store. + * * + * * @param basicExperimentMetadata + * * The create experiment will require the basic experiment metadata like the name and description, intended user, + * * the gateway identifer and if the experiment should be shared public by defualt. During the creation of an experiment + * * the ExperimentMetadata is a required field. + * * + * * @return + * * The server-side generated.airavata.registry.core.experiment.globally unique identifier. + * * + * * @throws org.apache.airavata.model.error.InvalidRequestException + * * For any incorrect forming of the request itself. + * * + * * @throws org.apache.airavata.model.error.AiravataClientException + * * The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve: + * * + * * UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative + * * step, then Airavata Registry will not have a provenance area setup. The client has to follow + * * gateway registration steps and retry this request. + * * + * * AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined. + * * For now this is a place holder. + * * + * * INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake + * * is implemented, the authorization will be more substantial. + * * + * * @throws org.apache.airavata.model.error.AiravataSystemException + * * This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client + * * rather an Airavata Administrator will be notified to take corrective action. + * * + * * * * @param authzToken * @param gatewayId @@ -551,12 +634,18 @@ class AiravataIf { virtual void createExperiment(std::string& _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const ::apache::airavata::model::experiment::ExperimentModel& experiment) = 0; /** + * Delete an Experiment + * * If the experiment is not already launched experiment can be deleted. * * @param authzToken + * * @param experiementId + * Experiment ID of the experimnet you want to delete. + * + * @return boolean + * Identifier for the success or failure of the deletion operation * - * @return boolean identifier for the success or failure of the deletion operation * * * @param authzToken @@ -565,37 +654,38 @@ class AiravataIf { virtual bool deleteExperiment(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& experimentId) = 0; /** - * Fetch previously created experiment metadata. - * - * @param airavataExperimentId - * The identifier for the requested experiment. This is returned during the create experiment step. - * - * @return experimentMetada - * This method will return the previously stored experiment metadata. - * - * @throws org.apache.airavata.model.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.model.error.ExperimentNotFoundException - * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown. - * - * @throws org.apache.airavata.model.error.AiravataClientException - * The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve: - * - * UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative - * step, then Airavata Registry will not have a provenance area setup. The client has to follow - * gateway registration steps and retry this request. - * - * AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined. - * For now this is a place holder. - * - * INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake - * is implemented, the authorization will be more substantial. - * - * @throws org.apache.airavata.model.error.AiravataSystemException - * This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client - * rather an Airavata Administrator will be notified to take corrective action. - * + * * Fetch previously created experiment metadata. + * * + * * @param airavataExperimentId + * * The identifier for the requested experiment. This is returned during the create experiment step. + * * + * * @return experimentMetada + * * This method will return the previously stored experiment metadata. + * * + * * @throws org.apache.airavata.model.error.InvalidRequestException + * * For any incorrect forming of the request itself. + * * + * * @throws org.apache.airavata.model.error.ExperimentNotFoundException + * * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown. + * * + * * @throws org.apache.airavata.model.error.AiravataClientException + * * The following list of exceptions are thrown which Airavata Client can take corrective actions to resolve: + * * + * * UNKNOWN_GATEWAY_ID - If a Gateway is not registered with Airavata as a one time administrative + * * step, then Airavata Registry will not have a provenance area setup. The client has to follow + * * gateway registration steps and retry this request. + * * + * * AUTHENTICATION_FAILURE - How Authentication will be implemented is yet to be determined. + * * For now this is a place holder. + * * + * * INVALID_AUTHORIZATION - This will throw an authorization exception. When a more robust security hand-shake + * * is implemented, the authorization will be more substantial. + * * + * * @throws org.apache.airavata.model.error.AiravataSystemException + * * This exception will be thrown for any Airavata Server side issues and if the problem cannot be corrected by the client + * * rather an Airavata Administrator will be notified to take corrective action. + * * + * * * * @param authzToken * @param airavataExperimentId @@ -692,8 +782,11 @@ class AiravataIf { * * * * Validate experiment configuration. A true in general indicates, the experiment is ready to be launched. * * - * * @param experimentID - * * @return sucess/failure + * * @param experimentId + * * + * * + * * @return boolean + * * Identifier for the success or failure of the validation operation * * * * * @@ -741,10 +834,101 @@ class AiravataIf { * @param gatewayId */ virtual void launchExperiment(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId, const std::string& gatewayId) = 0; + + /** + * Get Experiment Status + * + * Obtain the status os an experiment by providing the Experiment Id + * + * @param authzToken + * + * @param experiementId + * Experiment ID of the experimnet you require the status + * + * @return ExperimentStatus + * ExperimentStatus model with current status will be returned. + * + * + * + * @param authzToken + * @param airavataExperimentId + */ virtual void getExperimentStatus( ::apache::airavata::model::status::ExperimentStatus& _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId) = 0; + + /** + * Get Experiment Outputs + * This method to be used when need to obtain outputs of a certain Experiment + * + * @param authzToken + * + * @param experiementId + * Experiment ID of the experimnet you need the outputs + * + * @return list + * List of experiment outputs will be returned. They will be returned as a list of OutputDataObjectType for the experiment + * + * + * + * @param authzToken + * @param airavataExperimentId + */ virtual void getExperimentOutputs(std::vector< ::apache::airavata::model::application::io::OutputDataObjectType> & _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId) = 0; + + /** + * Get Intermediate Experiment Outputs + * This method to be used when need to obtain intermediate outputs of a certain Experiment + * + * @param authzToken + * + * @param experiementId + * Experiment ID of the experimnet you need the intermediate outputs + * + * @return list + * List of intermediate experiment outputs will be returned. They will be returned as a list of OutputDataObjectType for the experiment + * + * + * + * @param authzToken + * @param airavataExperimentId + */ virtual void getIntermediateOutputs(std::vector< ::apache::airavata::model::application::io::OutputDataObjectType> & _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId) = 0; + + /** + * Get Job Status for an Experiment + * This method to be used when need to get the job status of an Experiment. An experiment may have one or many jobs; there for one or many job statuses may turnup + * + * @param authzToken + * + * @param experiementId + * Experiment ID of the experimnet you need the intermediate outputs + * + * @return JobStatus + * Job status (string) for all all the existing jobs for the experiment will be returned in the form of a map + * + * + * + * @param authzToken + * @param airavataExperimentId + */ virtual void getJobStatuses(std::map<std::string, ::apache::airavata::model::status::JobStatus> & _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId) = 0; + + /** + * Get Job Details for all the jobs within an Experiment + * This method to be used when need to get the job details for one or many jobs of an Experiment. + * + * @param authzToken + * + * @param experiementId + * Experiment ID of the experimnet you need job details + * + * @return list of JobDetails + * Job details + * + * + * + * @param authzToken + * @param airavataExperimentId + */ virtual void getJobDetails(std::vector< ::apache::airavata::model::job::JobModel> & _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& airavataExperimentId) = 0; /** @@ -1476,7 +1660,7 @@ class AiravataIf { * The SSHJobSubmission object to be updated. * * @return status - * Returns a success/failure of the deletion. + * Returns a success/failure of the update. * * * @param authzToken @@ -1495,7 +1679,7 @@ class AiravataIf { * The CloudJobSubmission object to be updated. * * @return status - * Returns a success/failure of the deletion. + * Returns a success/failure of the update. * * * @param authzToken @@ -1503,15 +1687,37 @@ class AiravataIf { * @param sshJobSubmission */ virtual bool updateCloudJobSubmissionDetails(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& jobSubmissionInterfaceId, const ::apache::airavata::model::appcatalog::computeresource::CloudJobSubmission& sshJobSubmission) = 0; + + /** + * Update the UNIOCRE Job Submission details + * + * @param jobSubmissionInterfaceId + * The identifier of the JobSubmission Interface to be updated. + * + * @param UnicoreJobSubmission + * The UnicoreJobSubmission object to be updated. + * + * @return status + * Returns a success/failure of the update. + * + * + * + * @param authzToken + * @param jobSubmissionInterfaceId + * @param unicoreJobSubmission + */ virtual bool updateUnicoreJobSubmissionDetails(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& jobSubmissionInterfaceId, const ::apache::airavata::model::appcatalog::computeresource::UnicoreJobSubmission& unicoreJobSubmission) = 0; /** * Add a Local data movement details to a compute resource * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces. * - * @param computeResourceId + * @param resourceId * The identifier of the compute resource to which JobSubmission protocol to be added * + * @param DMType + * DMType object to be added to the resource. + * * @param priorityOrder * Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero. * @@ -1522,6 +1728,7 @@ class AiravataIf { * Returns the unique job submission id. * * + * * @param authzToken * @param resourceId * @param dataMoveType @@ -1543,6 +1750,7 @@ class AiravataIf { * Returns a success/failure of the update. * * + * * @param authzToken * @param dataMovementInterfaceId * @param localDataMovement @@ -1550,11 +1758,14 @@ class AiravataIf { virtual bool updateLocalDataMovementDetails(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataMovementInterfaceId, const ::apache::airavata::model::data::movement::LOCALDataMovement& localDataMovement) = 0; /** - * * This method returns local datamovement object - * * @param dataMovementId - * * The identifier of the datamovement Interface to be retrieved. - * * @return LOCALDataMovement instance - * * + * This method returns local datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return LOCALDataMovement instance + * + * * * @param authzToken * @param dataMovementId @@ -1565,7 +1776,7 @@ class AiravataIf { * Add a SCP data movement details to a compute resource * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces. * - * @param computeResourceId + * @param resourceId * The identifier of the compute resource to which JobSubmission protocol to be added * * @param priorityOrder @@ -1607,26 +1818,90 @@ class AiravataIf { virtual bool updateSCPDataMovementDetails(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataMovementInterfaceId, const ::apache::airavata::model::data::movement::SCPDataMovement& scpDataMovement) = 0; /** - * * This method returns SCP datamovement object - * * @param dataMovementId - * * The identifier of the datamovement Interface to be retrieved. - * * @return SCPDataMovement instance - * * + * This method returns SCP datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return SCPDataMovement instance + * + * * * @param authzToken * @param dataMovementId */ virtual void getSCPDataMovement( ::apache::airavata::model::data::movement::SCPDataMovement& _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataMovementId) = 0; + + /** + * Add a UNICORE data movement details to a compute resource + * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces. + * + * @param resourceId + * The identifier of the compute resource to which data movement 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 UnicoreDataMovement + * The UnicoreDataMovement object to be added to the resource. + * + * @return status + * Returns the unique data movement id. + * + * + * @param authzToken + * @param resourceId + * @param dataMoveType + * @param priorityOrder + * @param unicoreDataMovement + */ virtual void addUnicoreDataMovementDetails(std::string& _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& resourceId, const ::apache::airavata::model::data::movement::DMType::type dataMoveType, const int32_t priorityOrder, const ::apache::airavata::model::data::movement::UnicoreDataMovement& unicoreDataMovement) = 0; + + /** + * Update a selected UNICORE data movement details + * App catalog will return a dataMovementInterfaceId which will be added to the dataMovementInterfaces. + * + * @param dataMovementInterfaceId + * The identifier of the data movement Interface to be updated. + * + * @param UnicoreDataMovement + * The UnicoreDataMovement object to be updated. + * + * @return status + * Returns a success/failure of the update. + * + * + * + * @param authzToken + * @param dataMovementInterfaceId + * @param unicoreDataMovement + */ virtual bool updateUnicoreDataMovementDetails(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataMovementInterfaceId, const ::apache::airavata::model::data::movement::UnicoreDataMovement& unicoreDataMovement) = 0; + + /** + * This method returns UNICORE datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return UnicoreDataMovement instance + * + * + * + * @param authzToken + * @param dataMovementId + */ virtual void getUnicoreDataMovement( ::apache::airavata::model::data::movement::UnicoreDataMovement& _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataMovementId) = 0; /** * Add a GridFTP data movement 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 dataMovement protocol to be added + * + * @param DMType + * The DMType object to be added to the resource. * * @param priorityOrder * Specify the priority of this job manager. If this is the only jobmanager, the priority can be zero. @@ -1635,7 +1910,8 @@ class AiravataIf { * The GridFTPDataMovement object to be added to the resource. * * @return status - * Returns the unique job submission id. + * Returns the unique data movement id. + * * * * @param authzToken @@ -1656,8 +1932,9 @@ class AiravataIf { * @param gridFTPDataMovement * The GridFTPDataMovement object to be updated. * - * @return status - * Returns a success/failure of the updation. + * @return boolean + * Returns a success/failure of the update. + * * * * @param authzToken @@ -1667,11 +1944,14 @@ class AiravataIf { virtual bool updateGridFTPDataMovementDetails(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataMovementInterfaceId, const ::apache::airavata::model::data::movement::GridFTPDataMovement& gridFTPDataMovement) = 0; /** - * * This method returns GridFTP datamovement object - * * @param dataMovementId - * * The identifier of the datamovement Interface to be retrieved. - * * @return GridFTPDataMovement instance - * * + * This method returns GridFTP datamovement object + * + * @param dataMovementId + * The identifier of the datamovement Interface to be retrieved. + * + * @return GridFTPDataMovement instance + * + * * * @param authzToken * @param dataMovementId @@ -1691,6 +1971,7 @@ class AiravataIf { * Returns a success/failure of the change. * * + * * @param authzToken * @param jobSubmissionInterfaceId * @param newPriorityOrder @@ -1710,6 +1991,7 @@ class AiravataIf { * Returns a success/failure of the change. * * + * * @param authzToken * @param dataMovementInterfaceId * @param newPriorityOrder @@ -1741,6 +2023,7 @@ class AiravataIf { * Returns a success/failure of the changes. * * + * * @param authzToken * @param dataMovementPriorityMap */ @@ -1756,6 +2039,7 @@ class AiravataIf { * Returns a success/failure of the deletion. * * + * * @param authzToken * @param computeResourceId * @param jobSubmissionInterfaceId @@ -1772,6 +2056,7 @@ class AiravataIf { * Returns a success/failure of the deletion. * * + * * @param authzToken * @param computeResourceId * @param dataMovementInterfaceId @@ -1781,6 +2066,25 @@ class AiravataIf { virtual bool updateResourceJobManager(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& resourceJobManagerId, const ::apache::airavata::model::appcatalog::computeresource::ResourceJobManager& updatedResourceJobManager) = 0; virtual void getResourceJobManager( ::apache::airavata::model::appcatalog::computeresource::ResourceJobManager& _return, const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& resourceJobManagerId) = 0; virtual bool deleteResourceJobManager(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& resourceJobManagerId) = 0; + + /** + * Delete a Compute Resource Queue + * + * @param computeResourceId + * The identifier of the compute resource which has the queue to be deleted + * + * @param queueName + * Name of the queue need to be deleted. Name is the uniqueue identifier for the queue within a compute resource + * + * @return status + * Returns a success/failure of the deletion. + * + * + * + * @param authzToken + * @param computeResourceId + * @param queueName + */ virtual bool deleteBatchQueue(const ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& computeResourceId, const std::string& queueName) = 0; /**
