assemblyline-core 4.5.1.dev184__tar.gz → 4.5.1.dev187__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.
Potentially problematic release.
This version of assemblyline-core might be problematic. Click here for more details.
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/PKG-INFO +1 -1
- assemblyline-core-4.5.1.dev187/assemblyline_core/VERSION +1 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/dispatching/client.py +13 -18
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/tasking_client.py +5 -4
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core.egg-info/PKG-INFO +1 -1
- assemblyline-core-4.5.1.dev184/assemblyline_core/VERSION +0 -1
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/LICENCE.md +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/README.md +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/alerter/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/alerter/processing.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/alerter/run_alerter.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/archiver/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/archiver/run_archiver.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/badlist_client.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/dispatching/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/dispatching/__main__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/dispatching/dispatcher.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/dispatching/schedules.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/dispatching/timeout.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/expiry/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/expiry/run_expiry.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/ingester/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/ingester/__main__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/ingester/constants.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/ingester/ingester.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/metrics/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/metrics/es_metrics.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/metrics/helper.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/metrics/metrics_server.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/plumber/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/plumber/run_plumber.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/replay/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/replay/client.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/replay/creator/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/replay/creator/run.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/replay/creator/run_worker.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/replay/loader/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/replay/loader/run.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/replay/loader/run_worker.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/replay/replay.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/safelist_client.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/scaler/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/scaler/collection.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/scaler/controllers/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/scaler/controllers/interface.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/scaler/run_scaler.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/scaler/scaler_server.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/server_base.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/signature_client.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/submission_client.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/updater/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/updater/helper.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/updater/run_updater.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/vacuum/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/vacuum/crawler.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/vacuum/department_map.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/vacuum/safelist.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/vacuum/stream_map.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/vacuum/worker.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/workflow/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/workflow/run_workflow.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core.egg-info/SOURCES.txt +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core.egg-info/dependency_links.txt +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core.egg-info/requires.txt +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core.egg-info/top_level.txt +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/setup.cfg +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/setup.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_alerter.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_badlist_client.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_dispatcher.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_expiry.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_plumber.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_replay.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_safelist_client.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_scaler.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_scheduler.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_signature_client.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_simulation.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_vacuum.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_worker_ingest.py +0 -0
- {assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_worker_submit.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.5.1.dev187
|
|
@@ -254,7 +254,8 @@ class DispatchClient:
|
|
|
254
254
|
|
|
255
255
|
@elasticapm.capture_span(span_type='dispatch_client')
|
|
256
256
|
def service_finished(self, sid: str, result_key: str, result: Result,
|
|
257
|
-
temporary_data: Optional[dict[str, Any]] = None
|
|
257
|
+
temporary_data: Optional[dict[str, Any]] = None,
|
|
258
|
+
version="create"):
|
|
258
259
|
"""Notifies the dispatcher of service completion, and possible new files to dispatch."""
|
|
259
260
|
# Make sure the dispatcher knows we were working on this task
|
|
260
261
|
task_key = ServiceTask.make_key(sid=sid, service_name=result.response.service_name, sha=result.sha256)
|
|
@@ -272,28 +273,22 @@ class DispatchClient:
|
|
|
272
273
|
self.ds.emptyresult.save(result_key, {"expiry_ts": result.expiry_ts})
|
|
273
274
|
else:
|
|
274
275
|
while True:
|
|
275
|
-
old, version = self.ds.result.get_if_exists(result_key, version=True)
|
|
276
|
-
if old:
|
|
277
|
-
if old.expiry_ts and result.expiry_ts:
|
|
278
|
-
result.expiry_ts = max(result.expiry_ts, old.expiry_ts)
|
|
279
|
-
else:
|
|
280
|
-
result.expiry_ts = None
|
|
281
276
|
try:
|
|
282
|
-
if self.ds.result.exists(result_key):
|
|
283
|
-
# A result already exists for this key
|
|
284
|
-
# Regenerate entire result key based on result and modified task (ignore caching)
|
|
285
|
-
task.ignore_cache = True
|
|
286
|
-
result_key = Result.help_build_key(sha256=task.fileinfo.sha256,
|
|
287
|
-
service_name=result.response.service_name,
|
|
288
|
-
service_version=result.response.service_version,
|
|
289
|
-
service_tool_version=result.response.service_tool_version,
|
|
290
|
-
is_empty=False,
|
|
291
|
-
task=task)
|
|
292
|
-
version = "create"
|
|
293
277
|
self.ds.result.save(result_key, result, version=version)
|
|
294
278
|
break
|
|
295
279
|
except VersionConflictException as vce:
|
|
296
280
|
self.log.info(f"Retrying to save results due to version conflict: {str(vce)}")
|
|
281
|
+
# A result already exists for this key
|
|
282
|
+
# Regenerate entire result key based on result and modified task (ignore caching)
|
|
283
|
+
version = "create"
|
|
284
|
+
result.created = now_as_iso()
|
|
285
|
+
task.ignore_cache = True
|
|
286
|
+
result_key = Result.help_build_key(sha256=task.fileinfo.sha256,
|
|
287
|
+
service_name=result.response.service_name,
|
|
288
|
+
service_version=result.response.service_version,
|
|
289
|
+
service_tool_version=result.response.service_tool_version,
|
|
290
|
+
is_empty=False,
|
|
291
|
+
task=task)
|
|
297
292
|
|
|
298
293
|
# Send the result key to any watching systems
|
|
299
294
|
msg = {'status': 'OK', 'cache_key': result_key}
|
|
@@ -24,6 +24,7 @@ from assemblyline.remote.datatypes.events import EventSender, EventWatcher
|
|
|
24
24
|
from assemblyline.remote.datatypes.hash import ExpiringHash
|
|
25
25
|
from assemblyline_core.dispatching.client import DispatchClient
|
|
26
26
|
|
|
27
|
+
|
|
27
28
|
class TaskingClientException(Exception):
|
|
28
29
|
pass
|
|
29
30
|
|
|
@@ -252,7 +253,7 @@ class TaskingClient:
|
|
|
252
253
|
# If we are allowed, try to see if the result has been cached
|
|
253
254
|
if not task.ignore_cache and not service_data.disable_cache:
|
|
254
255
|
# Checking for previous results for this key
|
|
255
|
-
result = self.datastore.result.get_if_exists(result_key)
|
|
256
|
+
result, version = self.datastore.result.get_if_exists(result_key, version=True)
|
|
256
257
|
if result:
|
|
257
258
|
metric_factory.increment('cache_hit')
|
|
258
259
|
if result.result.score:
|
|
@@ -262,8 +263,8 @@ class TaskingClient:
|
|
|
262
263
|
|
|
263
264
|
result.archive_ts = None
|
|
264
265
|
|
|
265
|
-
if task.ttl:
|
|
266
|
-
result.expiry_ts = now_as_iso(task.ttl * 24 * 60 * 60)
|
|
266
|
+
if task.ttl and result.expiry_ts:
|
|
267
|
+
result.expiry_ts = max(result.expiry_ts, now_as_iso(task.ttl * 24 * 60 * 60))
|
|
267
268
|
|
|
268
269
|
# Create a list of files to freshen
|
|
269
270
|
freshen_hashes = [task.fileinfo.sha256]
|
|
@@ -286,7 +287,7 @@ class TaskingClient:
|
|
|
286
287
|
for sha256 in freshen_hashes:
|
|
287
288
|
self.datastore.save_or_freshen_file(sha256, {}, result.expiry_ts, result.classification)
|
|
288
289
|
|
|
289
|
-
self.dispatch_client.service_finished(task.sid, result_key, result)
|
|
290
|
+
self.dispatch_client.service_finished(task.sid, result_key, result, version=version)
|
|
290
291
|
cache_found = True
|
|
291
292
|
|
|
292
293
|
if not cache_found:
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
4.5.1.dev184
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/__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
|
|
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
|
|
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.5.1.dev184 → assemblyline-core-4.5.1.dev187}/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.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/replay/replay.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
|
{assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/assemblyline_core/server_base.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
|
{assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/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
|
{assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_badlist_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_safelist_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_signature_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_worker_ingest.py
RENAMED
|
File without changes
|
{assemblyline-core-4.5.1.dev184 → assemblyline-core-4.5.1.dev187}/test/test_worker_submit.py
RENAMED
|
File without changes
|