Skip to content

Commit 0c0df7b

Browse files
author
Kay
committed
Add submit(..., pre_post) option
1 parent 46bbaf0 commit 0c0df7b

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

scan/client/scanclient.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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):

scan/version.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
from __future__ import print_function
22

3-
__version__ = '1.9.0'
3+
__version__ = '1.10.0'
44

55
version_history = """
6+
1.10.0 - Support submit(.., pre_post) parameter
67
1.9.0 - Support submit(.., timeline, deadline) parameters
78
1.8.1 - Fix error in requests.HTTPError handling
89
1.8.0 - Set command with 'readback_value'

0 commit comments

Comments
 (0)