taverna-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stian Soiland-Reyes <st...@apache.org>
Subject Re: Taverna Server REST api provide input files
Date Wed, 27 Apr 2016 11:11:07 GMT
Tracked as https://issues.apache.org/jira/browse/TAVERNA-964

Any takers? :)

On 27 April 2016 at 11:08, Stian Soiland-Reyes <stain@apache.org> wrote:
> Thanks for reporting this.
>
> I think the issue is in the executeworkflow command line tool, as  I
> can replicate this with also with executeworkflow -inputfile - e.g. a
> Tool activity with "ls -al `pwd`/fred"
> will output in the Workbench:
>
> lrwxrwxrwx 1 stain stain 17 Apr 27 10:52
> /tmp/usecase2549370560835453456dir/fred -> /home/stain/2.ttl
>
> but run as executeworkflow fred.t2flow -inputfile fred /tmp/oa.html
>
> it will save a copy:
>
> -rw-rw-r-- 1 stain stain 171344 Apr 27 10:53
> /tmp/usecase5592972701647292140dir/fred
>
>
> so it seems the command line is not providing the input files as File
> references for the Tool activity to recognize - thus Tool is forced to
> save them as new files.
>
> I think in Taverna 3 the file will actually be copied twice - once
> into the input DataBundle, and then out to the tool activity.
>
>
>
> Relevant code:
> https://github.com/apache/incubator-taverna-common-activities/blob/master/taverna-external-tool-activity/src/main/java/de/uni_luebeck/inb/knowarc/usecases/invocation/local/LocalUseCaseInvocation.java#L142
>
> https://github.com/apache/incubator-taverna-commandline/blob/master/taverna-commandline-common/src/main/java/org/apache/taverna/commandline/CommandLineTool.java#L234
>
> https://github.com/apache/incubator-taverna-commandline/blob/master/taverna-commandline-common/src/main/java/org/apache/taverna/commandline/data/InputsHandler.java#L168
>
> 2.5 code as well:
>
> https://github.com/apache/incubator-taverna-commandline/blob/old/taverna-commandline-1.5/taverna-commandline-common/src/main/java/net/sf/taverna/t2/commandline/data/InputsHandler.java#L190
>
> Both of these seems to read the file into memory (!) - even though (in
> Taverna 3) setValue()  supports File and URL forwarded on to
> DataBundles.setReference().
>
> I think URL can then be converted back to File by Tool if it starts
> with file:/// - worth checking in ToolActivity.
>
>
> On 26 April 2016 at 22:39, Daniele Tartarini
> <d.tartarini@sheffield.ac.uk> wrote:
>> Hi,
>>
>> I am using a Taverna server to run a workflow based on Taverna tools
>> service.
>>
>> I can run execution correctly following the API here:
>> http://dev.mygrid.org.uk/wiki/display/tav250/Conceptual+Interface
>>
>> The test workflow is very simple, taking a single input file.
>>
>> I noted that when I upload to the server the input file using:
>> POST  to
>> https://myserver.ac.uk/taverna-server/rest/runs/42d06756-b9c4-45ef-b69d-a141c69499be//wd/IN
>>
>> and then associating the port to the file using:
>>
>> PUT to
>> https://myserver.ac.uk/taverna-server/rest/runs/42d06756-b9c4-45ef-b69d-a141c69499be/input/input/input_file_text
>> with data
>> <t2sr:runInput xmlns:t2sr="http://ns.taverna.org.uk/2010/xml/server/rest/">
>> <t2sr:file>IN/myfile.txt</t2sr:file> </t2sr:runInput>
>>
>> execution is correct but input files are copied from the
>> /tmp/42d06756-b9c4-45ef-b69d-a141c69499be
>> to the Taverna Tool service working folder 'usecase....dir'
>>
>> I would like to avoid this copy because I would be dealing to substantial
>> inputs and on a parameter sweep can affect performance.
>>
>> In Taverna Workbench this issue is solved in a elegant way using the "Set
>> File Location" tab in the form input window. Files are not copied but
>> replaced by symbolic links.
>>
>> *How can I achieve the same result via Taverna server API or a baclava (I
>> noted the Set file location information is not saved inside the baclava)?*
>>
>> I tried to use the Taverna server API setting the input as reference as
>> documented  in:
>> http://dev.mygrid.org.uk/wiki/display/tav250/Conceptual+Interface section:
>> "Using a File Already on the Taverna Server Installation"
>>
>> Using:
>> PUT
>> https://myserver.ac.uk:8444/taverna-server/rest/runs/88f79b84-6451-4aed-b151-6b051328d922
>>  /input/input/input_file_text
>>
>> with data ({'content-type': 'application/xml'}):
>>
>> <t2sr:runInput xmlns:t2sr="http://ns.taverna.org.uk/2010/xml/server/rest/">
>>     <t2sr:reference>
>>
>> https://myserver.ac.uk:8444/taverna-server/rest/runs/88f79b84-6451-4aed-b151-6b051328d922/wd/IN/myfile.txt
>>     </t2sr:reference>
>> </t2sr:runInput>
>>
>>
>> I get the following 403 error: filename may not be absolute
>>
>> *Any Idea how to solve both issues?*
>>
>> Many thanks in advance.
>>
>> Cheers
>>
>> Daniele
>>
>>
>> --
>> --
>> Daniele Tartarini
>>
>> Post-Doctoral Research Associate
>> Dept. Mechanical Engineering &
>> INSIGNEO, institute for *in silico* medicine,
>> University of Sheffield, Sheffield, UK
>> linkedIn <http://uk.linkedin.com/in/danieletartarini>
>
>
>
> --
> Stian Soiland-Reyes
> Apache Taverna (incubating), Apache Commons RDF (incubating)
> http://orcid.org/0000-0001-9842-9718



-- 
Stian Soiland-Reyes
Apache Taverna (incubating), Apache Commons RDF (incubating)
http://orcid.org/0000-0001-9842-9718

Mime
View raw message