airavata-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lahiru Gunathilake <glah...@gmail.com>
Subject Re: Writing Airavata output to a FILE
Date Tue, 18 Jun 2013 17:22:25 GMT
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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message