You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@airavata.apache.org by AMILA RANATUNGA <ne...@gmail.com> on 2013/06/18 13:57:57 UTC

Writing Airavata output to a FILE

Hi,

How we can write Airavata out put to a file instead in std out. I tried
something like using API.

outputParameter.setParameterDescription("wps output");
        ParameterType outputParaType =
outputParameter.addNewParameterType();

//if I change the STD_OUT to File

 outputParaType.setType(DataType.FILE);


I got the following exception. But  I get the output correctly with the
STD_OUT.  After that how to save it to custom location?




<ns:invokingServiceFailed infoModelVersion="2.6"
  xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08">
  <ns:notificationSource
ns:serviceID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
ns:experimentID="Workflow1_e5a72bea-ee03-45ac-b8ce-33ab559115e7" />
  <ns:timestamp>2013-06-18T17:18:18.230+05:30</ns:timestamp>
  <ns:description>Error while invoking provider
org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.:
org.apache.airavata.gfac.GFacException: Error while invoking provider
org.apache.airavata.gfac.provider.impl.LocalProvider dispose
method.</ns:description>
  <ns:annotation>
    <stackTrace>org.apache.airavata.gfac.GFacException: Error while
invoking provider org.apache.airavata.gfac.provider.impl.LocalProvider
dispose method.
at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
at
org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.airavata.gfac.provider.GFacProviderException: Error
in retrieving results
at
org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
... 10 more
Caused by: java.lang.Exception: Data for the output parameter 'wps_output'
was not found
at
org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
at
org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
at
org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
... 11 more
</stackTrace>
  </ns:annotation>
  <ns:receiver ns:serviceID="WPS_invoke"
ns:workflowID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
ns:workflowTimestep="0" ns:workflowNodeID="WPS_invoke" />
  <ns:failure>
    <ns:trace xsi:type="xs:string" xmlns:xs="
http://www.w3.org/2001/XMLSchema"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08">org.apache.airavata.gfac.GFacException:
Error while invoking provider
org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.
at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
at
org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
at
org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.airavata.gfac.provider.GFacProviderException: Error
in retrieving results
at
org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
... 10 more
Caused by: java.lang.Exception: Data for the output parameter 'wps_output'
was not found
at
org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
at
org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
at
org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
... 11 more
</ns:trace>
  </ns:failure>
</ns:invokingServiceFailed>



Thank You !

Re: Writing Airavata output to a FILE

Posted by AMILA RANATUNGA <ne...@gmail.com>.
Hi Lahiru,

I want to write the output of the workflow to a file. So should the
 writing to a file be done via the application itself.?

Thank You !
















On Tue, Jun 18, 2013 at 10:52 PM, Lahiru Gunathilake <gl...@gmail.com>wrote:

> Hi Amila,
>
> What is your requirement ?
>
> Lahiru
>
>
> On Tue, Jun 18, 2013 at 1:11 PM, AMILA RANATUNGA <newair007@gmail.com
> >wrote:
>
> > Hi,
> >
> > No. Should the application we wrap write the output to a file? What I was
> > thinking was Airavata would write the file
> > to the specified location when the application writes to the std out.
> >
> >
> > Thank You !
> >
> >
> >
> >
> >
> >
> >
> > On Tue, Jun 18, 2013 at 10:19 PM, Saminda Wijeratne <samindaw@gmail.com
> > >wrote:
> >
> > > Does executing "java -jar
> > > E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar %1"
> results
> > > files inside the location which you specified?
> > >
> > >
> > > On Tue, Jun 18, 2013 at 12:24 PM, AMILA RANATUNGA <newair007@gmail.com
> > > >wrote:
> > >
> > > > Hi,
> > > >
> > > > Thanks a lot for the replies.
> > > >
> > > > When I tried ..
> > > >
> > > >  OutputParameterType outputParameter =
> > > > OutputParameterType.Factory.newInstance();
> > > >         outputParameter.setParameterName("wps_output");
> > > >         outputParameter.setParameterDescription("wps output");
> > > >         ParameterType outputParaType =
> > > > outputParameter.addNewParameterType();
> > > >         outputParaType.setType(DataType.FILE);
> > > >         outputParaType.setName("FILE");
> > > >         outputParameters.add(outputParameter);
> > > >
> > > > and in the script adding
> > > >
> > > > @echo off
> > > >
> > > > echo wps_output=E:\FYP\Other\outGMLFromAirvata\
> > > > java -jar
> E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar
> > > %1
> > > >
> > > > gave me no errors but the output file was not created. Console just
> > shows
> > > >
> > > >  22:21:29.878 06/18/13  workflowInvoked wps_input=sd  22:21:29.963
> > > 06/18/13
> > > > WPS_invoke invokingService wps_input=sd  22:21:30.2 06/18/13
> WPS_invoke
> > > > workflowInvoked [Workflow is invoked]  22:21:32.550 06/18/13
> WPS_invoke
> > > > receivedResult wps_output=E:\FYP\Other\outGMLFromAirvata\
>  22:21:35.505
> > > > 06/18/13  sendingResult  22:21:36.353 06/18/13  workflowTerminated
> > > Workflow
> > > > finished successfully.  22:21:36.377 06/18/13  sendingResult
> > > >
> > > >
> > > > Where have I gone wrong?
> > > >
> > > >
> > > > Thank You !
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On Tue, Jun 18, 2013 at 7:58 PM, Saminda Wijeratne <
> samindaw@gmail.com
> > > > >wrote:
> > > >
> > > > > Hi Amila,
> > > > >
> > > > > I think benefit of all we'll explain how the output parameters get
> > > values
> > > > > once the application gets executed.
> > > > >
> > > > > Since there is no generic communication framework to communicate
> with
> > > any
> > > > > running program the most intuitive way to determine the output of
> the
> > > > > program is to analyze its output text (i.e. standard output).
> > > > >
> > > > > However in most cases such output text will be of a data
> > > structure/format
> > > > > specific for that program. i.e. Airavata will not know how to
> process
> > > the
> > > > > output data in order to figure-out what data should be returned
> back
> > to
> > > > the
> > > > > user.
> > > > >
> > > > > Therefore we have enabled 2 ways to help Airavata figure that out,
> > > > >
> > > > >    1. Get the whole output text as the output returned from the
> > > program.
> > > > >    This is done by specifying the type of the output parameter as
> > > > > "STD_OUT".
> > > > >    It is the responsibility of whatever the next program (or the
> > user)
> > > > that
> > > > >    this output is passed on to as input to determine how to process
> > the
> > > > >    information in it.
> > > > >    2. Assume the standard output contains set of
> > > > >    "<output_para_name>=<output_value>" values separated by newlines
> > > (just
> > > > > like
> > > > >    what we have in a conventional properties file). Here the
> > > > >    "output_para_name" is the name user gives for the output
> parameter
> > > (in
> > > > > your
> > > > >    case "wps output"). The "output_value" is essentially just a
> piece
> > > of
> > > > > text
> > > > >    which should represent whatever the program intended it to be.
> It
> > is
> > > > > users
> > > > >    responsibility to know what it represents (FILE/URL/INTEGER
> etc.)
> > > and
> > > > >    specify it correctly when defining the output parameters for the
> > > > >    application.
> > > > >
> > > > > The 2nd option above (as you may have imagined) is very impractical
> > > since
> > > > > in almost all programs the standard output would not be of the form
> > of
> > > > set
> > > > > of "<output_para_name>=<output_value>" values. In which case what
> we
> > > > > suggest is to write a wrapper script for your program and let the
> > > script
> > > > > output the data correctly. The idea behind here is that given the
> > > correct
> > > > > input is passed on to it, the script knows how to run your program
> > and
> > > > > understand the output in order to echo the correct
> > > > > "<output_para_name>=<output_value>" values as standard output. Thus
> > > when
> > > > > you add an application to Airavata you will be specifying the path
> to
> > > > this
> > > > > script rather than the actual program so that Airavata will execute
> > > that
> > > > > script instead with the given input.
> > > > >
> > > > > So when you specify "FILE" as the type of the output parameter what
> > it
> > > > > means to Airavata is that there will be a line in the standard
> output
> > > of
> > > > > executing the program which has "wps output=<some_file_path>"
> which I
> > > > > imagine in your case you didn't have.
> > > > >
> > > > > Please feel free to ask questions if I wasn't clear enough.
> > > > >
> > > > > Regards,
> > > > >
> > > > > Saminda
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On Tue, Jun 18, 2013 at 7:57 AM, AMILA RANATUNGA <
> > newair007@gmail.com
> > > > > >wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > How we can write Airavata out put to a file instead in std out. I
> > > tried
> > > > > > something like using API.
> > > > > >
> > > > > > outputParameter.setParameterDescription("wps output");
> > > > > >         ParameterType outputParaType =
> > > > > > outputParameter.addNewParameterType();
> > > > > >
> > > > > > //if I change the STD_OUT to File
> > > > > >
> > > > > >  outputParaType.setType(DataType.FILE);
> > > > > >
> > > > > >
> > > > > > I got the following exception. But  I get the output correctly
> with
> > > the
> > > > > > STD_OUT.  After that how to save it to custom location?
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > <ns:invokingServiceFailed infoModelVersion="2.6"
> > > > > >   xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08">
> > > > > >   <ns:notificationSource
> > > > > > ns:serviceID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > > > > > ns:experimentID="Workflow1_e5a72bea-ee03-45ac-b8ce-33ab559115e7"
> />
> > > > > >   <ns:timestamp>2013-06-18T17:18:18.230+05:30</ns:timestamp>
> > > > > >   <ns:description>Error while invoking provider
> > > > > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> > method.:
> > > > > > org.apache.airavata.gfac.GFacException: Error while invoking
> > provider
> > > > > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> > > > > > method.</ns:description>
> > > > > >   <ns:annotation>
> > > > > >     <stackTrace>org.apache.airavata.gfac.GFacException: Error
> while
> > > > > > invoking provider
> > > org.apache.airavata.gfac.provider.impl.LocalProvider
> > > > > > dispose method.
> > > > > > at
> > org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > > > > > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > > > > > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > > > > > at java.lang.Thread.run(Thread.java:722)
> > > > > > Caused by:
> org.apache.airavata.gfac.provider.GFacProviderException:
> > > > Error
> > > > > > in retrieving results
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > > > > > at
> > org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > > > > > ... 10 more
> > > > > > Caused by: java.lang.Exception: Data for the output parameter
> > > > > 'wps_output'
> > > > > > was not found
> > > > > > at
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > > > > > ... 11 more
> > > > > > </stackTrace>
> > > > > >   </ns:annotation>
> > > > > >   <ns:receiver ns:serviceID="WPS_invoke"
> > > > > > ns:workflowID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > > > > > ns:workflowTimestep="0" ns:workflowNodeID="WPS_invoke" />
> > > > > >   <ns:failure>
> > > > > >     <ns:trace xsi:type="xs:string" xmlns:xs="
> > > > > > http://www.w3.org/2001/XMLSchema"
> > > > > >       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > > > >       xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08
> > > > > > ">org.apache.airavata.gfac.GFacException:
> > > > > > Error while invoking provider
> > > > > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> > method.
> > > > > > at
> > org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > > > > > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > > > > > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > > > > > at java.lang.Thread.run(Thread.java:722)
> > > > > > Caused by:
> org.apache.airavata.gfac.provider.GFacProviderException:
> > > > Error
> > > > > > in retrieving results
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > > > > > at
> > org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > > > > > ... 10 more
> > > > > > Caused by: java.lang.Exception: Data for the output parameter
> > > > > 'wps_output'
> > > > > > was not found
> > > > > > at
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > > > > > ... 11 more
> > > > > > </ns:trace>
> > > > > >   </ns:failure>
> > > > > > </ns:invokingServiceFailed>
> > > > > >
> > > > > >
> > > > > >
> > > > > > Thank You !
> > > > > >
> > > > >
> > > >
> > >
> >
>
>
>
> --
> System Analyst Programmer
> PTI Lab
> Indiana University
>

Re: Writing Airavata output to a FILE

Posted by Lahiru Gunathilake <gl...@gmail.com>.
Hi Amila,

What is your requirement ?

Lahiru


On Tue, Jun 18, 2013 at 1:11 PM, AMILA RANATUNGA <ne...@gmail.com>wrote:

> Hi,
>
> No. Should the application we wrap write the output to a file? What I was
> thinking was Airavata would write the file
> to the specified location when the application writes to the std out.
>
>
> Thank You !
>
>
>
>
>
>
>
> On Tue, Jun 18, 2013 at 10:19 PM, Saminda Wijeratne <samindaw@gmail.com
> >wrote:
>
> > Does executing "java -jar
> > E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar %1" results
> > files inside the location which you specified?
> >
> >
> > On Tue, Jun 18, 2013 at 12:24 PM, AMILA RANATUNGA <newair007@gmail.com
> > >wrote:
> >
> > > Hi,
> > >
> > > Thanks a lot for the replies.
> > >
> > > When I tried ..
> > >
> > >  OutputParameterType outputParameter =
> > > OutputParameterType.Factory.newInstance();
> > >         outputParameter.setParameterName("wps_output");
> > >         outputParameter.setParameterDescription("wps output");
> > >         ParameterType outputParaType =
> > > outputParameter.addNewParameterType();
> > >         outputParaType.setType(DataType.FILE);
> > >         outputParaType.setName("FILE");
> > >         outputParameters.add(outputParameter);
> > >
> > > and in the script adding
> > >
> > > @echo off
> > >
> > > echo wps_output=E:\FYP\Other\outGMLFromAirvata\
> > > java -jar E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar
> > %1
> > >
> > > gave me no errors but the output file was not created. Console just
> shows
> > >
> > >  22:21:29.878 06/18/13  workflowInvoked wps_input=sd  22:21:29.963
> > 06/18/13
> > > WPS_invoke invokingService wps_input=sd  22:21:30.2 06/18/13 WPS_invoke
> > > workflowInvoked [Workflow is invoked]  22:21:32.550 06/18/13 WPS_invoke
> > > receivedResult wps_output=E:\FYP\Other\outGMLFromAirvata\  22:21:35.505
> > > 06/18/13  sendingResult  22:21:36.353 06/18/13  workflowTerminated
> > Workflow
> > > finished successfully.  22:21:36.377 06/18/13  sendingResult
> > >
> > >
> > > Where have I gone wrong?
> > >
> > >
> > > Thank You !
> > >
> > >
> > >
> > >
> > >
> > >
> > > On Tue, Jun 18, 2013 at 7:58 PM, Saminda Wijeratne <samindaw@gmail.com
> > > >wrote:
> > >
> > > > Hi Amila,
> > > >
> > > > I think benefit of all we'll explain how the output parameters get
> > values
> > > > once the application gets executed.
> > > >
> > > > Since there is no generic communication framework to communicate with
> > any
> > > > running program the most intuitive way to determine the output of the
> > > > program is to analyze its output text (i.e. standard output).
> > > >
> > > > However in most cases such output text will be of a data
> > structure/format
> > > > specific for that program. i.e. Airavata will not know how to process
> > the
> > > > output data in order to figure-out what data should be returned back
> to
> > > the
> > > > user.
> > > >
> > > > Therefore we have enabled 2 ways to help Airavata figure that out,
> > > >
> > > >    1. Get the whole output text as the output returned from the
> > program.
> > > >    This is done by specifying the type of the output parameter as
> > > > "STD_OUT".
> > > >    It is the responsibility of whatever the next program (or the
> user)
> > > that
> > > >    this output is passed on to as input to determine how to process
> the
> > > >    information in it.
> > > >    2. Assume the standard output contains set of
> > > >    "<output_para_name>=<output_value>" values separated by newlines
> > (just
> > > > like
> > > >    what we have in a conventional properties file). Here the
> > > >    "output_para_name" is the name user gives for the output parameter
> > (in
> > > > your
> > > >    case "wps output"). The "output_value" is essentially just a piece
> > of
> > > > text
> > > >    which should represent whatever the program intended it to be. It
> is
> > > > users
> > > >    responsibility to know what it represents (FILE/URL/INTEGER etc.)
> > and
> > > >    specify it correctly when defining the output parameters for the
> > > >    application.
> > > >
> > > > The 2nd option above (as you may have imagined) is very impractical
> > since
> > > > in almost all programs the standard output would not be of the form
> of
> > > set
> > > > of "<output_para_name>=<output_value>" values. In which case what we
> > > > suggest is to write a wrapper script for your program and let the
> > script
> > > > output the data correctly. The idea behind here is that given the
> > correct
> > > > input is passed on to it, the script knows how to run your program
> and
> > > > understand the output in order to echo the correct
> > > > "<output_para_name>=<output_value>" values as standard output. Thus
> > when
> > > > you add an application to Airavata you will be specifying the path to
> > > this
> > > > script rather than the actual program so that Airavata will execute
> > that
> > > > script instead with the given input.
> > > >
> > > > So when you specify "FILE" as the type of the output parameter what
> it
> > > > means to Airavata is that there will be a line in the standard output
> > of
> > > > executing the program which has "wps output=<some_file_path>" which I
> > > > imagine in your case you didn't have.
> > > >
> > > > Please feel free to ask questions if I wasn't clear enough.
> > > >
> > > > Regards,
> > > >
> > > > Saminda
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On Tue, Jun 18, 2013 at 7:57 AM, AMILA RANATUNGA <
> newair007@gmail.com
> > > > >wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > How we can write Airavata out put to a file instead in std out. I
> > tried
> > > > > something like using API.
> > > > >
> > > > > outputParameter.setParameterDescription("wps output");
> > > > >         ParameterType outputParaType =
> > > > > outputParameter.addNewParameterType();
> > > > >
> > > > > //if I change the STD_OUT to File
> > > > >
> > > > >  outputParaType.setType(DataType.FILE);
> > > > >
> > > > >
> > > > > I got the following exception. But  I get the output correctly with
> > the
> > > > > STD_OUT.  After that how to save it to custom location?
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > <ns:invokingServiceFailed infoModelVersion="2.6"
> > > > >   xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08">
> > > > >   <ns:notificationSource
> > > > > ns:serviceID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > > > > ns:experimentID="Workflow1_e5a72bea-ee03-45ac-b8ce-33ab559115e7" />
> > > > >   <ns:timestamp>2013-06-18T17:18:18.230+05:30</ns:timestamp>
> > > > >   <ns:description>Error while invoking provider
> > > > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> method.:
> > > > > org.apache.airavata.gfac.GFacException: Error while invoking
> provider
> > > > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> > > > > method.</ns:description>
> > > > >   <ns:annotation>
> > > > >     <stackTrace>org.apache.airavata.gfac.GFacException: Error while
> > > > > invoking provider
> > org.apache.airavata.gfac.provider.impl.LocalProvider
> > > > > dispose method.
> > > > > at
> org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > > > > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > > > > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > > > > at java.lang.Thread.run(Thread.java:722)
> > > > > Caused by: org.apache.airavata.gfac.provider.GFacProviderException:
> > > Error
> > > > > in retrieving results
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > > > > at
> org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > > > > ... 10 more
> > > > > Caused by: java.lang.Exception: Data for the output parameter
> > > > 'wps_output'
> > > > > was not found
> > > > > at
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > > > > ... 11 more
> > > > > </stackTrace>
> > > > >   </ns:annotation>
> > > > >   <ns:receiver ns:serviceID="WPS_invoke"
> > > > > ns:workflowID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > > > > ns:workflowTimestep="0" ns:workflowNodeID="WPS_invoke" />
> > > > >   <ns:failure>
> > > > >     <ns:trace xsi:type="xs:string" xmlns:xs="
> > > > > http://www.w3.org/2001/XMLSchema"
> > > > >       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > > >       xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08
> > > > > ">org.apache.airavata.gfac.GFacException:
> > > > > Error while invoking provider
> > > > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> method.
> > > > > at
> org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > > > > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > > > > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > > > > at java.lang.Thread.run(Thread.java:722)
> > > > > Caused by: org.apache.airavata.gfac.provider.GFacProviderException:
> > > Error
> > > > > in retrieving results
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > > > > at
> org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > > > > ... 10 more
> > > > > Caused by: java.lang.Exception: Data for the output parameter
> > > > 'wps_output'
> > > > > was not found
> > > > > at
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > > > > ... 11 more
> > > > > </ns:trace>
> > > > >   </ns:failure>
> > > > > </ns:invokingServiceFailed>
> > > > >
> > > > >
> > > > >
> > > > > Thank You !
> > > > >
> > > >
> > >
> >
>



-- 
System Analyst Programmer
PTI Lab
Indiana University

Re: Writing Airavata output to a FILE

Posted by AMILA RANATUNGA <ne...@gmail.com>.
Hi,

No. Should the application we wrap write the output to a file? What I was
thinking was Airavata would write the file
to the specified location when the application writes to the std out.


Thank You !







On Tue, Jun 18, 2013 at 10:19 PM, Saminda Wijeratne <sa...@gmail.com>wrote:

> Does executing "java -jar
> E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar %1" results
> files inside the location which you specified?
>
>
> On Tue, Jun 18, 2013 at 12:24 PM, AMILA RANATUNGA <newair007@gmail.com
> >wrote:
>
> > Hi,
> >
> > Thanks a lot for the replies.
> >
> > When I tried ..
> >
> >  OutputParameterType outputParameter =
> > OutputParameterType.Factory.newInstance();
> >         outputParameter.setParameterName("wps_output");
> >         outputParameter.setParameterDescription("wps output");
> >         ParameterType outputParaType =
> > outputParameter.addNewParameterType();
> >         outputParaType.setType(DataType.FILE);
> >         outputParaType.setName("FILE");
> >         outputParameters.add(outputParameter);
> >
> > and in the script adding
> >
> > @echo off
> >
> > echo wps_output=E:\FYP\Other\outGMLFromAirvata\
> > java -jar E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar
> %1
> >
> > gave me no errors but the output file was not created. Console just shows
> >
> >  22:21:29.878 06/18/13  workflowInvoked wps_input=sd  22:21:29.963
> 06/18/13
> > WPS_invoke invokingService wps_input=sd  22:21:30.2 06/18/13 WPS_invoke
> > workflowInvoked [Workflow is invoked]  22:21:32.550 06/18/13 WPS_invoke
> > receivedResult wps_output=E:\FYP\Other\outGMLFromAirvata\  22:21:35.505
> > 06/18/13  sendingResult  22:21:36.353 06/18/13  workflowTerminated
> Workflow
> > finished successfully.  22:21:36.377 06/18/13  sendingResult
> >
> >
> > Where have I gone wrong?
> >
> >
> > Thank You !
> >
> >
> >
> >
> >
> >
> > On Tue, Jun 18, 2013 at 7:58 PM, Saminda Wijeratne <samindaw@gmail.com
> > >wrote:
> >
> > > Hi Amila,
> > >
> > > I think benefit of all we'll explain how the output parameters get
> values
> > > once the application gets executed.
> > >
> > > Since there is no generic communication framework to communicate with
> any
> > > running program the most intuitive way to determine the output of the
> > > program is to analyze its output text (i.e. standard output).
> > >
> > > However in most cases such output text will be of a data
> structure/format
> > > specific for that program. i.e. Airavata will not know how to process
> the
> > > output data in order to figure-out what data should be returned back to
> > the
> > > user.
> > >
> > > Therefore we have enabled 2 ways to help Airavata figure that out,
> > >
> > >    1. Get the whole output text as the output returned from the
> program.
> > >    This is done by specifying the type of the output parameter as
> > > "STD_OUT".
> > >    It is the responsibility of whatever the next program (or the user)
> > that
> > >    this output is passed on to as input to determine how to process the
> > >    information in it.
> > >    2. Assume the standard output contains set of
> > >    "<output_para_name>=<output_value>" values separated by newlines
> (just
> > > like
> > >    what we have in a conventional properties file). Here the
> > >    "output_para_name" is the name user gives for the output parameter
> (in
> > > your
> > >    case "wps output"). The "output_value" is essentially just a piece
> of
> > > text
> > >    which should represent whatever the program intended it to be. It is
> > > users
> > >    responsibility to know what it represents (FILE/URL/INTEGER etc.)
> and
> > >    specify it correctly when defining the output parameters for the
> > >    application.
> > >
> > > The 2nd option above (as you may have imagined) is very impractical
> since
> > > in almost all programs the standard output would not be of the form of
> > set
> > > of "<output_para_name>=<output_value>" values. In which case what we
> > > suggest is to write a wrapper script for your program and let the
> script
> > > output the data correctly. The idea behind here is that given the
> correct
> > > input is passed on to it, the script knows how to run your program and
> > > understand the output in order to echo the correct
> > > "<output_para_name>=<output_value>" values as standard output. Thus
> when
> > > you add an application to Airavata you will be specifying the path to
> > this
> > > script rather than the actual program so that Airavata will execute
> that
> > > script instead with the given input.
> > >
> > > So when you specify "FILE" as the type of the output parameter what it
> > > means to Airavata is that there will be a line in the standard output
> of
> > > executing the program which has "wps output=<some_file_path>" which I
> > > imagine in your case you didn't have.
> > >
> > > Please feel free to ask questions if I wasn't clear enough.
> > >
> > > Regards,
> > >
> > > Saminda
> > >
> > >
> > >
> > >
> > >
> > > On Tue, Jun 18, 2013 at 7:57 AM, AMILA RANATUNGA <newair007@gmail.com
> > > >wrote:
> > >
> > > > Hi,
> > > >
> > > > How we can write Airavata out put to a file instead in std out. I
> tried
> > > > something like using API.
> > > >
> > > > outputParameter.setParameterDescription("wps output");
> > > >         ParameterType outputParaType =
> > > > outputParameter.addNewParameterType();
> > > >
> > > > //if I change the STD_OUT to File
> > > >
> > > >  outputParaType.setType(DataType.FILE);
> > > >
> > > >
> > > > I got the following exception. But  I get the output correctly with
> the
> > > > STD_OUT.  After that how to save it to custom location?
> > > >
> > > >
> > > >
> > > >
> > > > <ns:invokingServiceFailed infoModelVersion="2.6"
> > > >   xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08">
> > > >   <ns:notificationSource
> > > > ns:serviceID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > > > ns:experimentID="Workflow1_e5a72bea-ee03-45ac-b8ce-33ab559115e7" />
> > > >   <ns:timestamp>2013-06-18T17:18:18.230+05:30</ns:timestamp>
> > > >   <ns:description>Error while invoking provider
> > > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.:
> > > > org.apache.airavata.gfac.GFacException: Error while invoking provider
> > > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> > > > method.</ns:description>
> > > >   <ns:annotation>
> > > >     <stackTrace>org.apache.airavata.gfac.GFacException: Error while
> > > > invoking provider
> org.apache.airavata.gfac.provider.impl.LocalProvider
> > > > dispose method.
> > > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > > > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > > > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > > > at java.lang.Thread.run(Thread.java:722)
> > > > Caused by: org.apache.airavata.gfac.provider.GFacProviderException:
> > Error
> > > > in retrieving results
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > > > ... 10 more
> > > > Caused by: java.lang.Exception: Data for the output parameter
> > > 'wps_output'
> > > > was not found
> > > > at
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > > > ... 11 more
> > > > </stackTrace>
> > > >   </ns:annotation>
> > > >   <ns:receiver ns:serviceID="WPS_invoke"
> > > > ns:workflowID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > > > ns:workflowTimestep="0" ns:workflowNodeID="WPS_invoke" />
> > > >   <ns:failure>
> > > >     <ns:trace xsi:type="xs:string" xmlns:xs="
> > > > http://www.w3.org/2001/XMLSchema"
> > > >       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > >       xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08
> > > > ">org.apache.airavata.gfac.GFacException:
> > > > Error while invoking provider
> > > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.
> > > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > > > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > > > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > > > at java.lang.Thread.run(Thread.java:722)
> > > > Caused by: org.apache.airavata.gfac.provider.GFacProviderException:
> > Error
> > > > in retrieving results
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > > > ... 10 more
> > > > Caused by: java.lang.Exception: Data for the output parameter
> > > 'wps_output'
> > > > was not found
> > > > at
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > > > ... 11 more
> > > > </ns:trace>
> > > >   </ns:failure>
> > > > </ns:invokingServiceFailed>
> > > >
> > > >
> > > >
> > > > Thank You !
> > > >
> > >
> >
>

Re: Writing Airavata output to a FILE

Posted by Saminda Wijeratne <sa...@gmail.com>.
Does executing "java -jar
E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar %1" results
files inside the location which you specified?


On Tue, Jun 18, 2013 at 12:24 PM, AMILA RANATUNGA <ne...@gmail.com>wrote:

> Hi,
>
> Thanks a lot for the replies.
>
> When I tried ..
>
>  OutputParameterType outputParameter =
> OutputParameterType.Factory.newInstance();
>         outputParameter.setParameterName("wps_output");
>         outputParameter.setParameterDescription("wps output");
>         ParameterType outputParaType =
> outputParameter.addNewParameterType();
>         outputParaType.setType(DataType.FILE);
>         outputParaType.setName("FILE");
>         outputParameters.add(outputParameter);
>
> and in the script adding
>
> @echo off
>
> echo wps_output=E:\FYP\Other\outGMLFromAirvata\
> java -jar E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar %1
>
> gave me no errors but the output file was not created. Console just shows
>
>  22:21:29.878 06/18/13  workflowInvoked wps_input=sd  22:21:29.963 06/18/13
> WPS_invoke invokingService wps_input=sd  22:21:30.2 06/18/13 WPS_invoke
> workflowInvoked [Workflow is invoked]  22:21:32.550 06/18/13 WPS_invoke
> receivedResult wps_output=E:\FYP\Other\outGMLFromAirvata\  22:21:35.505
> 06/18/13  sendingResult  22:21:36.353 06/18/13  workflowTerminated Workflow
> finished successfully.  22:21:36.377 06/18/13  sendingResult
>
>
> Where have I gone wrong?
>
>
> Thank You !
>
>
>
>
>
>
> On Tue, Jun 18, 2013 at 7:58 PM, Saminda Wijeratne <samindaw@gmail.com
> >wrote:
>
> > Hi Amila,
> >
> > I think benefit of all we'll explain how the output parameters get values
> > once the application gets executed.
> >
> > Since there is no generic communication framework to communicate with any
> > running program the most intuitive way to determine the output of the
> > program is to analyze its output text (i.e. standard output).
> >
> > However in most cases such output text will be of a data structure/format
> > specific for that program. i.e. Airavata will not know how to process the
> > output data in order to figure-out what data should be returned back to
> the
> > user.
> >
> > Therefore we have enabled 2 ways to help Airavata figure that out,
> >
> >    1. Get the whole output text as the output returned from the program.
> >    This is done by specifying the type of the output parameter as
> > "STD_OUT".
> >    It is the responsibility of whatever the next program (or the user)
> that
> >    this output is passed on to as input to determine how to process the
> >    information in it.
> >    2. Assume the standard output contains set of
> >    "<output_para_name>=<output_value>" values separated by newlines (just
> > like
> >    what we have in a conventional properties file). Here the
> >    "output_para_name" is the name user gives for the output parameter (in
> > your
> >    case "wps output"). The "output_value" is essentially just a piece of
> > text
> >    which should represent whatever the program intended it to be. It is
> > users
> >    responsibility to know what it represents (FILE/URL/INTEGER etc.) and
> >    specify it correctly when defining the output parameters for the
> >    application.
> >
> > The 2nd option above (as you may have imagined) is very impractical since
> > in almost all programs the standard output would not be of the form of
> set
> > of "<output_para_name>=<output_value>" values. In which case what we
> > suggest is to write a wrapper script for your program and let the script
> > output the data correctly. The idea behind here is that given the correct
> > input is passed on to it, the script knows how to run your program and
> > understand the output in order to echo the correct
> > "<output_para_name>=<output_value>" values as standard output. Thus when
> > you add an application to Airavata you will be specifying the path to
> this
> > script rather than the actual program so that Airavata will execute that
> > script instead with the given input.
> >
> > So when you specify "FILE" as the type of the output parameter what it
> > means to Airavata is that there will be a line in the standard output of
> > executing the program which has "wps output=<some_file_path>" which I
> > imagine in your case you didn't have.
> >
> > Please feel free to ask questions if I wasn't clear enough.
> >
> > Regards,
> >
> > Saminda
> >
> >
> >
> >
> >
> > On Tue, Jun 18, 2013 at 7:57 AM, AMILA RANATUNGA <newair007@gmail.com
> > >wrote:
> >
> > > Hi,
> > >
> > > How we can write Airavata out put to a file instead in std out. I tried
> > > something like using API.
> > >
> > > outputParameter.setParameterDescription("wps output");
> > >         ParameterType outputParaType =
> > > outputParameter.addNewParameterType();
> > >
> > > //if I change the STD_OUT to File
> > >
> > >  outputParaType.setType(DataType.FILE);
> > >
> > >
> > > I got the following exception. But  I get the output correctly with the
> > > STD_OUT.  After that how to save it to custom location?
> > >
> > >
> > >
> > >
> > > <ns:invokingServiceFailed infoModelVersion="2.6"
> > >   xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08">
> > >   <ns:notificationSource
> > > ns:serviceID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > > ns:experimentID="Workflow1_e5a72bea-ee03-45ac-b8ce-33ab559115e7" />
> > >   <ns:timestamp>2013-06-18T17:18:18.230+05:30</ns:timestamp>
> > >   <ns:description>Error while invoking provider
> > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.:
> > > org.apache.airavata.gfac.GFacException: Error while invoking provider
> > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> > > method.</ns:description>
> > >   <ns:annotation>
> > >     <stackTrace>org.apache.airavata.gfac.GFacException: Error while
> > > invoking provider org.apache.airavata.gfac.provider.impl.LocalProvider
> > > dispose method.
> > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > > at java.lang.Thread.run(Thread.java:722)
> > > Caused by: org.apache.airavata.gfac.provider.GFacProviderException:
> Error
> > > in retrieving results
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > > ... 10 more
> > > Caused by: java.lang.Exception: Data for the output parameter
> > 'wps_output'
> > > was not found
> > > at
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > > ... 11 more
> > > </stackTrace>
> > >   </ns:annotation>
> > >   <ns:receiver ns:serviceID="WPS_invoke"
> > > ns:workflowID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > > ns:workflowTimestep="0" ns:workflowNodeID="WPS_invoke" />
> > >   <ns:failure>
> > >     <ns:trace xsi:type="xs:string" xmlns:xs="
> > > http://www.w3.org/2001/XMLSchema"
> > >       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > >       xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08
> > > ">org.apache.airavata.gfac.GFacException:
> > > Error while invoking provider
> > > org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.
> > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > > at
> > >
> > >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > > at java.lang.Thread.run(Thread.java:722)
> > > Caused by: org.apache.airavata.gfac.provider.GFacProviderException:
> Error
> > > in retrieving results
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > > ... 10 more
> > > Caused by: java.lang.Exception: Data for the output parameter
> > 'wps_output'
> > > was not found
> > > at
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > > at
> > >
> > >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > > ... 11 more
> > > </ns:trace>
> > >   </ns:failure>
> > > </ns:invokingServiceFailed>
> > >
> > >
> > >
> > > Thank You !
> > >
> >
>

Re: Writing Airavata output to a FILE

Posted by AMILA RANATUNGA <ne...@gmail.com>.
Hi,

Thanks a lot for the replies.

When I tried ..

 OutputParameterType outputParameter =
OutputParameterType.Factory.newInstance();
        outputParameter.setParameterName("wps_output");
        outputParameter.setParameterDescription("wps output");
        ParameterType outputParaType =
outputParameter.addNewParameterType();
        outputParaType.setType(DataType.FILE);
        outputParaType.setName("FILE");
        outputParameters.add(outputParameter);

and in the script adding

@echo off

echo wps_output=E:\FYP\Other\outGMLFromAirvata\
java -jar E:\FYP\WPSclient3\out\artifacts\WPSclient3_jar\WPSclient3.jar %1

gave me no errors but the output file was not created. Console just shows

 22:21:29.878 06/18/13  workflowInvoked wps_input=sd  22:21:29.963 06/18/13
WPS_invoke invokingService wps_input=sd  22:21:30.2 06/18/13 WPS_invoke
workflowInvoked [Workflow is invoked]  22:21:32.550 06/18/13 WPS_invoke
receivedResult wps_output=E:\FYP\Other\outGMLFromAirvata\  22:21:35.505
06/18/13  sendingResult  22:21:36.353 06/18/13  workflowTerminated Workflow
finished successfully.  22:21:36.377 06/18/13  sendingResult


Where have I gone wrong?


Thank You !






On Tue, Jun 18, 2013 at 7:58 PM, Saminda Wijeratne <sa...@gmail.com>wrote:

> Hi Amila,
>
> I think benefit of all we'll explain how the output parameters get values
> once the application gets executed.
>
> Since there is no generic communication framework to communicate with any
> running program the most intuitive way to determine the output of the
> program is to analyze its output text (i.e. standard output).
>
> However in most cases such output text will be of a data structure/format
> specific for that program. i.e. Airavata will not know how to process the
> output data in order to figure-out what data should be returned back to the
> user.
>
> Therefore we have enabled 2 ways to help Airavata figure that out,
>
>    1. Get the whole output text as the output returned from the program.
>    This is done by specifying the type of the output parameter as
> "STD_OUT".
>    It is the responsibility of whatever the next program (or the user) that
>    this output is passed on to as input to determine how to process the
>    information in it.
>    2. Assume the standard output contains set of
>    "<output_para_name>=<output_value>" values separated by newlines (just
> like
>    what we have in a conventional properties file). Here the
>    "output_para_name" is the name user gives for the output parameter (in
> your
>    case "wps output"). The "output_value" is essentially just a piece of
> text
>    which should represent whatever the program intended it to be. It is
> users
>    responsibility to know what it represents (FILE/URL/INTEGER etc.) and
>    specify it correctly when defining the output parameters for the
>    application.
>
> The 2nd option above (as you may have imagined) is very impractical since
> in almost all programs the standard output would not be of the form of set
> of "<output_para_name>=<output_value>" values. In which case what we
> suggest is to write a wrapper script for your program and let the script
> output the data correctly. The idea behind here is that given the correct
> input is passed on to it, the script knows how to run your program and
> understand the output in order to echo the correct
> "<output_para_name>=<output_value>" values as standard output. Thus when
> you add an application to Airavata you will be specifying the path to this
> script rather than the actual program so that Airavata will execute that
> script instead with the given input.
>
> So when you specify "FILE" as the type of the output parameter what it
> means to Airavata is that there will be a line in the standard output of
> executing the program which has "wps output=<some_file_path>" which I
> imagine in your case you didn't have.
>
> Please feel free to ask questions if I wasn't clear enough.
>
> Regards,
>
> Saminda
>
>
>
>
>
> On Tue, Jun 18, 2013 at 7:57 AM, AMILA RANATUNGA <newair007@gmail.com
> >wrote:
>
> > Hi,
> >
> > How we can write Airavata out put to a file instead in std out. I tried
> > something like using API.
> >
> > outputParameter.setParameterDescription("wps output");
> >         ParameterType outputParaType =
> > outputParameter.addNewParameterType();
> >
> > //if I change the STD_OUT to File
> >
> >  outputParaType.setType(DataType.FILE);
> >
> >
> > I got the following exception. But  I get the output correctly with the
> > STD_OUT.  After that how to save it to custom location?
> >
> >
> >
> >
> > <ns:invokingServiceFailed infoModelVersion="2.6"
> >   xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08">
> >   <ns:notificationSource
> > ns:serviceID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > ns:experimentID="Workflow1_e5a72bea-ee03-45ac-b8ce-33ab559115e7" />
> >   <ns:timestamp>2013-06-18T17:18:18.230+05:30</ns:timestamp>
> >   <ns:description>Error while invoking provider
> > org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.:
> > org.apache.airavata.gfac.GFacException: Error while invoking provider
> > org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> > method.</ns:description>
> >   <ns:annotation>
> >     <stackTrace>org.apache.airavata.gfac.GFacException: Error while
> > invoking provider org.apache.airavata.gfac.provider.impl.LocalProvider
> > dispose method.
> > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > at
> >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > at java.lang.Thread.run(Thread.java:722)
> > Caused by: org.apache.airavata.gfac.provider.GFacProviderException: Error
> > in retrieving results
> > at
> >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > ... 10 more
> > Caused by: java.lang.Exception: Data for the output parameter
> 'wps_output'
> > was not found
> > at
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > at
> >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > at
> >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > ... 11 more
> > </stackTrace>
> >   </ns:annotation>
> >   <ns:receiver ns:serviceID="WPS_invoke"
> > ns:workflowID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> > ns:workflowTimestep="0" ns:workflowNodeID="WPS_invoke" />
> >   <ns:failure>
> >     <ns:trace xsi:type="xs:string" xmlns:xs="
> > http://www.w3.org/2001/XMLSchema"
> >       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >       xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08
> > ">org.apache.airavata.gfac.GFacException:
> > Error while invoking provider
> > org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.
> > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> > at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> > at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> > at
> >
> >
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> > at
> >
> >
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> > at java.lang.Thread.run(Thread.java:722)
> > Caused by: org.apache.airavata.gfac.provider.GFacProviderException: Error
> > in retrieving results
> > at
> >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> > at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> > ... 10 more
> > Caused by: java.lang.Exception: Data for the output parameter
> 'wps_output'
> > was not found
> > at
> >
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> > at
> >
> >
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> > at
> >
> >
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> > ... 11 more
> > </ns:trace>
> >   </ns:failure>
> > </ns:invokingServiceFailed>
> >
> >
> >
> > Thank You !
> >
>

Re: Writing Airavata output to a FILE

Posted by Saminda Wijeratne <sa...@gmail.com>.
Hi Amila,

I think benefit of all we'll explain how the output parameters get values
once the application gets executed.

Since there is no generic communication framework to communicate with any
running program the most intuitive way to determine the output of the
program is to analyze its output text (i.e. standard output).

However in most cases such output text will be of a data structure/format
specific for that program. i.e. Airavata will not know how to process the
output data in order to figure-out what data should be returned back to the
user.

Therefore we have enabled 2 ways to help Airavata figure that out,

   1. Get the whole output text as the output returned from the program.
   This is done by specifying the type of the output parameter as "STD_OUT".
   It is the responsibility of whatever the next program (or the user) that
   this output is passed on to as input to determine how to process the
   information in it.
   2. Assume the standard output contains set of
   "<output_para_name>=<output_value>" values separated by newlines (just like
   what we have in a conventional properties file). Here the
   "output_para_name" is the name user gives for the output parameter (in your
   case "wps output"). The "output_value" is essentially just a piece of text
   which should represent whatever the program intended it to be. It is users
   responsibility to know what it represents (FILE/URL/INTEGER etc.) and
   specify it correctly when defining the output parameters for the
   application.

The 2nd option above (as you may have imagined) is very impractical since
in almost all programs the standard output would not be of the form of set
of "<output_para_name>=<output_value>" values. In which case what we
suggest is to write a wrapper script for your program and let the script
output the data correctly. The idea behind here is that given the correct
input is passed on to it, the script knows how to run your program and
understand the output in order to echo the correct
"<output_para_name>=<output_value>" values as standard output. Thus when
you add an application to Airavata you will be specifying the path to this
script rather than the actual program so that Airavata will execute that
script instead with the given input.

So when you specify "FILE" as the type of the output parameter what it
means to Airavata is that there will be a line in the standard output of
executing the program which has "wps output=<some_file_path>" which I
imagine in your case you didn't have.

Please feel free to ask questions if I wasn't clear enough.

Regards,

Saminda





On Tue, Jun 18, 2013 at 7:57 AM, AMILA RANATUNGA <ne...@gmail.com>wrote:

> Hi,
>
> How we can write Airavata out put to a file instead in std out. I tried
> something like using API.
>
> outputParameter.setParameterDescription("wps output");
>         ParameterType outputParaType =
> outputParameter.addNewParameterType();
>
> //if I change the STD_OUT to File
>
>  outputParaType.setType(DataType.FILE);
>
>
> I got the following exception. But  I get the output correctly with the
> STD_OUT.  After that how to save it to custom location?
>
>
>
>
> <ns:invokingServiceFailed infoModelVersion="2.6"
>   xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08">
>   <ns:notificationSource
> ns:serviceID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> ns:experimentID="Workflow1_e5a72bea-ee03-45ac-b8ce-33ab559115e7" />
>   <ns:timestamp>2013-06-18T17:18:18.230+05:30</ns:timestamp>
>   <ns:description>Error while invoking provider
> org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.:
> org.apache.airavata.gfac.GFacException: Error while invoking provider
> org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> method.</ns:description>
>   <ns:annotation>
>     <stackTrace>org.apache.airavata.gfac.GFacException: Error while
> invoking provider org.apache.airavata.gfac.provider.impl.LocalProvider
> dispose method.
> at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> at
>
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> at java.lang.Thread.run(Thread.java:722)
> Caused by: org.apache.airavata.gfac.provider.GFacProviderException: Error
> in retrieving results
> at
>
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> ... 10 more
> Caused by: java.lang.Exception: Data for the output parameter 'wps_output'
> was not found
> at
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> at
>
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> at
>
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> ... 11 more
> </stackTrace>
>   </ns:annotation>
>   <ns:receiver ns:serviceID="WPS_invoke"
> ns:workflowID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> ns:workflowTimestep="0" ns:workflowNodeID="WPS_invoke" />
>   <ns:failure>
>     <ns:trace xsi:type="xs:string" xmlns:xs="
> http://www.w3.org/2001/XMLSchema"
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>       xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08
> ">org.apache.airavata.gfac.GFacException:
> Error while invoking provider
> org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.
> at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> at
>
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> at java.lang.Thread.run(Thread.java:722)
> Caused by: org.apache.airavata.gfac.provider.GFacProviderException: Error
> in retrieving results
> at
>
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> ... 10 more
> Caused by: java.lang.Exception: Data for the output parameter 'wps_output'
> was not found
> at
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> at
>
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> at
>
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> ... 11 more
> </ns:trace>
>   </ns:failure>
> </ns:invokingServiceFailed>
>
>
>
> Thank You !
>

Re: Writing Airavata output to a FILE

Posted by Lahiru Gunathilake <gl...@gmail.com>.
What is your output parameter name is it wps_output or wps output ? Please
copy your script here.

Regards
Lahiru


On Tue, Jun 18, 2013 at 7:57 AM, AMILA RANATUNGA <ne...@gmail.com>wrote:

> Hi,
>
> How we can write Airavata out put to a file instead in std out. I tried
> something like using API.
>
> outputParameter.setParameterDescription("wps output");
>         ParameterType outputParaType =
> outputParameter.addNewParameterType();
>
> //if I change the STD_OUT to File
>
>  outputParaType.setType(DataType.FILE);
>
>
> I got the following exception. But  I get the output correctly with the
> STD_OUT.  After that how to save it to custom location?
>
>
>
>
> <ns:invokingServiceFailed infoModelVersion="2.6"
>   xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08">
>   <ns:notificationSource
> ns:serviceID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> ns:experimentID="Workflow1_e5a72bea-ee03-45ac-b8ce-33ab559115e7" />
>   <ns:timestamp>2013-06-18T17:18:18.230+05:30</ns:timestamp>
>   <ns:description>Error while invoking provider
> org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.:
> org.apache.airavata.gfac.GFacException: Error while invoking provider
> org.apache.airavata.gfac.provider.impl.LocalProvider dispose
> method.</ns:description>
>   <ns:annotation>
>     <stackTrace>org.apache.airavata.gfac.GFacException: Error while
> invoking provider org.apache.airavata.gfac.provider.impl.LocalProvider
> dispose method.
> at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> at
>
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> at java.lang.Thread.run(Thread.java:722)
> Caused by: org.apache.airavata.gfac.provider.GFacProviderException: Error
> in retrieving results
> at
>
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> ... 10 more
> Caused by: java.lang.Exception: Data for the output parameter 'wps_output'
> was not found
> at
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> at
>
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> at
>
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> ... 11 more
> </stackTrace>
>   </ns:annotation>
>   <ns:receiver ns:serviceID="WPS_invoke"
> ns:workflowID="Workflow1_e5a72bea_ee03_45ac_b8ce_33ab559115e7"
> ns:workflowTimestep="0" ns:workflowNodeID="WPS_invoke" />
>   <ns:failure>
>     <ns:trace xsi:type="xs:string" xmlns:xs="
> http://www.w3.org/2001/XMLSchema"
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>       xmlns:ns="http://airavata.apache.org/schemas/wft/2011/08
> ">org.apache.airavata.gfac.GFacException:
> Error while invoking provider
> org.apache.airavata.gfac.provider.impl.LocalProvider dispose method.
> at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:102)
> at org.apache.airavata.gfac.GFacAPI.schedule(GFacAPI.java:72)
> at org.apache.airavata.gfac.GFacAPI.submitJob(GFacAPI.java:53)
> at
>
> org.apache.airavata.xbaya.invoker.EmbeddedGFacInvoker.invoke(EmbeddedGFacInvoker.java:330)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.handleWSComponent(WorkflowInterpreter.java:682)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.executeDynamically(WorkflowInterpreter.java:501)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpreter.scheduleDynamically(WorkflowInterpreter.java:186)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.executeWorkflow(WorkflowInterpretorSkeleton.java:385)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton.access$400(WorkflowInterpretorSkeleton.java:78)
> at
>
> org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton$2.run(WorkflowInterpretorSkeleton.java:378)
> at java.lang.Thread.run(Thread.java:722)
> Caused by: org.apache.airavata.gfac.provider.GFacProviderException: Error
> in retrieving results
> at
>
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:138)
> at org.apache.airavata.gfac.GFacAPI.disposeProvider(GFacAPI.java:100)
> ... 10 more
> Caused by: java.lang.Exception: Data for the output parameter 'wps_output'
> was not found
> at
> org.apache.airavata.gfac.utils.OutputUtils.parseStdout(OutputUtils.java:82)
> at
>
> org.apache.airavata.gfac.utils.OutputUtils.fillOutputFromStdout(OutputUtils.java:59)
> at
>
> org.apache.airavata.gfac.provider.impl.LocalProvider.dispose(LocalProvider.java:132)
> ... 11 more
> </ns:trace>
>   </ns:failure>
> </ns:invokingServiceFailed>
>
>
>
> Thank You !
>



-- 
System Analyst Programmer
PTI Lab
Indiana University