taverna-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simone Bnà <s...@cineca.it>
Subject Re: add a plugin to a taverna server
Date Wed, 20 Apr 2016 12:49:26 GMT
Dear Stian,

sorry to bother you again,

is it possible to do the same thing as Alan proposed for the Beanshell (extract the uuid from
env) in a externaltool?

Best regards,

Simone.


----- Messaggio originale -----
Da: "Simone Bnà" <s.bn@cineca.it>
A: "Stian Soiland-Reyes" <stain@apache.org>
Cc: dev@taverna.incubator.apache.org
Inviato: Lunedì, 18 aprile 2016 10:39:56
Oggetto: Re: add a plugin to a taverna server

Dear Stian,

> while I guess you want to
> match the UUIDs used in the REST interface of the Taverna Server.

Yes.

Best regards,

Simone.


----- Messaggio originale -----
Da: "Stian Soiland-Reyes" <stain@apache.org>
A: "Simone Bnà" <s.bn@cineca.it>
Cc: dev@taverna.incubator.apache.org
Inviato: Sabato, 16 aprile 2016 14:21:01
Oggetto: Re: add a plugin to a taverna server

Ah.. but then I'm not sure if my UUIDs will help you, as those
identify the command line engine's run ID - while I guess you want to
match the UUIDs used in the REST interface of the Taverna Server.

I am not sure if the Taverna Server can be told to inject the external
run UUID into the workflow.. Donal?

On 15 April 2016 at 13:29, Simone Bnà <s.bn@cineca.it> wrote:
> Dear Stian,
>
> thanks a lot for your reply.
>
>> Q: Why? Are you recording provenance?
>
> The idea is to send notifications to a server of what happens during the execution of
a bash script called inside an External Tool (or Beanshell).
>
> So what I need is in some way to get the uuid of the workflow run created by taverna
server at runtime.
>
> I tried to get it from the PWD command but for each activity I got the /tmp/usecase****
folder and not /tmp/<uuid>
> and I did not find any relations between the two.
>
> I am not constrained to find it from Beanshell, if there was another smarter and simpler
way it should be better :)
>
> Best regards,
>
> Simone.
>
>
> ----- Messaggio originale -----
> Da: "Stian Soiland-Reyes" <stain@apache.org>
> A: dev@taverna.incubator.apache.org, "Simone Bnà" <s.bn@cineca.it>
> Inviato: Venerdì, 8 aprile 2016 18:32:59
> Oggetto: Re: add a plugin to a taverna server
>
> Hi, I assume you have signed up to dev@taverna where I have CC-ed your
> reply and any following discussion.
>
> http://taverna.incubator.apache.org/contact#devtaverna
>
>
>> 1) How can I get the uuid of a workflow run in a Beanshell script?
>
> I assume you mean in Taverna 2.5.
>
> It is not currently directly exposed. Perhaps think it should be -
> through some injected "_metadata" oibject perhaps?
>
> Q: Why? Are you recording provenance?
>
>
>
> You would have to cheat quite a bit..
>
> Someone tried something similar before:
> https://sourceforge.net/p/taverna/mailman/message/25689147/
>
> But complicating this is that you want to find it from Beanshell, not
> your own Activity. The Beanshell script is evaluated here:
>
> https://github.com/apache/incubator-taverna-common-activities/blob/master/taverna-beanshell-activity/src/main/java/org/apache/taverna/activities/beanshell/BeanshellActivity.java#L174
> (in 2.5: https://github.com/apache/incubator-taverna-common-activities/blob/old/beanshell-activity-1.5.1/src/main/java/net/sf/taverna/t2/activities/beanshell/BeanshellActivity.java#L181
>  )
>
> where it does not expose the workflowRunID that was calculated just before.
>
>
> However luckily the Thread contains the workflow run number as part of
> it's string - so we can be a bit evil..
>
> Basically we can lookup that in here:
>
> http://www.taverna.org.uk/api-2.2/net/sf/taverna/t2/facade/WorkflowInstanceFacade.html#workflowRunFacades
>
>
> Try this:
>
> import net.sf.taverna.t2.facade.WorkflowInstanceFacade;
>
> threadName = Thread.currentThread().getName();
> processId = threadName.split(" ")[1];
> String topFacadeId = processId.substring(0, processId.indexOf(":"));
> topFacade = WorkflowInstanceFacade.workflowRunFacades.get(topFacadeId).get();
>
>
> runId = topFacade.getWorkflowRunId();
> runUri = "http://ns.taverna.org.uk/2011/run/" + runId + "/";
>
> topDataflow = topFacade.getDataflow();
> dataflowId = topDataflow.getIdentifier();
>
> wfBundleUri = "http://ns.taverna.org.uk/2010/workflowBundle/" +
> dataflowId  + "/";
> dataflowName = topDataflow.getLocalName();
> // TODO Escaping name
> wfUri = wfBundleUri + "workflow/" + dataflowName + "/";
>
> That should return you all the identifiers you need -- e.g.
>
> http://ns.taverna.org.uk/2011/run/0d3e1533-f032-46a7-a9b8-d6e4e2f24ec6/
> http://ns.taverna.org.uk/2010/workflowBundle/9b1b7683-bd7c-4af3-947b-fa4790d693b7/
> http://ns.taverna.org.uk/2010/workflowBundle/9b1b7683-bd7c-4af3-947b-fa4790d693b7/workflow/Workflow2/
>
> Those should match with provenance.
>
> (it might be more complicated if you do nested workflows.)
>
>
>> 2) How can I add new libraries to be used from a Beanshell script in taverna
>> server?
>> Am I supposed to copy the *.jar libraries in
>> .../apache-tomcat-x.x.x/webapps/taverna-server/WEB-INF/lib?
>
> No, those would not be used, as the workflow is executed in a new
> executeworkflow.sh process outside Tomcat.
>
> Rather you would need to upload the JARs per workflow run to the lib/
> sub folder of the workingDirectory through the Taverna Server API, or
> add them to the equivalent of
> /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/util/taverna-commandline-enterprise-2.5.0/lib
>
> which is the unpacked commandline distribution within the Taverna Server
>
>
> --
> Stian Soiland-Reyes
> Apache Taverna (incubating), Apache Commons RDF (incubating)
> http://orcid.org/0000-0001-9842-9718
>
> --
> Simone Bnà, PhD
> C++ Software Developer, CINECA
> Via Magnanelli 6/3, 40033 Casalecchio di Reno, Italy
> office:   +39-0516171938
> email: s.bna@scsitaly.com/s.bn@cineca.it



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

-- 
Simone Bnà, PhD
C++ Software Developer, CINECA
Via Magnanelli 6/3, 40033 Casalecchio di Reno, Italy
office:   +39-0516171938
email: s.bna@scsitaly.com/s.bn@cineca.it

-- 
Simone Bnà, PhD
C++ Software Developer, CINECA
Via Magnanelli 6/3, 40033 Casalecchio di Reno, Italy
office:   +39-0516171938
email: s.bna@scsitaly.com/s.bn@cineca.it

Mime
View raw message