Updated Branches: refs/heads/master a52692e7f -> 3070c3d9b
http://git-wip-us.apache.org/repos/asf/airavata/blob/3070c3d9/modules/thrift-interfaces/airavataAPI.thrift ---------------------------------------------------------------------- diff --git a/modules/thrift-interfaces/airavataAPI.thrift b/modules/thrift-interfaces/airavataAPI.thrift deleted file mode 100644 index 1b804d3..0000000 --- a/modules/thrift-interfaces/airavataAPI.thrift +++ /dev/null @@ -1,413 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -/* - * Application Programming Interface definition for Apache Airavata Services. - * this parent thrift file is contains all service interfaces. The data models are - * described in respective thrift files. -*/ - -include "airavataErrors.thrift" -include "airavataDataModel.thrift" -include "experimentModel.thrift" - -namespace java org.apache.airavata.api -namespace php Airavata.API -namespace cpp airavata.api -namespace perl AiravataAPI -namespace py airavata.api -namespace js AiravataAPI - -/* - * Airavata Interface Versions depend upon this Thrift Interface File. When Making changes, please edit the - * Version Constants according to Semantic Versioning Specification (SemVer) http://semver.org. - * - * Note: The Airavata API version may be different from the Airavata software release versions. - * - * The Airavata API version is composed as a dot delimited string with major, minor, and patch level components. - * - * - Major: Incremented for backward incompatible changes. An example would be changes to interfaces. - * - Minor: Incremented for backward compatible changes. An example would be the addition of a new optional methods. - * - Patch: Incremented for bug fixes. The patch level should be increased for every edit that doesn't result - * in a change to major/minor version numbers. -*/ -const string VERSION = "0.12.0" - -service Airavata { - -/* - * Apache Airavata API Service Methods. For data structures associated in the signatures, please see included thrift files -*/ - - /** Query Airavata to fetch the API version */ - string GetAPIVersion(), - - /** - * Create an experiment for the specified user belonging to the gateway. The gateway identity is not explicitly passed - * but inferred from the authentication 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 experiment globally unique identifier. - * - * @throws org.apache.airavata.api.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.api.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.api.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. - * - */ - string createExperiment(1: experimentModel.BasicMetadata basicExperimentMetadata) - throws (1: airavataErrors.InvalidRequestException ire, - 2: airavataErrors.AiravataClientException ace, - 3: airavataErrors.AiravataSystemException ase) - - /** - * 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.api.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.api.error.ExperimentNotFoundException - * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown. - * - * @throws org.apache.airavata.api.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.api.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. - * - */ - experimentModel.BasicMetadata getBasicExperimentMetadata(1: string airavataExperimentId) - throws (1: airavataErrors.InvalidRequestException ire, - 2: airavataErrors.ExperimentNotFoundException enf, - 3: airavataErrors.AiravataClientException ace, - 4: airavataErrors.AiravataSystemException ase) - - /** - * Configure a previously created experiment with required inputs, scheduling and other quality of service - * parameters. This method only updates the experiment object within the registry. The experiment has to be launched - * to make it actionable by the server. - * - * @param airavataExperimentId - * The identifier for the requested experiment. This is returned during the create experiment step. - * - * @param experimentConfigurationData - * The configuration information of the experiment with application input parameters, computational resource scheduling - * information, special input output handling and additional quality of service parameters. - * - * @return - * This method call does not have a return value. - * - * @throws org.apache.airavata.api.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.api.error.ExperimentNotFoundException - * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown. - * - * @throws org.apache.airavata.api.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.api.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. - * - */ - void configureExperiment(1: string airavataExperimentId, - 2: experimentModel.ConfigurationData experimentConfigurationData) - throws (1: airavataErrors.InvalidRequestException ire, - 2: airavataErrors.ExperimentNotFoundException enf, - 3: airavataErrors.AiravataClientException ace, - 4: airavataErrors.AiravataSystemException ase) - - /** - * Fetch the previously configured experiment configuration information. - * - * @param airavataExperimentId - * The identifier for the requested experiment. This is returned during the create experiment step. - * - * @return - * This method returns the previously configured experiment configuration data. - * - * @throws org.apache.airavata.api.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.api.error.ExperimentNotFoundException - * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown. - * - * @throws org.apache.airavata.api.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.api.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. - * - */ - experimentModel.ConfigurationData getExperimentConfiguration(1: string airavataExperimentId) - throws (1: airavataErrors.InvalidRequestException ire, - 2: airavataErrors.ExperimentNotFoundException enf, - 3: airavataErrors.AiravataClientException ace, - 4: airavataErrors.AiravataSystemException ase) - - /** - * Launch a previously created and configured experiment. Airavata Server will then start processing the request and appropriate - * notifications and intermediate and output data will be subsequently available for this experiment. - * - * @param airavataExperimentId - * The identifier for the requested experiment. This is returned during the create experiment step. - * - * @param airavataCredStoreToken: - * A requirement to execute experiments within Airavata is to first register the targeted remote computational account - * credentials with Airavata Credential Store. The administrative API (related to credential store) will return a - * generated token associated with the registered credentials. The client has to security posses this token id and is - * required to pass it to Airavata Server for all execution requests. - * Note: At this point only the credential store token is required so the string is directly passed here. In future if - * if more security credentials are enables, then the structure ExecutionSecurityParameters should be used. - * Note: This parameter is not persisted within Airavata Registry for security reasons. - * - * @return - * This method call does not have a return value. - * - * @throws org.apache.airavata.api.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.api.error.ExperimentNotFoundException - * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown. - * - * @throws org.apache.airavata.api.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.api.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. - * - */ - void launchConfiguredExperiment(1: string airavataExperimentId - 2: string airavataCredStoreToken) - throws (1: airavataErrors.InvalidRequestException ire, - 2: airavataErrors.ExperimentNotFoundException enf, - 3: airavataErrors.AiravataClientException ace, - 4: airavataErrors.AiravataSystemException ase) - - /** - * Configure and Launch a previously created experiment with required inputs, scheduling, security and other quality of service - * parameters. This method also launches the experiment after it is configured. If you would like to configure only - * and launch at a later time or partially configure then ConfigureExperiment should be used. - * - * @param airavataExperimentId - * The identifier for the requested experiment. This is returned during the create experiment step. - * - * @param experimentConfigurationData - * The configuration information of the experiment with application input parameters, computational resource scheduling - * information, special input output handling and additional quality of service parameters. - * - * @param airavataCredStoreToken: - * A requirement to execute experiments within Airavata is to first register the targeted remote computational account - * credentials with Airavata Credential Store. The administrative API (related to credential store) will return a - * generated token associated with the registered credentials. The client has to security posses this token id and is - * required to pass it to Airavata Server for all execution requests. - * Note: At this point only the credential store token is required so the string is directly passed here. In future if - * if more security credentials are enables, then the structure ExecutionSecurityParameters should be used. - * - * @return - * The server-side generated experiment GUID. - * - * @throws org.apache.airavata.api.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.api.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.api.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. - * - */ - string configureAndLaunchExperiment (1: string airavataExperimentId - 2: experimentModel.ConfigurationData experimentConfigurationData, - 3: string airavataCredStoreToken) - throws (1: airavataErrors.InvalidRequestException ire, - 2: airavataErrors.ExperimentNotFoundException enf, - 3: airavataErrors.AiravataClientException ace, - 4: airavataErrors.AiravataSystemException ase) - - /** - * Clone an specified experiment with a new name. A copy of the experiment configuration is made and is persisted with new metadata. - * The client has to subsequently update this configuration if needed and launch the cloned experiment. - * - * @param airavataExperimentIdToBeCloned - * This is the experiment identifier that is to be cloned. - * - * @param basicExperimentMetadata - * Once an experiment is cloned, to disambiguate, the users are suggested to provide new metadata. This will again require - * the basic experiment metadata like the name and description, intended user, the gateway identifier and if the experiment - * should be shared public by default. - * - * @return - * The server-side generated airavata experiment globally unique identifier for the newly cloned experiment. - * - * @throws org.apache.airavata.api.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.api.error.ExperimentNotFoundException - * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown. - * - * @throws org.apache.airavata.api.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.api.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. - * - */ - string cloneExperimentConfiguration(1: string airavataExperimentIdToBeCloned, - 2: experimentModel.BasicMetadata basicExperimentMetadata) - throws (1: airavataErrors.InvalidRequestException ire, - 2: airavataErrors.ExperimentNotFoundException enf, - 3: airavataErrors.AiravataClientException ace, - 4: airavataErrors.AiravataSystemException ase) - - /** - * Terminate a running experiment. - * - * @param airavataExperimentId - * The identifier for the requested experiment. This is returned during the create experiment step. - * - * @return - * This method call does not have a return value. - * - * @throws org.apache.airavata.api.error.InvalidRequestException - * For any incorrect forming of the request itself. - * - * @throws org.apache.airavata.api.error.ExperimentNotFoundException - * If the specified experiment is not previously created, then an Experiment Not Found Exception is thrown. - * - * @throws org.apache.airavata.api.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.api.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. - * - */ - void terminateExperiment(1: string airavataExperimentId) - throws (1: airavataErrors.InvalidRequestException ire, - 2: airavataErrors.ExperimentNotFoundException enf, - 3: airavataErrors.AiravataClientException ace, - 4: airavataErrors.AiravataSystemException ase) - -} http://git-wip-us.apache.org/repos/asf/airavata/blob/3070c3d9/modules/thrift-interfaces/airavataDataModel.thrift ---------------------------------------------------------------------- diff --git a/modules/thrift-interfaces/airavataDataModel.thrift b/modules/thrift-interfaces/airavataDataModel.thrift deleted file mode 100644 index 080676e..0000000 --- a/modules/thrift-interfaces/airavataDataModel.thrift +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -include "experimentModel.thrift" - -namespace java org.apache.airavata.model - -/* - * This file describes the definitions of the Airavata Execution Data Structures. Each of the - * language specific Airavata Client SDK's will translate this neutral data model into an - * appropriate form for passing to the Airavata Server Execution API Calls. -*/ http://git-wip-us.apache.org/repos/asf/airavata/blob/3070c3d9/modules/thrift-interfaces/airavataErrors.thrift ---------------------------------------------------------------------- diff --git a/modules/thrift-interfaces/airavataErrors.thrift b/modules/thrift-interfaces/airavataErrors.thrift deleted file mode 100644 index a3b4490..0000000 --- a/modules/thrift-interfaces/airavataErrors.thrift +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -/* -* This file describes the definitions of the Error Messages that can occur -* when invoking Apache Airavata Services through the API. In addition Thrift provides -* built in funcationality to raise TApplicationException for all internal server errors. -*/ - -namespace java org.apache.airavata.api.error -namespace php Airavata.API.Error -namespace cpp airavata.api.error -namespace perl AiravataAPIError -namespace py airavata.api.error -namespace js AiravataAPIError - -/** - * A list of Airavata API Error Message Types - * - * UNKNOWN: No information available about the error - * - * PERMISSION_DENIED: Not permitted to perform action - * - * INTERNAL_ERROR: Unexpected problem with the service - * - * AUTHENTICATION_FAILURE: The client failed to authenticate. - * - * INVALID_AUTHORIZATION: Security Token and/or Username and/or password is incorrect - * - * AUTHORIZATION_EXPIRED: Authentication token expired - * - * UNKNOWN_GATEWAY_ID: The gateway is not registered with Airavata. - * - * UNSUPPORTED_OPERATION: Operation denied because it is currently unsupported. - */ -enum AiravataErrorType { - UNKNOWN, - PERMISSION_DENIED, - INTERNAL_ERROR, - AUTHENTICATION_FAILURE, - INVALID_AUTHORIZATION, - AUTHORIZATION_EXPIRED, - UNKNOWN_GATEWAY_ID, - UNSUPPORTED_OPERATION -} - -/** - * This exception is thrown when a client asks to perform an operation on an experiment that does not exist. - * - * identifier: A description of the experiment that was not found on the server. - * - * key: The value passed from the client in the identifier, which was not found. - */ -exception ExperimentNotFoundException { - 1: optional string identifier, - 2: optional string key -} - -/** -* This exception is thrown for invalid requests that occur from any reasons like required input parameters are missing, -* or a parameter is malformed. -* -* message: contains the associated error message. -*/ -exception InvalidRequestException { - 1: required string message -} - - -/** -* This exception is thrown when RPC timeout gets exceeded. -*/ -exception TimedOutException { -} - -/** -* This exception is thrown for invalid authentication requests. -* -* message: contains the cause of the authorization failure. -*/ -exception AuthenticationException { - 1: required string message -} - -/** -* This exception is thrown for invalid authorization requests such user does not have acces to an aplication or resource. -* -* message: contains the authorization failure message -*/ -exception AuthorizationException { - 1: required string message -} - - -/** - * This exception is thrown by Airavata Services when a call fails as a result of - * a problem that a client may be able to resolve. For example, if the user - * attempts to execute an application on a resource gateway does not have access to. - * - * This exception would not be used for internal system errors that do not - * reflect user actions, but rather reflect a problem within the service that - * the client cannot resolve. - * - * airavataErrorType: The message type indicating the error that occurred. - * must be one of the values of AiravataErrorType. - * - * parameter: If the error applied to a particular input parameter, this will - * indicate which parameter. - */ -exception AiravataClientException { - 1: required AiravataErrorType airavataErrorType, - 2: optional string parameter -} - - -/** - * This exception is thrown by Airavata Services when a call fails as a result of - * a problem in the service that could not be changed through client's action. - * - * airavataErrorType: The message type indicating the error that occurred. - * must be one of the values of AiravataErrorType. - * - * message: This may contain additional information about the error - * - */ -exception AiravataSystemException { - 1: required AiravataErrorType airavataErrorType, - 2: optional string message, -} - - http://git-wip-us.apache.org/repos/asf/airavata/blob/3070c3d9/modules/thrift-interfaces/experimentModel.thrift ---------------------------------------------------------------------- diff --git a/modules/thrift-interfaces/experimentModel.thrift b/modules/thrift-interfaces/experimentModel.thrift deleted file mode 100644 index 71e9e6a..0000000 --- a/modules/thrift-interfaces/experimentModel.thrift +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -namespace java org.apache.airavata.model.experiment - -/* - * This file describes the definitions of the Airavata Experiment Data Structures. Each of the - * language specific Airavata Client SDK's will translate this neutral data model into an - * appropriate form for passing to the Airavata Server Execution API Calls. - * - * The Experiment data model is divided into 6 categories: experiment metadata, experiment configuration - * data, experiment generated data, experiment monitoring data, provenance data and error handling data. - * - * Experiment Metadata: - * this structure holds the owner of the experiment, name, description, creation and last update times, - * last known status, and if is private to the user or shared publicly. - * FIXME: To start with, we will not define this but populate it inferring data from other structures. This - * structure needs revisiting once the API gets used. - * - * Experiment Configuration Data: - * this structure will contain all user provided configuration data. - * - * Experiment Generated Data: - * this structure describes all intermediate and output data generated by executing the experiment. - * - * Experiment Monitoring Data: - * this structure contains fine grained experiment status information. - * - * Experiment Summary Data: - * this is derived information from all experiment objects to provide a quick summary. - * -*/ - -/** - * A structure holding the basic experiment metadata. - * - * userName: - * The user name of the targeted gateway end user on whose behalf the experiment is being created. - * the associated gateway identity can only be inferred from the security hand-shake so as to avoid - * authorized Airavata Clients mimicking an unauthorized request. If a gateway is not registered with - * Airavata, an authorization exception is thrown. - * - * experimentName: - * The name of the experiment as defined by the user. The name need not be unique as uniqueness is enforced - * by the generated experiment id. - * - * experimentDescription: - * The verbose description of the experiment. This is an optional parameter. -*/ -struct BasicMetadata { - 1: required string userName, - 2: required string experimentName, - 3: optional string experimentDescription, - 4: optional bool shareExperimentPublicly = 0 -} - -/** - * A structure holding the Computational Resource Scheduling. - * -*/ -struct ComputationalResourceScheduling { - 1:required bool airavataAutoSchedule = 1 - 2:required bool overrideManualScheduledParams = 0, - 3:optional string resourceHostId, - 4:optional i32 totalCPUCount, - 5:optional i32 nodeCount, - 6:optional i32 numberOfThreads, - 7:optional string queueName, - 8:optional i32 wallTimeLimit, - 9:optional i32 jobStartTime, - 10:optional i32 totalPhysicalMemory, - 11:optional string ComputationalProjectAccount -} - -/** - * A structure holding specified input data handling. - * -*/ -struct AdvancedInputDataHandling { - 1:optional bool stageInputFilesToWorkingDir = 0, - 2: optional string workingDirectoryParent, - 3: optional string uniqueWorkingDirectory, - 4: optional bool cleanUpWorkingDirAfterJob = 0 -} - -/** - * A structure holding specified output data handling. - * -*/ -struct AdvancedOutputDataHandling { - 2:optional string outputdataDir, - 3:optional string dataRegistryURL, - 4:optional bool persistOutputData = 1 -} - -/** - * A structure holding Quality of Service Parameters. - * -*/ -struct QualityOfServiceParams { - 1:optional string startExecutionAt, - 2:optional string executeBefore, - 3:optional i32 numberofRetries, -} - -/** - * A structure holding the experiment configuration. - * - * -*/ -struct ConfigurationData { - 1: optional BasicMetadata basicMetadata, - 2: optional string applicationId, - 3: optional string applicationVersion, - 4: optional string workflowTemplateId, - 5: optional string worklfowTemplateVersion, - 6: optional map<string,string> experimentInputs, - 7: optional ComputationalResourceScheduling computationalResourceScheduling, - 8: optional AdvancedInputDataHandling advanceInputDataHandling, - 9: optional AdvancedOutputDataHandling advanceOutputDataHandling, - 10: optional QualityOfServiceParams qosParams -}
