[Pywps-commits] r760 - in branches/pywps-3.0: doc/examples doc/examples/processes pywps pywps/Process pywps/Wps
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Wed Feb 4 12:08:11 CET 2009
Author: jachym
Date: 2009-02-04 12:08:11 +0100 (Wed, 04 Feb 2009)
New Revision: 760
Added:
branches/pywps-3.0/doc/examples/clients/
branches/pywps-3.0/doc/examples/processes/dummyprocess.py
branches/pywps-3.0/doc/examples/processes/ultimatequestionprocess.py
Modified:
branches/pywps-3.0/doc/examples/processes/__init__.py
branches/pywps-3.0/pywps/Process/Process.py
branches/pywps-3.0/pywps/Wps/DescribeProcess.py
branches/pywps-3.0/pywps/Wps/Execute.py
branches/pywps-3.0/pywps/default.cfg
Log:
merged revisions 746:753 from trunk, among otheres, implemented logFile
Copied: branches/pywps-3.0/doc/examples/clients (from rev 753, trunk/doc/examples/clients)
Modified: branches/pywps-3.0/doc/examples/processes/__init__.py
===================================================================
--- branches/pywps-3.0/doc/examples/processes/__init__.py 2009-02-03 14:22:23 UTC (rev 759)
+++ branches/pywps-3.0/doc/examples/processes/__init__.py 2009-02-04 11:08:11 UTC (rev 760)
@@ -1,5 +1,6 @@
"""Example process, which can be used with PyWPS"""
__all__ = ["exampleBufferProcess", "exampleXSLTProcess",
"exampleBufferNoInputsProcess",
- "exampleLosProcess"]
+ "exampleLosProcess",
+ "ultimatequestionprocess","dummyprocess"]
Copied: branches/pywps-3.0/doc/examples/processes/dummyprocess.py (from rev 753, trunk/doc/examples/processes/dummyprocess.py)
Copied: branches/pywps-3.0/doc/examples/processes/ultimatequestionprocess.py (from rev 753, trunk/doc/examples/processes/ultimatequestionprocess.py)
Modified: branches/pywps-3.0/pywps/Process/Process.py
===================================================================
--- branches/pywps-3.0/pywps/Process/Process.py 2009-02-03 14:22:23 UTC (rev 759)
+++ branches/pywps-3.0/pywps/Process/Process.py 2009-02-04 11:08:11 UTC (rev 760)
@@ -106,10 +106,12 @@
lang = None
grassLocation = None
grassMapset = None
+ logFile = None
def __init__(self, identifier, title = None, abstract=None,
metadata=[],profile=[], version=None,
- statusSupported=True, storeSupported=False, grassLocation=None):
+ statusSupported=True, storeSupported=False, grassLocation=None,
+ logFile = sys.stderr):
"""Process initialization. All parameters can be set lately
Mandatory parameters:
@@ -428,8 +430,14 @@
if (type(cmd) == types.StringType):
cmd = cmd.strip().split()
- self.message("PyWPS Cmd: %s\n" % (cmd.__str__()))
+ idx = stdin.find("\n")
+ if 0 < idx <= 60:
+ stdinOut = stdin[:idx]
+ else:
+ stdinOut = stdin[:60]
+ self.message("PyWPS Cmd: %s %s\n" % (cmd.__str__(),stdinOut))
+
try:
subprocessstdin = None
if stdin:
@@ -461,8 +469,8 @@
printed. nothing happen otherwise.
"""
- if self.debug or force:
- sys.stderr.write(msg)
+ if self.debug or force and self.logFile:
+ self.logFile.write(msg)
return
def getInput(self,identifier):
Modified: branches/pywps-3.0/pywps/Wps/DescribeProcess.py
===================================================================
--- branches/pywps-3.0/pywps/Wps/DescribeProcess.py 2009-02-03 14:22:23 UTC (rev 759)
+++ branches/pywps-3.0/pywps/Wps/DescribeProcess.py 2009-02-04 11:08:11 UTC (rev 760)
@@ -43,9 +43,9 @@
try:
self.template = self.templateManager.prepare(self.templateFile)
- except TemplateError:
+ except TemplateError,e:
self.cleanEnv()
- raise self.wps.exceptions.InvalidParameterValue("version")
+ raise self.wps.exceptions.NoApplicableCode(e.__str__())
#
# HEAD
Modified: branches/pywps-3.0/pywps/Wps/Execute.py
===================================================================
--- branches/pywps-3.0/pywps/Wps/Execute.py 2009-02-03 14:22:23 UTC (rev 759)
+++ branches/pywps-3.0/pywps/Wps/Execute.py 2009-02-04 11:08:11 UTC (rev 760)
@@ -25,7 +25,7 @@
from Response import Response
from htmltmpl import TemplateError
-import time,os,sys,tempfile,re,types
+import time,os,sys,tempfile,re,types, ConfigParser
from shutil import copyfile as COPY
from shutil import rmtree as RMTREE
@@ -72,6 +72,7 @@
grass = None
rawDataOutput = None
+ logFile = None
def __init__(self,wps):
@@ -85,11 +86,12 @@
self.process = None
try:
self.template = self.templateManager.prepare(self.templateFile)
- except TemplateError:
+ except TemplateError,e:
self.cleanEnv()
- raise self.wps.exceptions.InvalidParameterValue("version")
+ raise self.wps.exceptions.NoApplicableCode(e.__str__())
# initialization
+ self.setLogFile()
self.statusTime = time.time()
self.pid = os.getpid()
self.status = None
@@ -203,10 +205,8 @@
# redirect stdout, so that apache sends back the response immediately
si = open('/dev/null', 'r')
so = open('/dev/null', 'a+')
- #se = open('/dev/null', 'a+', 0)
os.dup2(si.fileno(), sys.stdin.fileno())
os.dup2(so.fileno(), sys.stdout.fileno())
- #os.dup2(se.fileno(), sys.stderr.fileno())
# attempt to execute
@@ -319,6 +319,7 @@
self.process.wps = self.wps
self.process.status.onStatusChanged = self.onStatusChanged
self.process.debug = self.wps.getConfigValue("server","debug")
+ self.process.logFile = self.logFile
def consolidateInputs(self):
""" Donwload and control input data, defined by the client """
@@ -531,6 +532,11 @@
#self.status == self.succeeded or
self.status == self.failed):
self.printResponse(self.statusFiles)
+
+ if self.status == self.started:
+ print >>sys.stderr, "PyWPS Status [%s][%.1f]: %s" % (self.status,float(self.percent),self.statusMessage)
+ else:
+ print >>sys.stderr, "PyWPS Status [%s]: %s" % (self.status,self.statusMessage)
def lineageInputs(self):
@@ -935,3 +941,24 @@
print f.read()
f.close()
+ def setLogFile(self):
+ """Set self.logFile to sys.stderr or something else
+ """
+
+ # logfile
+ self.logFile = sys.stderr
+ try:
+ self.logFile = self.wps.getConfigValue("server","logFile")
+ if self.logFile:
+ se = open(self.logFile, 'a+', 0)
+ os.dup2(se.fileno(), sys.stderr.fileno())
+ else:
+ self.logFile = sys.stderr
+ except ConfigParser.NoOptionError,e:
+ pass
+ except IOError,e:
+ raise self.wps.exceptions.NoApplicableCode("Logfile IOError: %s" % e.__str__())
+ except Exception, e:
+ raise self.wps.exceptions.NoApplicableCode("Logfile error: %s" % e.__str__())
+
+
Modified: branches/pywps-3.0/pywps/default.cfg
===================================================================
--- branches/pywps-3.0/pywps/default.cfg 2009-02-03 14:22:23 UTC (rev 759)
+++ branches/pywps-3.0/pywps/default.cfg 2009-02-04 11:08:11 UTC (rev 760)
@@ -33,6 +33,7 @@
outputUrl=http://localhost/wps/wpsoutputs
outputPath=/var/www/wps/wpsoutputs
debug=true
+logFile=
[grass]
path=/usr/lib/grass/bin/:/usr/lib/grass/scripts/
More information about the Pywps-commits
mailing list