@@ -197,7 +197,7 @@ def simulate(self, cmds):
197197 return { 'simulation' : simulation , 'seconds' : seconds }
198198
199199
200- def submit (self , cmds , name = 'UnNamed' , queue = True , timeout = 0 , deadline = None ):
200+ def submit (self , cmds , name = 'UnNamed' , queue = True , timeout = 0 , deadline = None , pre_post = True ):
201201 """Submit scan to scan server for execution
202202
203203 :param cmds: List of commands,
@@ -207,6 +207,7 @@ def submit(self, cmds, name='UnNamed', queue=True, timeout=0, deadline=None):
207207 :param queue: Submit to scan server queue, or execute as soon as possible?
208208 :param timeout: Timeout in seconds after which scan will self-abort
209209 :param deadline: Execution deadline in "yyyy-MM-dd HH:mm:ss" format when scan will self-abort
210+ :param pre_post: Execute pre- and post-scan commands (default: True)
210211
211212 :return: ID of submitted scan
212213
@@ -234,20 +235,20 @@ def submit(self, cmds, name='UnNamed', queue=True, timeout=0, deadline=None):
234235 """
235236 quoted_name = quote (name , '' )
236237 if isinstance (cmds , str ):
237- result = self .__submitScanXML (cmds , quoted_name , queue , timeout , deadline )
238+ result = self .__submitScanXML (cmds , quoted_name , queue , timeout , deadline , pre_post )
238239 elif isinstance (cmds , CommandSequence ):
239- result = self .__submitScanSequence (cmds , quoted_name , queue , timeout , deadline )
240+ result = self .__submitScanSequence (cmds , quoted_name , queue , timeout , deadline , pre_post )
240241 else :
241242 # Warp list, tuple, other iterable
242- result = self .__submitScanSequence (CommandSequence (cmds ), quoted_name , queue , timeout , deadline )
243+ result = self .__submitScanSequence (CommandSequence (cmds ), quoted_name , queue , timeout , deadline , pre_post )
243244
244245 xml = ET .fromstring (result )
245246 if xml .tag != 'id' :
246247 raise Exception ("Expected scan <id>, got <%s>" % xml .tag )
247248 return int (xml .text )
248249
249250
250- def __submitScanXML (self , scanXML , scanName , queue = True , timeout = 0 , deadline = None ):
251+ def __submitScanXML (self , scanXML , scanName , queue = True , timeout = 0 , deadline = None , pre_post = True ):
251252 """Submit scan in raw XML-form.
252253
253254 Using POST {BaseURL}/scan/{scanName}
@@ -258,6 +259,7 @@ def __submitScanXML(self, scanXML, scanName, queue=True, timeout=0, deadline=Non
258259 :param queue: Submit to scan server queue, or execute as soon as possible?
259260 :param timeout: Timeout in seconds after which scan will self-abort
260261 :param deadline: Execution deadline in "yyyy-MM-dd HH:mm:ss" format when scan will self-abort
262+ :param pre_post: Execute pre- and post-scan commands (default: True)
261263
262264 :return: Raw XML for scan ID
263265
@@ -278,23 +280,26 @@ def __submitScanXML(self, scanXML, scanName, queue=True, timeout=0, deadline=Non
278280 flags = True
279281 if deadline is not None and deadline != "0000-00-00 00:00:00" :
280282 url = url + ("&" if flags else "?" ) + "deadline=" + quote (deadline )
283+ if not pre_post :
284+ url = url + ("&" if flags else "?" ) + "pre_post=false"
281285
282286 r = perform_request (url , 'POST' , scanXML )
283287 return r
284288
285289
286- def __submitScanSequence (self , cmdSeq , scanName , queue = True , timeout = 0 , deadline = None ):
290+ def __submitScanSequence (self , cmdSeq , scanName , queue = True , timeout = 0 , deadline = None , pre_post = True ):
287291 """Submit a CommandSequence
288292
289293 :param cmdSeq: :class:`scan.commands.commandsequence.CommandSequence`
290294 :param scanName: The name needed to give the new scan
291295 :param queue: Submit to scan server queue, or execute as soon as possible?
292296 :param timeout: Timeout in seconds after which scan will self-abort
293297 :param deadline: Execution deadline in "yyyy-MM-dd HH:mm:ss" format when scan will self-abort
298+ :param pre_post: Execute pre- and post-scan commands (default: True)
294299
295300 :return: Raw XML for scan ID
296301 """
297- return self .__submitScanXML (cmdSeq .genSCN (),scanName , queue , timeout , deadline )
302+ return self .__submitScanXML (cmdSeq .genSCN (),scanName , queue , timeout , deadline , pre_post )
298303
299304
300305 def scanInfos (self , timeout = 20 ):
0 commit comments