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

Robin Skahjem-Eriksen skahjem-eriksen at stcorp.no
Mon Apr 25 07:28:14 PDT 2016


I will try it out when I get the opportunity.

  

What I would like now is to find a clean way to control the "queue" and update
the status from the outside.

  

Again, are there any efforts to decouple PyWPS into smaller and more well
defined modules, so that a PyWPS user isn't highly restricted in how to
utilize PyWPS for their own use case? This is specifically in relation to
process execution.

  

I find that PyWPS does a lot of helpful work, but I have to give up a lot to
benefit from what PyWPS offers when I don't want to have PyWPS handle the
spawning of the child processes. The only reason for this is how tightly
coupled this functionality is with the rest of 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](mailto:skahjem-eriksen at stcorp.no)  
  
[Address]:  
  
Forskningsparken  
  
Gaustadalléen 21  
  
0349 Oslo  
  
Norway  
  
[W]: [http://www.stcorp.no](https://link.nylas.com/link/6v07k8n8hjy9q0ymu0dlgp
2id/f2ac5f0409664d11ac51862c3418b70b/0?redirect=http%3A%2F%2Fwww.stcorp.no)  
  
[P]:+47 45 911 694  
  
[E]: [info at stcorp.no](mailto:info at stcorp.no)

> On Apr 25 2016, at 3:33 pm, Jachym Cepicky <jachym.cepicky at gmail.com>
wrote:  

>

> Hi,

>

>  

>

> hmm, seems to be related. Could you please try your process with the
65_maxoperations branch? Things a slightly different there. Otherwise, I'll
install nginx and give it a try (I use Apache by default, but nginx seems to
be very popular nowadays)

>

>  

>

> Thank you!

>

>  

>

> J

>

>  

>

> po 25. 4. 2016 v 12:15 odesílatel Robin Skahjem-Eriksen <[skahjem-
eriksen at stcorp.no](mailto:skahjem-eriksen at stcorp.no)> napsal:  

>

>> Thank you Jonas. I managed to derive this information myself before the
weekend, so the xml files are being served with nginx, just need to set the
MIME type and it should work as expected.

>>

>>  

>>

>> However, I believe there is a bug in the pywps code and I can submit an
issue at Github if everyone agrees.

>>

>>  

>>

>> When I run in sync mode, my own application that performs the processing
runs fine. As soon as I try in pywps' async mode, I get a cryptic error at the
line in _handler that does:`subprocess.call(cli_string)`. I do this because I
have my own framework for handling asynchronous processes which is executed as
a child process. The error is as follows:

>>

>>  

>>

>> Traceback (most recent call last):

>>

>>  File "/usr/local/lib/python2.7/runpy.py", line 151, in _run_module_as_main
mod_name, loader, code, fname = _get_module_details(mod_name)

>>

>> File "/usr/local/lib/python2.7/runpy.py", line 101, in _get_module_details
loader = get_loader(mod_name)

>>

>> File "/usr/local/lib/python2.7/pkgutil.py", line 464, in get_loader return
find_loader(fullname)

>>

>> File "/usr/local/lib/python2.7/pkgutil.py", line 475, in find_loader loader
= importer.find_module(fullname)

>>

>> File "/usr/local/lib/python2.7/pkgutil.py", line 184, in find_module path =
[os.path.realpath(self.path)]

>>

>> File "/usr/local/lib/python2.7/posixpath.py", line 376, in realpath return
abspath(path)

>>

>> File "/usr/local/lib/python2.7/posixpath.py", line 364, in abspath cwd =
os.getcwd()

>>

>> OSError: [Errno 2] No such file or directory  

>>

>>  

>>

>> I worked around the problem by adding my own execute method which simply
calls cls.run_process(request, response) as in synchronous mode. I just
removed all the async functionality in the method.

>>

>>  

>>

>> I don't know what the thoughts are on the strong coupling to
multiprocessing from the devs. Is pywps meant to be used without having to
rely on the built-in asynchronous process handling?

>>

>>  

>>

>> I also came accross this SO post, though:

>>

>>  

>>

>> <http://stackoverflow.com/questions/29702157/python-multiprocessing-
manager-list-error-errno-2-no-such-file-or-directory>

>>

>>  

>>

>> Have you given any thought to the ideas the answer is addressing?

>>

>>  

>>

>>  

>>

>> 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](mailto:skahjem-eriksen at stcorp.no)  
  
[Address]:  
  
Forskningsparken  
  
Gaustadalléen 21  
  
0349 Oslo  
  
Norway  
  
[W]: [http://www.stcorp.no](https://link.nylas.com/link/6v07k8n8hjy9q0ymu0dlgp
2id/047ac57a056a4cac9f5850de210bbf7f/0?redirect=http%3A%2F%2Fwww.stcorp.no)  
  
[P]:+47 45 911 694  
  
[E]: [info at stcorp.no](mailto:info at stcorp.no)

>>

>>> On Apr 25 2016, at 10:44 am, Jonas Eberle
<[jonas.eberle at gmx.de](mailto:jonas.eberle at gmx.de)> wrote:  

>>>

>>> Thanks, now I understand your issue. I was a bit confused because you
mentioned the getCapabilities URL related to the ExceptionReport. The URL of
the statusLocation (like
<http://localhost/wps/3c7e38b6-06e0-11e6-8f17-0242ac190008.xml> in your
example) should not be handled by PyWPS at all. Could you define an other
folder for the output files that is not related to /wps at all in your
configuration file? Otherwise it would be useful to see your PyWPS config file
and the config snippets from the webserver you are using.

>>>

>>>  

>>>

>>> Cheers,

>>>

>>> Jonas

>>>

>>>  

>>>

>>> \----- Am 21. Apr 2016 um 17:33 schrieb Robin Skahjem-Eriksen &lt
;[skahjem-eriksen at stcorp.no](mailto:skahjem-eriksen at stcorp.no)>:  

>>>

>>>> Thank you for suggesting a clarification of where we are.

>>>>

>>>>  

>>>>

>>>> You are completely correct, except for the last part:

>>>>

>>>>  

>>>>

>>>> > "If you go afterwards to the URL mentioned in the statusLocation
attribute you should see the process running, failed or succeeded."  

>>>>

>>>>  

>>>>

>>>> This is what I was hoping for, but the problem is that I am getting an
inexplicable exception:

>>>>

>>>>  

>>>>

>>>> <!-- 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>  

>>>>

>>>>  

>>>>

>>>> It looks like the request for the statusLocation URL is handled like a
standard WPS request and not a simple static file request.

>>>>

>>>>  

>>>

>>>  

>>

>> _______________________________________________  
pywps-dev mailing list  
[pywps-dev at lists.osgeo.org](mailto: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/20160425/5ac0c5a2/attachment.html>


More information about the pywps-dev mailing list