secator 0.10.1a8__py3-none-any.whl → 0.10.1a10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of secator might be problematic. Click here for more details.

secator/cli.py CHANGED
@@ -118,11 +118,12 @@ for config in sorted(ALL_SCANS, key=lambda x: x['name']):
118
118
  @click.option('-r', '--reload', is_flag=True, help='Autoreload Celery on code changes.')
119
119
  @click.option('-Q', '--queue', type=str, default='', help='Listen to a specific queue.')
120
120
  @click.option('-P', '--pool', type=str, default='eventlet', help='Pool implementation.')
121
+ @click.option('--quiet', is_flag=True, help='Quiet mode.')
121
122
  @click.option('--check', is_flag=True, help='Check if Celery worker is alive.')
122
123
  @click.option('--dev', is_flag=True, help='Start a worker in dev mode (celery multi).')
123
124
  @click.option('--stop', is_flag=True, help='Stop a worker in dev mode (celery multi).')
124
125
  @click.option('--show', is_flag=True, help='Show command (celery multi).')
125
- def worker(hostname, concurrency, reload, queue, pool, check, dev, stop, show):
126
+ def worker(hostname, concurrency, reload, queue, pool, quiet, check, dev, stop, show):
126
127
  """Run a worker."""
127
128
 
128
129
  # Check Celery addon is installed
@@ -152,6 +153,8 @@ def worker(hostname, concurrency, reload, queue, pool, check, dev, stop, show):
152
153
 
153
154
  app_str = 'secator.celery.app'
154
155
  celery = f'{sys.executable} -m celery'
156
+ if quiet:
157
+ celery += ' --quiet'
155
158
 
156
159
  if dev:
157
160
  subcmd = 'stop' if stop else 'show' if show else 'start'
@@ -488,9 +488,8 @@ class Command(Runner):
488
488
 
489
489
  def print_description(self):
490
490
  """Print description"""
491
- if self.sync and not self.has_children:
492
- if self.caller and self.description:
493
- self._print(f'\n[bold gold3]:wrench: {self.description} [dim cyan]({self.config.name})[/][/] ...', rich=True)
491
+ if self.sync and not self.has_children and self.caller and self.description:
492
+ self._print(f'\n[bold gold3]:wrench: {self.description} [dim cyan]({self.config.name})[/][/] ...', rich=True)
494
493
 
495
494
  def print_command(self):
496
495
  """Print command."""
@@ -756,7 +755,7 @@ class Command(Runner):
756
755
 
757
756
  @staticmethod
758
757
  def _validate_chunked_input(self, inputs):
759
- """Command does not suport multiple inputs in non-worker mode. Consider using .delay() instead."""
758
+ """Command does not suport multiple inputs in non-worker mode. Consider running with a remote worker instead."""
760
759
  if len(inputs) > 1 and self.sync and self.file_flag is None:
761
760
  return False
762
761
  return True
secator/runners/task.py CHANGED
@@ -47,6 +47,10 @@ class Task(Runner):
47
47
  opts['context'] = self.context.copy()
48
48
  opts['reports_folder'] = str(self.reports_folder)
49
49
  opts['enable_reports'] = False # Task will handle reports
50
+ opts['enable_duplicate_check'] = False # Task will handle duplicate check
51
+ opts['has_parent'] = False
52
+ opts['skip_if_no_inputs'] = False
53
+ opts['caller'] = 'Task'
50
54
 
51
55
  # Create task signature
52
56
  task_id = str(uuid.uuid4())
@@ -37,14 +37,17 @@ class Workflow(Runner):
37
37
  # Set hooks and reports
38
38
  self.enable_reports = True # Workflow will handle reports
39
39
  self.enable_hooks = False # Celery will handle hooks
40
+
40
41
  # Get hooks
41
42
  hooks = self._hooks.get(Task, {})
42
43
  opts['hooks'] = hooks
43
44
  opts['context'] = self.context.copy()
44
45
  opts['reports_folder'] = str(self.reports_folder)
45
46
  opts['enable_reports'] = False # Workflow will handle reports
47
+ opts['enable_duplicate_check'] = False # Workflow will handle duplicate check
46
48
  opts['has_parent'] = True
47
49
  opts['skip_if_no_inputs'] = True
50
+ opts['caller'] = 'Workflow'
48
51
 
49
52
  # Build task signatures
50
53
  sigs = self.get_tasks(
@@ -73,8 +76,7 @@ class Workflow(Runner):
73
76
  Returns:
74
77
  tuple (List[celery.Signature], List[str]): Celery signatures, Celery task ids.
75
78
  """
76
- from celery import chain, chord
77
- from secator.celery import forward_results
79
+ from celery import chain, group
78
80
  sigs = []
79
81
  for task_name, task_opts in config.items():
80
82
  # Task opts can be None
@@ -88,7 +90,7 @@ class Workflow(Runner):
88
90
  workflow_opts,
89
91
  run_opts
90
92
  )
91
- sig = chord((tasks), forward_results.s().set(queue='results'))
93
+ sig = group(*tasks)
92
94
  elif task_name == '_chain':
93
95
  tasks = self.get_tasks(
94
96
  task_opts,
@@ -107,6 +109,7 @@ class Workflow(Runner):
107
109
 
108
110
  # Create task signature
109
111
  task_id = str(uuid.uuid4())
112
+ opts['context'] = self.context.copy()
110
113
  sig = task.s(inputs, **opts).set(queue=task.profile, task_id=task_id)
111
114
  self.add_subtask(task_id, task_name, task_opts.get('description', ''))
112
115
  self.output_types.extend(task.output_types)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: secator
3
- Version: 0.10.1a8
3
+ Version: 0.10.1a10
4
4
  Summary: The pentester's swiss knife.
5
5
  Project-URL: Homepage, https://github.com/freelabz/secator
6
6
  Project-URL: Issues, https://github.com/freelabz/secator/issues
@@ -3,7 +3,7 @@ secator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  secator/celery.py,sha256=o-8s9TNaApVVeYanok0SzvmGD_zsSMzf55DgERjnUgs,9635
4
4
  secator/celery_signals.py,sha256=iumfx7tTeoavAbHijBtij0JzeIqElxQldNZtuZmFY_U,4456
5
5
  secator/celery_utils.py,sha256=_wcUC42VPUotPhh9YYqbuq0dkARI8_RoCklDlhQL9Jg,8903
6
- secator/cli.py,sha256=3_tTTusW12MCejFgtOeYjiedjrJpyQj_gsCK8FkTMJA,43922
6
+ secator/cli.py,sha256=KweGQaeGaZ53lGsrdmbrHqqHpFrGh8m4KQgARucHHG4,44022
7
7
  secator/config.py,sha256=CdVBh6d4k13SpkQKyHQfMFHgkLypUH07kAKLmCJJO1w,19688
8
8
  secator/decorators.py,sha256=3kYadCz6haIZtnjkFHSRfenTdc6Yu7bHd-0IVjhD72w,13902
9
9
  secator/definitions.py,sha256=gFtLT9fjNtX_1qkiCjNfQyCvYq07IhScsQzX4o20_SE,3084
@@ -71,10 +71,10 @@ secator/runners/__init__.py,sha256=EBbOk37vkBy9p8Hhrbi-2VtM_rTwQ3b-0ggTyiD22cE,2
71
71
  secator/runners/_base.py,sha256=C50WhU1WC8y69kLVqlR-to_ijwzh0Lgkf2j8bVTFy0M,31416
72
72
  secator/runners/_helpers.py,sha256=QhJmdmFdu5XSx3LBFf4Q4Hy2EXS6bLGnJUq8G7C6f68,2410
73
73
  secator/runners/celery.py,sha256=bqvDTTdoHiGRCt0FRvlgFHQ_nsjKMP5P0PzGbwfCj_0,425
74
- secator/runners/command.py,sha256=9AvjZgSXctP8D-ffPCtlnXEiGqTeaD2wVGhiGNuROb0,25469
74
+ secator/runners/command.py,sha256=0iabT_5kXClU7WSD30qT-bAFMJqA2NjRgaT52TZxJO0,25479
75
75
  secator/runners/scan.py,sha256=L-6YfdgeVXjTEHiSriwNVFyBmSCNhHTj-6A7R9lka6c,1532
76
- secator/runners/task.py,sha256=NuAEPtSc13XrA41QShx_R8H5NoSAcvjk-oP7wIlJDLA,1869
77
- secator/runners/workflow.py,sha256=wa82AwsVqxk50xxSXAm3dOjutp2qFSr5Klj5Lot7TFc,3236
76
+ secator/runners/task.py,sha256=LIgcBqORVPG5Kfx6g6RnEni1kgWchMfa3Oo2JEZri1Y,2037
77
+ secator/runners/workflow.py,sha256=AchWBPVKKqmuVGU7ihEzB6kZeVso309YHl7ayeKSbDM,3302
78
78
  secator/scans/__init__.py,sha256=s4Ojsk5CWwyWqHu_A4zaXUL5Hm5L5nCmCHZn7wdD3Io,623
79
79
  secator/serializers/__init__.py,sha256=OP5cmFl77ovgSCW_IDcZ21St2mUt5UK4QHfrsK2KvH8,248
80
80
  secator/serializers/dataclass.py,sha256=RqICpfsYWGjHAACAA2h2jZ_69CFHim4VZwcBqowGMcQ,1010
@@ -109,8 +109,8 @@ secator/tasks/searchsploit.py,sha256=gvtLZbL2hzAZ07Cf0cSj2Qs0GvWK94XyHvoPFsetXu8
109
109
  secator/tasks/subfinder.py,sha256=C6W5NnXT92OUB1aSS9IYseqdI3wDMAz70TOEl8X-o3U,1213
110
110
  secator/tasks/wpscan.py,sha256=cSRwRfJEsZlqt1pVP3jWQ-7XhFfwR3i7FuL1PDRyWBQ,5594
111
111
  secator/workflows/__init__.py,sha256=R_TTyjg9f2Ph2_LYiF0lL07IjTrfRE_zqJzy-N7_WCk,675
112
- secator-0.10.1a8.dist-info/METADATA,sha256=A44X6h4lPlEo3Lk1RP9CGrwc4XA-cYn78iM8KtRVsqI,14726
113
- secator-0.10.1a8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
114
- secator-0.10.1a8.dist-info/entry_points.txt,sha256=lPgsqqUXWgiuGSfKy-se5gHdQlAXIwS_A46NYq7Acic,44
115
- secator-0.10.1a8.dist-info/licenses/LICENSE,sha256=19W5Jsy4WTctNkqmZIqLRV1gTDOp01S3LDj9iSgWaJ0,2867
116
- secator-0.10.1a8.dist-info/RECORD,,
112
+ secator-0.10.1a10.dist-info/METADATA,sha256=HmhproN6mopFeyh4eXD0mvRbPbG0tYD64xKJQBzH2ZI,14727
113
+ secator-0.10.1a10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
114
+ secator-0.10.1a10.dist-info/entry_points.txt,sha256=lPgsqqUXWgiuGSfKy-se5gHdQlAXIwS_A46NYq7Acic,44
115
+ secator-0.10.1a10.dist-info/licenses/LICENSE,sha256=19W5Jsy4WTctNkqmZIqLRV1gTDOp01S3LDj9iSgWaJ0,2867
116
+ secator-0.10.1a10.dist-info/RECORD,,