polyswarm-engine 3.2.1__py2.py3-none-any.whl → 3.2.5__py2.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.
- polyswarm_engine/__init__.py +1 -1
- polyswarm_engine/backend.py +5 -1
- polyswarm_engine/celeryconfig.py +28 -0
- polyswarm_engine/engine.py +2 -2
- polyswarm_engine/log_config.py +1 -1
- {polyswarm_engine-3.2.1.dist-info → polyswarm_engine-3.2.5.dist-info}/METADATA +1 -1
- {polyswarm_engine-3.2.1.dist-info → polyswarm_engine-3.2.5.dist-info}/RECORD +9 -9
- {polyswarm_engine-3.2.1.dist-info → polyswarm_engine-3.2.5.dist-info}/WHEEL +1 -1
- {polyswarm_engine-3.2.1.dist-info → polyswarm_engine-3.2.5.dist-info}/top_level.txt +0 -0
polyswarm_engine/__init__.py
CHANGED
polyswarm_engine/backend.py
CHANGED
|
@@ -46,10 +46,14 @@ class CeleryBackend:
|
|
|
46
46
|
lifecycle=contextlib.nullcontext,
|
|
47
47
|
deliver_func=None,
|
|
48
48
|
deliver_task_name=None,
|
|
49
|
+
backend_kwargs=None,
|
|
49
50
|
):
|
|
50
51
|
# lazy setting the backend
|
|
51
52
|
if CeleryBackend.app is None:
|
|
52
|
-
|
|
53
|
+
config_kwargs: dict = backend_kwargs or {}
|
|
54
|
+
CeleryBackend.app = celery.Celery(
|
|
55
|
+
'polyswarm_engine_celery_backend', config_source=CeleryConfig(**config_kwargs)
|
|
56
|
+
)
|
|
53
57
|
|
|
54
58
|
self.name = name
|
|
55
59
|
self._analyze = analyze
|
polyswarm_engine/celeryconfig.py
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import functools
|
|
2
2
|
import importlib
|
|
3
|
+
import io
|
|
4
|
+
import os
|
|
5
|
+
import sys
|
|
6
|
+
import logging
|
|
3
7
|
|
|
8
|
+
from celery.apps.worker import Worker
|
|
4
9
|
from celery.worker.consumer import mingle, gossip
|
|
5
10
|
from celery.worker.worker import WorkController
|
|
11
|
+
import click
|
|
6
12
|
|
|
7
13
|
import polyswarm_engine.settings
|
|
8
14
|
|
|
15
|
+
logger = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
|
|
9
18
|
# monkey patch to enable -Ofair, the most stable during our tests
|
|
10
19
|
_original_setup_defaults = WorkController.setup_defaults
|
|
11
20
|
@functools.wraps(WorkController.setup_defaults)
|
|
@@ -17,6 +26,25 @@ WorkController.setup_defaults = _new_setup_defaults
|
|
|
17
26
|
mingle.Mingle.compatible_transports = {}
|
|
18
27
|
gossip.Gossip.compatible_transports = {}
|
|
19
28
|
|
|
29
|
+
|
|
30
|
+
# monkey patch to make emit_banner use logging instead of print(sys.__stdout__)
|
|
31
|
+
_original_emit_banner = Worker.emit_banner
|
|
32
|
+
@functools.wraps(Worker.emit_banner)
|
|
33
|
+
def _log_emit_banner(self):
|
|
34
|
+
original_stdout = sys.__stdout__
|
|
35
|
+
sys.__stdout__ = buffer = io.StringIO()
|
|
36
|
+
try:
|
|
37
|
+
_original_emit_banner(self)
|
|
38
|
+
finally:
|
|
39
|
+
sys.__stdout__ = original_stdout
|
|
40
|
+
banner_text = buffer.getvalue()
|
|
41
|
+
if os.getenv('LOG_FORMAT') == 'json':
|
|
42
|
+
# Celery outputs the banner as Cyan via ASCII terminal magic
|
|
43
|
+
banner_text = click.unstyle(banner_text)
|
|
44
|
+
logger.info(banner_text.lstrip())
|
|
45
|
+
Worker.emit_banner = _log_emit_banner
|
|
46
|
+
|
|
47
|
+
|
|
20
48
|
##########################################
|
|
21
49
|
# Celery Configuration
|
|
22
50
|
##########################################
|
polyswarm_engine/engine.py
CHANGED
|
@@ -16,7 +16,7 @@ class EngineManager:
|
|
|
16
16
|
self.config = config or dict()
|
|
17
17
|
self.ctx = dict()
|
|
18
18
|
self.backend: CeleryBackend|None = None
|
|
19
|
-
self.backend_kwargs = dict()
|
|
19
|
+
self.backend_kwargs = backend_kwargs or dict()
|
|
20
20
|
self.cmd = CommandRegistry()
|
|
21
21
|
# in case a lifecycle is not defined, use a nop context manager
|
|
22
22
|
self._lifecycle = lambda: contextlib.nullcontext()
|
|
@@ -42,7 +42,7 @@ class EngineManager:
|
|
|
42
42
|
self._analyze,
|
|
43
43
|
self._head,
|
|
44
44
|
self._lifecycle,
|
|
45
|
-
|
|
45
|
+
backend_kwargs=self.backend_kwargs,
|
|
46
46
|
)
|
|
47
47
|
with self.backend.run() as backend:
|
|
48
48
|
yield backend
|
polyswarm_engine/log_config.py
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
polyswarm_engine/__init__.py,sha256=
|
|
2
|
-
polyswarm_engine/backend.py,sha256=
|
|
1
|
+
polyswarm_engine/__init__.py,sha256=uDtStO5e9V0PUSMGyME5okHnUO_m9tVRV0p1hVM2E6A,838
|
|
2
|
+
polyswarm_engine/backend.py,sha256=ja4taph4bX6xQ5sy_zOUMs8QFbBjXxZsrA1LrdnLcgM,11709
|
|
3
3
|
polyswarm_engine/bidutils.py,sha256=E-Oo7-LCCe5lNnoMKEmVDLW6lErqdkaTPfWoL-9YhJk,2881
|
|
4
4
|
polyswarm_engine/bounty.py,sha256=gAHbApVqz07isKhzVSp4WX9PTic4Z0gTF_Lim9i0GE0,12627
|
|
5
|
-
polyswarm_engine/celeryconfig.py,sha256=
|
|
5
|
+
polyswarm_engine/celeryconfig.py,sha256=7_mgzcegdgg5UOW_Iyach1HdsnpcVKr2uP8DZ9Npk-c,3610
|
|
6
6
|
polyswarm_engine/cli.py,sha256=NwQmK1dFaROlfzrSqvQg5xPJVoDOC1-IWtH2xFrtirY,11278
|
|
7
7
|
polyswarm_engine/command.py,sha256=RwdMpDeCvO0YM-7zKdej6o-8-zw_E8ltqxJ3MQvF2vw,915
|
|
8
8
|
polyswarm_engine/constants.py,sha256=zeQRLSmYZH2kerzj5-S7ogsEloePreS2OsTQIw-lYeI,1379
|
|
9
|
-
polyswarm_engine/engine.py,sha256=
|
|
9
|
+
polyswarm_engine/engine.py,sha256=RRznueYMu3RNbjj6JJcrUaeFWHMWQe53uwzsm5IR4kY,3820
|
|
10
10
|
polyswarm_engine/exceptions.py,sha256=KEffKHrhX-2_ujoF9IBquMF5iq0amqP5uUkxoqkp31E,900
|
|
11
|
-
polyswarm_engine/log_config.py,sha256=
|
|
11
|
+
polyswarm_engine/log_config.py,sha256=NnC4f5ukBW16LoXEskaIb98hi7LGZlOWv2F5OvuZf5A,3584
|
|
12
12
|
polyswarm_engine/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
polyswarm_engine/settings.py,sha256=kqANh7JTMWu8_FOf_5l2tLFANoSM9jDxjnNYMzg5HBA,2179
|
|
14
14
|
polyswarm_engine/typing.py,sha256=Z6nroMW-xsR0uuJuUfsi7IQPEt_ydBa2pYUYTeFqUmI,3685
|
|
15
15
|
polyswarm_engine/utils.py,sha256=2-ghShvJG8jsmNCpS4yv_1FH0r0pg2r67GvQru8v9aE,15492
|
|
16
16
|
polyswarm_engine/wine.py,sha256=f01TEFv5Mvzv4_nGuEo1zYK19CJHAEFqJ4-8rva0xJA,4581
|
|
17
17
|
polyswarm_engine/wsgi.py,sha256=9vv1WR0Rzcz7qYeReUrQw0ESHpK_3VbpMcIbmJiul-Q,4197
|
|
18
|
-
polyswarm_engine-3.2.
|
|
19
|
-
polyswarm_engine-3.2.
|
|
20
|
-
polyswarm_engine-3.2.
|
|
21
|
-
polyswarm_engine-3.2.
|
|
18
|
+
polyswarm_engine-3.2.5.dist-info/METADATA,sha256=3bQCGU-DArbHBpnOXU041sXbov09Ho015vkjqE-bXjU,34303
|
|
19
|
+
polyswarm_engine-3.2.5.dist-info/WHEEL,sha256=Mk1ST5gDzEO5il5kYREiBnzzM469m5sI8ESPl7TRhJY,110
|
|
20
|
+
polyswarm_engine-3.2.5.dist-info/top_level.txt,sha256=iEEYOgxT_azXd38CWlfY_W0xOhxFBzBnwmfe62g96Pk,17
|
|
21
|
+
polyswarm_engine-3.2.5.dist-info/RECORD,,
|
|
File without changes
|