@@ -79,21 +79,25 @@ def execute(self, identifier, wps_request, uuid):
7979 :param uuid: string identifier of the request
8080 """
8181 self ._set_grass ()
82+ process = self .prepare_process_for_execution (identifier )
83+ return self ._parse_and_execute (process , wps_request , uuid )
84+
85+ def prepare_process_for_execution (self , identifier ):
86+ """Prepare the process identified by ``identifier`` for execution.
87+ """
8288 try :
8389 process = self .processes [identifier ]
84-
85- # make deep copy of the process instace
86- # so that processes are not overriding each other
87- # just for execute
88- process = copy .deepcopy (process )
89-
90- workdir = os .path .abspath (config .get_config_value ('server' , 'workdir' ))
91- tempdir = tempfile .mkdtemp (prefix = 'pywps_process_' , dir = workdir )
92- process .set_workdir (tempdir )
9390 except KeyError :
9491 raise InvalidParameterValue ("Unknown process '%r'" % identifier , 'Identifier' )
95-
96- return self ._parse_and_execute (process , wps_request , uuid )
92+ # make deep copy of the process instace
93+ # so that processes are not overriding each other
94+ # just for execute
95+ process = copy .deepcopy (process )
96+ process .service = self
97+ workdir = os .path .abspath (config .get_config_value ('server' , 'workdir' ))
98+ tempdir = tempfile .mkdtemp (prefix = 'pywps_process_' , dir = workdir )
99+ process .set_workdir (tempdir )
100+ return process
97101
98102 def _parse_and_execute (self , process , wps_request , uuid ):
99103 """Parse and execute request
0 commit comments