[Pywps-dev] PyWPS support for ExecuteResponseLocation, providing process status

Jonas Eberle jonas.eberle at gmx.de
Wed Apr 20 08:00:50 PDT 2016


Can you try the following URL: 
localhost/wps/?service=WPS&request=GetCapabilities 

Cheers, 
Jonas 

----- Am 20. Apr 2016 um 12:38 schrieb Robin Skahjem-Eriksen <skahjem-eriksen at stcorp.no>: 

> I am wondering if I have stumbled upon a bug, if not, I find the response quite
> cryptic:

> request:

> localhost/wps/?service=WPS&request=Execute&Identifier=ipf&version=1.0.0&DataInputs=processor_name=ST_IPF_TESTER;processor_version=01.13;input_selector=time-range;muninn_query=validity_stop
> > 1980-07-03 and validity_start <
> 1980-07-05&status=true&storeExecuteResponse=true

> reponse:

> <!-- PyWPS 4.0.0-alpha2 -->
> <wps:ExecuteResponse xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
> http://schemas.opengis.net/wps/1.0.0/wpsExecute_response.xsd" service="WPS"
> version="1.0.0" xml:lang="en-US"
> serviceInstance="http://localhost/wps?service=WPS&request=GetCapabilities"
> statusLocation="http://localhost/wps/3c7e38b6-06e0-11e6-8f17-0242ac190008.xml">
> <wps:Process wps:processVersion="0.1">
> <ows:Identifier>ipf</ows:Identifier>
> <ows:Title>Generic IPF processor</ows:Title>
> <ows:Abstract>Processors for handling IPF products</ows:Abstract>
> </wps:Process>
> <wps:Status creationTime="2016-04-20T10:11:23Z">
> <wps:ProcessAccepted>PyWPS Process ipf accepted</wps:ProcessAccepted>
> </wps:Status>
> </wps:ExecuteResponse>

> The document (http://localhost/wps?service=WPS&request=GetCapabilities):

> <!-- PyWPS 4.0.0-alpha2 -->
> <ows:ExceptionReport xsi:schemaLocation="http://www.opengis.net/ows/1.1
> http://schemas.opengis.net/ows/1.1.0/owsExceptionReport.xsd" version="1.0.0">
> <ows:Exception exceptionCode="MissingParameterValue" locator="service">
> <ows:ExceptionText>service</ows:ExceptionText>
> </ows:Exception>
> </ows:ExceptionReport>

> I am wondering why the exception is raised, when my Execute request contains the
> service attribute.
> Is this a bug, or am I missing something?

> Med vennlig hilsen / With kind regards,

> Robin Skahjem-Eriksen

> Software developer

> Science [&] Technology AS

> Reg. nr.: 996 229 009 MVA

> [E]: skahjem-eriksen at stcorp.no

> [Address]:

> Forskningsparken

> Gaustadalléen 21

> 0349 Oslo

> Norway

> [W]: http://www.stcorp.no

> [P]:+47 45 911 694

> [E]: info at stcorp.no

>> On Apr 20 2016, at 12:01 pm, Robin Skahjem-Eriksen <skahjem-eriksen at stcorp.no>
>> wrote:
>> Thank you so much for catching that and sharing it with me.

>> Med vennlig hilsen / With kind regards,

>> Robin Skahjem-Eriksen

>> Software developer

>> Science [&] Technology AS

>> Reg. nr.: 996 229 009 MVA

>> [E]: skahjem-eriksen at stcorp.no

>> [Address]:

>> Forskningsparken

>> Gaustadalléen 21

>> 0349 Oslo

>> Norway

>> [W]: http://www.stcorp.no

>> [P]:+47 45 911 694

>> [E]: info at stcorp.no

>>> On Apr 20 2016, at 11:57 am, Jonas Eberle <jonas.eberle at gmx.de> wrote:
>>> You have an error in the request, storeExecuteResponse=true and status=true are
>>> individual attributes of the request, in your example these are data inputs!
>>> Please use & storeExecuteResponse=true & status=true at the end instead using
>>> the semicolon. Using the "old" PyWPS I also embraced the data inputs with
>>> brackets, this leads to less errors in my opinion: DataInputs= [
>>> processor_name=ST_IPF_;processor_version=01.13 ]

>>> Cheers,
>>> Jonas

>>> ----- Am 20. Apr 2016 um 10:05 schrieb Robin Skahjem-Eriksen
>>> <skahjem-eriksen at stcorp.no>:

>>>> Jonas, thank you for your clarification on the request attributes and the
>>>> changes to the WPS spec.

>>>> I have added `status=true`to the execution request in addition to the
>>>> aforementioned attributes, and I still don't get a reponse with any URL to the
>>>> ResponseDocument.

>>>> My request looks like this:

>>>> http://localhost/wps/?service=WPS&request=Execute&Identifier=ipf&version=1.0.0&DataInputs=processor_name=ST_IPF_TESTER;processor_version=01.13;input_selector=time-range;muninn_query=validity_stop
>>>> > 1980-07-03 and validity_start <
>>>> 1980-07-05;storeExecuteResponse=true;status=true

>>>> And the process is defines as such:

>>>> class IPF(Process):
>>>> def __init__(self):
>>>> inputs = [
>>>> LiteralInput(
>>>> 'processor_name',
>>>> 'IPF processor name',
>>>> data_type='string'
>>>> ),
>>>> LiteralInput(
>>>> 'processor_version',
>>>> 'IPF processor version',
>>>> data_type='string'
>>>> ),
>>>> LiteralInput(
>>>> 'input_selector',
>>>> 'SOL input selection',
>>>> data_type='string'
>>>> ),
>>>> LiteralInput(
>>>> 'muninn_query',
>>>> 'Muninn product catalog query string',
>>>> data_type='string'
>>>> ),
>>>> ]
>>>> outputs = [
>>>> LiteralOutput(
>>>> 'ipf_result',
>>>> 'SUCCESS/FAILURE',
>>>> data_type='string'
>>>> )
>>>> ]

>>>> super(IPF, self).__init__(
>>>> self._handler,
>>>> identifier='ipf',
>>>> version='0.1',
>>>> title='Generic IPF processor',
>>>> abstract='Processors for handling IPF products',
>>>> inputs=inputs,
>>>> outputs=outputs,
>>>> store_supported=True,
>>>> status_supported=True
>>>> )

>>>> (.. handler omitted ..)

>>>> Am I missing something?

>>>> Med vennlig hilsen / With kind regards,

>>>> Robin Skahjem-Eriksen

>>>> Software developer

>>>> Science [&] Technology AS

>>>> Reg. nr.: 996 229 009 MVA

>>>> [E]: skahjem-eriksen at stcorp.no

>>>> [Address]:

>>>> Forskningsparken

>>>> Gaustadalléen 21

>>>> 0349 Oslo

>>>> Norway

>>>> [W]: http://www.stcorp.no

>>>> [P]:+47 45 911 694

>>>> [E]: info at stcorp.no

>>>>> On Apr 19 2016, at 9:26 pm, Jonas Eberle <jonas.eberle at gmx.de> wrote:
>>>>> Hi Robin,

>>>>> I guess you're looking for the "statusLocation" attribute of the ExecuteResponse
>>>>> tag. The value of this attribute is the URL to the response document,
>>>>> especially needed when you use asynchronous execution (both, status=true and
>>>>> storeExecuteResponse=true, needed in the execute request). There is no
>>>>> executeResponseLocation element, please see the "Corrigendum for OpenGIS
>>>>> Implementation Standard Web Processing Service (WPS) 1.0.0 (0.0.8)" [1].

>>>>> Best regards,
>>>>> Jonas

>>>>> [1] = http://portal.opengeospatial.org/files/?artifact_id=32766

>>>>> ----- Am 19. Apr 2016 um 11:09 schrieb Robin Skahjem-Eriksen
>>>>> <skahjem-eriksen at stcorp.no>:

>>>>>> I am trying to get pywps working so that a ResponseDocument is used to show the
>>>>>> process status, by having the Execute response provide a URL to the
>>>>>> ResponseDocument, as specified in the WPS 1.0 standard.

>>>>>> I am not sure if pywps actually supports this and if so, the feature is not well
>>>>>> documented. I see that pywps supports serving output files and serving these,
>>>>>> and I was hoping that this could be used to provide the response document.

>>>>>> I initialize a Process object with `store_supported` and `status_supported` set
>>>>>> to `True` and provide `storeExecuteResponse=true` in the GET request. However,
>>>>>> I haven't manged to receive a response containing the `executeResponseLocation`
>>>>>> element, and I cannot find any code in the master branch code base that handles
>>>>>> an `ExecuteResponseLocation`.

>>>>>> Am I missing anything, or is this feature simply not supported by pywps?

>>>>>> Med vennlig hilsen / With kind regards,

>>>>>> Robin Skahjem-Eriksen

>>>>>> Software developer

>>>>>> Science [&] Technology AS

>>>>>> Reg. nr.: 996 229 009 MVA

>>>>>> [E]: skahjem-eriksen at stcorp.no

>>>>>> [Address]:

>>>>>> Forskningsparken

>>>>>> Gaustadalléen 21

>>>>>> 0349 Oslo

>>>>>> Norway

>>>>>> [W]: http://www.stcorp.no

>>>>>> [P]:+47 45 911 694

>>>>>> [E]: info at stcorp.no

>>>>>> _______________________________________________
>>>>>> pywps-dev mailing list
>>>>>> pywps-dev at lists.osgeo.org
>>>>>> http://lists.osgeo.org/mailman/listinfo/pywps-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pywps-dev/attachments/20160420/bf82dc11/attachment-0001.html>


More information about the pywps-dev mailing list