You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@airavata.apache.org by "Bandaru, Vivek Shresta" <vi...@iu.edu> on 2020/03/31 07:52:39 UTC

Re: [External] Re: Backend calls for

Thank you for elaborating.

From: Suresh Marru <sm...@apache.org>
Reply-To: "dev@airavata.apache.org" <de...@airavata.apache.org>
Date: Monday, March 30, 2020 at 11:53 PM
To: Airavata Dev <de...@airavata.apache.org>
Subject: [External] Re: Backend calls for

This message was sent from a non-IU address. Please exercise caution when clicking links or opening attachments from external sources.

Hi Vivek,

You seem to be looking at Airavata client SDK’s. If you want to follow server side create experiment flow you should look into the API handler code for create experiment - https://github.com/apache/airavata/blob/master/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java#L1400

But you quickly realize static code analysis will not take you too far since the communications happen between these components via messaging layer.

If you are looking for how experiment folder is created here is the flow:

The client (for instance Django Portal) create a unique working directory for the authenticated user and stages user provided input file into this folder. Then it sets this as the experiment Data Directory and passes the location to the server - https://github.com/apache/airavata/blob/master/thrift-interface-descriptions/data-models/experiment-catalog-models/experiment_model.thrift#L69

The serve code after the application execution is complete stages the output data to the folder specified above. All the required security credentials and communication protocols to the above storage resource should be pre-configired. If you are looking for the class where this transfer happens, this might help -
https://github.com/apache/airavata/blob/master/modules/airavata-helix/helix-spectator/src/main/java/org/apache/airavata/helix/impl/task/staging/OutputDataStagingTask.java

Suresh


On Mar 30, 2020, at 10:45 PM, Bandaru, Vivek Shresta <vi...@iu.edu>> wrote:

Hi All,

I’m trying to understand how an experiment and its respective folder is created by basic static code analysis.
I don’t think I get the whole picture.


I believe in workspace/views.py, through apache thrift, Django-portal delegates the creation of experiment to backend services.

Then, I believe the code for creating an experiement is in Java: org.apache.airavata.client.samples.CreateLaunchExperiment#createExperimentGROMACSStampede (Multiple create experiment functions in this class)

What I don’t understand is, I find createExperiments functions in other languages which make a thrift call to create an experiment.
Php :      pga/airavata-php-gateway/app/libraries/Airavata/API/Airavata.php:6274
Cpp :      lib/airavata/Airavata.h:7844 (Multiple create experiments)

When does the Php and Cpp code bases come into picture? Any pointers are very much appreciated.

Regards,
Vivek.