assemblyline-core 4.7.5.dev13__tar.gz → 4.7.5.dev15__tar.gz
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.
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/PKG-INFO +1 -1
- assemblyline_core-4.7.5.dev15/assemblyline_core/VERSION +1 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/expiry/run_expiry.py +27 -20
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core.egg-info/PKG-INFO +1 -1
- assemblyline_core-4.7.5.dev13/assemblyline_core/VERSION +0 -1
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/LICENCE.md +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/README.md +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/alerter/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/alerter/processing.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/alerter/run_alerter.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/archiver/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/archiver/run_archiver.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/badlist_client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/dispatching/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/dispatching/client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/dispatching/dispatcher.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/dispatching/schedules.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/expiry/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/ingester/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/ingester/constants.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/ingester/ingester.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/metrics/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/metrics/es_metrics.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/metrics/helper.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/metrics/metrics_server.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/creator/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/creator/run.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/creator/run_worker.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/loader/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/loader/run.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/loader/run_worker.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/replay.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/safelist_client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/scaler/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/scaler/collection.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/scaler/controllers/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/scaler/controllers/interface.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/scaler/run_scaler.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/scaler/scaler_server.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/server_base.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/signature_client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/submission_client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/tasking_client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/updater/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/updater/helper.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/updater/run_updater.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/vacuum/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/vacuum/crawler.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/vacuum/department_map.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/vacuum/safelist.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/vacuum/stream_map.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/vacuum/worker.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/workflow/__init__.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/workflow/run_workflow.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core.egg-info/SOURCES.txt +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core.egg-info/dependency_links.txt +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core.egg-info/requires.txt +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core.egg-info/top_level.txt +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/setup.cfg +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/setup.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_alerter.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_badlist_client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_expiry.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_replay.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_safelist_client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_scaler.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_scheduler.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_signature_client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_tasking_client.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_vacuum.py +0 -0
- {assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_workflow.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.7.5.dev15
|
|
@@ -27,7 +27,8 @@ if TYPE_CHECKING:
|
|
|
27
27
|
from assemblyline.datastore.collection import ESCollection
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
def file_delete_worker(logger, filestore_urls, file_batch
|
|
30
|
+
def file_delete_worker(logger, filestore_urls, file_batch: list[tuple[str, bool]],
|
|
31
|
+
archive_filestore_urls=None) -> list[tuple[str, bool]]:
|
|
31
32
|
try:
|
|
32
33
|
filestore = FileStore(*filestore_urls)
|
|
33
34
|
if archive_filestore_urls and filestore_urls != archive_filestore_urls:
|
|
@@ -35,37 +36,43 @@ def file_delete_worker(logger, filestore_urls, file_batch, archive_filestore_url
|
|
|
35
36
|
else:
|
|
36
37
|
archivestore = filestore
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
sha256, from_archive = item
|
|
40
|
-
if from_archive:
|
|
41
|
-
archivestore.delete(sha256)
|
|
42
|
-
if not archivestore.exists(sha256):
|
|
43
|
-
return sha256, True
|
|
44
|
-
else:
|
|
45
|
-
filestore.delete(sha256)
|
|
46
|
-
if not filestore.exists(sha256):
|
|
47
|
-
return sha256, False
|
|
48
|
-
return None, None
|
|
49
|
-
|
|
50
|
-
return _file_delete_worker(logger, filestore_delete, file_batch)
|
|
39
|
+
return _file_delete_worker(logger, filestore, archivestore, file_batch)
|
|
51
40
|
|
|
52
41
|
except Exception as error:
|
|
53
42
|
logger.exception("Error in filestore worker: " + str(error))
|
|
54
43
|
return []
|
|
55
44
|
|
|
56
45
|
|
|
57
|
-
|
|
46
|
+
def _confirm_delete(store, from_archive, sha256: str) -> tuple[Optional[str], Optional[bool]]:
|
|
47
|
+
if not store.exists(sha256):
|
|
48
|
+
return sha256, from_archive
|
|
49
|
+
return None, None
|
|
58
50
|
|
|
59
51
|
|
|
60
|
-
def _file_delete_worker(logger,
|
|
52
|
+
def _file_delete_worker(logger, filestore, archivestore, file_batch: list[tuple[str, bool]]) -> list[tuple[str, bool]]:
|
|
61
53
|
finished_files: list[tuple[str, bool]] = []
|
|
62
54
|
try:
|
|
63
|
-
|
|
55
|
+
archive_files = [sha256 for sha256, from_archive in file_batch if from_archive]
|
|
56
|
+
hot_files = [sha256 for sha256, from_archive in file_batch if not from_archive]
|
|
57
|
+
|
|
58
|
+
with ThreadPoolExecutor(16) as pool:
|
|
59
|
+
# Delete the two batches in parallel if needed
|
|
60
|
+
futures = [
|
|
61
|
+
pool.submit(filestore.delete_batch, hot_files),
|
|
62
|
+
pool.submit(archivestore.delete_batch, archive_files),
|
|
63
|
+
]
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
for future in as_completed(futures):
|
|
66
|
+
try:
|
|
67
|
+
future.result()
|
|
68
|
+
except Exception as error:
|
|
69
|
+
logger.exception("Error in filestore worker: " + str(error))
|
|
68
70
|
|
|
71
|
+
# It is CRITICALLY IMPORTANT that we don't delete the file records
|
|
72
|
+
# for files that do exists, confirm that we have actually deleted files
|
|
73
|
+
# before we procede with removing the datastore records
|
|
74
|
+
futures = [pool.submit(_confirm_delete, filestore, False, filename) for filename in hot_files]
|
|
75
|
+
futures.extend(pool.submit(_confirm_delete, archivestore, True, filename) for filename in archive_files)
|
|
69
76
|
for future in as_completed(futures):
|
|
70
77
|
try:
|
|
71
78
|
erased_name, from_archive = future.result()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
4.7.5.dev13
|
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/badlist_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/expiry/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/metrics/helper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/__init__.py
RENAMED
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/replay/replay.py
RENAMED
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/safelist_client.py
RENAMED
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/scaler/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/server_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/tasking_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/updater/helper.py
RENAMED
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/vacuum/__init__.py
RENAMED
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/vacuum/crawler.py
RENAMED
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/vacuum/safelist.py
RENAMED
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/assemblyline_core/vacuum/worker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_safelist_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline_core-4.7.5.dev13 → assemblyline_core-4.7.5.dev15}/test/test_signature_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|