[Pywps-commits] r468 - in trunk: . pywps pywps/Templates pywps/WPS pywps/processes3

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Mon Apr 7 21:24:44 CEST 2008


Author: jachym
Date: 2008-04-07 21:24:43 +0200 (Mon, 07 Apr 2008)
New Revision: 468

Modified:
   trunk/pywps/InAndOutputs.py
   trunk/pywps/Process.py
   trunk/pywps/Templates/Execute.tmpl
   trunk/pywps/WPS/Execute.py
   trunk/pywps/processes3/buffer.py
   trunk/wps3.py
Log:
bugfixing process status

Modified: trunk/pywps/InAndOutputs.py
===================================================================
--- trunk/pywps/InAndOutputs.py	2008-03-25 05:38:32 UTC (rev 467)
+++ trunk/pywps/InAndOutputs.py	2008-04-07 19:24:43 UTC (rev 468)
@@ -220,9 +220,11 @@
         self.abstract = abstract
         self.metadata = metadata
         self.type = type
-
         return
 
+    def setValue(self,value):
+        self.value = value
+
 class LiteralOutput(Output):
     def __init__(self,identifier,title,abstract=None,
                 metadata=[], uoms=(), dataType = types.StringType, 
@@ -255,6 +257,9 @@
         self.formats = formats
         return
 
+    def setValue(self,value):
+        self.value = value
+
 class BoundingBoxOutput(Output):
     def __init__(self,identifier,title,abstract=None,
                 metadata=[], crss=[]):

Modified: trunk/pywps/Process.py
===================================================================
--- trunk/pywps/Process.py	2008-03-25 05:38:32 UTC (rev 467)
+++ trunk/pywps/Process.py	2008-04-07 19:24:43 UTC (rev 468)
@@ -46,9 +46,12 @@
         self.onStatusChanged()
 
     def onStatusChanged(self):
+        """
+        To be redefined by other methods
+        """
         pass
 
-    def setProcess(self,name,value):
+    def setProcessStatus(self,name,value):
         if name == "processAccepted":
             self.processAccepted = value
         elif name == "processStarted":
@@ -60,8 +63,6 @@
         elif name == "processFailed":
             self.processFailed = value
 
-
-
 class WPSProcess:
     """
     """
@@ -185,7 +186,7 @@
         retcode = p.wait()
 
         if retcode != 0:
-           self.status.setProcess("processFailed", True)
+           self.status.setProcessStatus("processFailed", True)
            self.message("PyWPS stderr: %s\n" % (stderr),True)
            raise Exception("PyWPS could not perform command [%s]:\n%s" % (cmd,stderr))
 
@@ -204,6 +205,12 @@
 
     def getInputValue(self,identifier):
         try:
-            return self.inputs[identifier][value]
+            return self.inputs[identifier].value
         except:
             return None
+
+    def setOutputValue(self,identifier,value):
+        try:
+            return self.outputs[identifier].setValue(value)
+        except:
+            return None

Modified: trunk/pywps/Templates/Execute.tmpl
===================================================================
--- trunk/pywps/Templates/Execute.tmpl	2008-03-25 05:38:32 UTC (rev 467)
+++ trunk/pywps/Templates/Execute.tmpl	2008-04-07 19:24:43 UTC (rev 468)
@@ -14,8 +14,8 @@
         </TMPL_IF>
     </wps:Process>
     <wps:Status creationTime="<TMPL_VAR statustime>">
-        <TMPL_IF processsucceeded>
-        <wps:ProcessSucceeded><TMPL_VAR processsucceeded></wps:ProcessSucceeded>
+        <TMPL_IF processsucc>
+        <wps:ProcessSucceeded><TMPL_VAR processsucc></wps:ProcessSucceeded>
         </TMPL_IF>
         <TMPL_IF processaccepted>
         <wps:ProcessAccepted><TMPL_VAR processaccepted></wps:ProcessAccepted>

Modified: trunk/pywps/WPS/Execute.py
===================================================================
--- trunk/pywps/WPS/Execute.py	2008-03-25 05:38:32 UTC (rev 467)
+++ trunk/pywps/WPS/Execute.py	2008-04-07 19:24:43 UTC (rev 468)
@@ -32,7 +32,7 @@
     """
     accepted = "processaccepted"
     started = "processstarted"
-    succeeded = "processsucceeded"
+    succeeded = "processsucc"
     paused = "processpaused"
     failed = "processfailed"
 
@@ -45,9 +45,7 @@
     percent = 0
     exceptioncode = 0
     locator = 0
-
     percent = 0
-    processstatus = 0
 
     dirsToBeRemoved = []     # directories, which should be removed
 
@@ -103,7 +101,8 @@
         #
         # Status
         #
-        self.setStatus(self.accepted)
+        self.setStatus(self.accepted,"Process %s accepted" %\
+                self.process.identifier)
 
         #
         # lineage
@@ -113,38 +112,24 @@
                 self.wps.inputs['responseform']['responsedocument']['lineage'] == True:
                 self.lineageInputs()
 
-        # FIXME here we are
-        self.response = self.templateProcessor.process(self.template)
 
         # 
         # Execute
         #
-        #
-        # Description
-        #
-        self.processDescription()
+        if  self.wps.inputs["responseform"]["responsedocument"].has_key("status"):
+            if self.wps.inputs["responseform"]["responsedocument"]["status"]:
+                pass
+                #self.splitThreads()
+        self.executeProcess()
 
         #
         # Status
         #
-        self.setStatus(self.accepted)
+        self.setStatus(self.succeeded, 
+                processstatus="PyWPS Process %s successfully calculated" %\
+                self.process.identifier)
 
-        #
-        # lineage
-        #
-        if self.wps.inputs['responseform']['responsedocument']['lineage']:
-            self.lineageInputs()
-
         self.response = self.templateProcessor.process(self.template)
-
-        # 
-        # Execute
-        #
-        if self.wps.inputs["responseform"]["responsedocument"]["status"]:
-            pass
-            #self.splitThreads()
-        self.executeProcess()
-
         return
 
     def initProcess(self):
@@ -246,22 +231,28 @@
         if percent != 0: self.percent = percent 
         if exceptioncode != 0: self.exceptioncode = exceptioncode 
         if locator != 0: self.locator = locator 
+        
 
         # init value
-        self.templateProcessor.set("processstarted", 0)
-        self.templateProcessor.set("processsucceeded", 0)
-        self.templateProcessor.set("processpaused", 0)
-        self.templateProcessor.set("processfailed", 0)
+        self.templateProcessor.set("processstarted",0)
+        self.templateProcessor.set("processsucc",0)
+        self.templateProcessor.set("processpaused",0)
+        self.templateProcessor.set("processfailed",0)
+        self.templateProcessor.set("processaccepted",0)
 
+
         if self.status == self.accepted:
-            self.templateProcessor.set("processaccepted", "true")
+            self.templateProcessor.set("processaccepted",
+                    self.processstatus)
 
         elif self.status == self.started:
             self.templateProcessor.set("processstarted", "true")
             self.templateProcessor.set("percentcompleted", self.percent*100)
 
         elif self.status == self.succeeded:
-            self.templateProcessor.set("processstarted",
+            self.process.status.set(percentDone=100)
+            self.templateProcessor.set("percentcompleted", self.percent)
+            self.templateProcessor.set("processsucc",
                                                 self.processstatus)
 
         elif self.status == self.paused:
@@ -386,8 +377,10 @@
         return serveraddress + "service=WPS&request=GetCapabilities&version="+self.wps.DEFAULT_WPS_VERSION
 
     def onStatusChanged(self):
-        pass
-        print self.process.status
+        """
+        This method is used for redefinition of self.process.status class
+        """
+        self.percent = self.process.status.processCompleted
 
     def initEnv(self):
 

Modified: trunk/pywps/processes3/buffer.py
===================================================================
--- trunk/pywps/processes3/buffer.py	2008-03-25 05:38:32 UTC (rev 467)
+++ trunk/pywps/processes3/buffer.py	2008-04-07 19:24:43 UTC (rev 468)
@@ -34,14 +34,13 @@
 
         self.cmd("g.region -d")
 
-	    	
         self.status.set("Importing data",20)
 	self.cmd("v.in.ogr dsn=%s output=data" %\
                 (self.getInputValue('data')))
             
         self.status.set("Buffering",50)
 	self.cmd("v.buffer input=data output=data_buff buffer=%s scale=1.0 tolerance=0.01" %\
-                (self.GetInputValue('width')))
+                (self.getInputValue('width')))
             	
         self.status.set("Exporting data",90)
 	self.cmd("v.out.ogr type=area format=GML input=data_buff dsn=out.xml  olayer=path.xml")

Modified: trunk/wps3.py
===================================================================
--- trunk/wps3.py	2008-03-25 05:38:32 UTC (rev 467)
+++ trunk/wps3.py	2008-04-07 19:24:43 UTC (rev 468)
@@ -107,7 +107,7 @@
             self.performRequest()
 
         if self.request.response:
-            print "Contet-type: text/xml\n"
+            print "Content-type: text/xml\n"
             print self.request.response
 
         return



More information about the Pywps-commits mailing list