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

Robin Skahjem-Eriksen skahjem-eriksen at stcorp.no
Mon Apr 25 03:15:35 PDT 2016


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

>>

>>  

>

>  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pywps-dev/attachments/20160425/9f039726/attachment-0001.html>


More information about the pywps-dev mailing list