assemblyline-core 4.5.0.37__tar.gz → 4.5.0.39__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.

Files changed (88) hide show
  1. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/PKG-INFO +1 -1
  2. assemblyline-core-4.5.0.39/assemblyline_core/VERSION +1 -0
  3. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/replay/creator/run_worker.py +6 -4
  4. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/replay/loader/run.py +3 -1
  5. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/replay/loader/run_worker.py +9 -0
  6. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/tasking_client.py +2 -2
  7. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core.egg-info/PKG-INFO +1 -1
  8. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_replay.py +2 -2
  9. assemblyline-core-4.5.0.37/assemblyline_core/VERSION +0 -1
  10. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/LICENCE.md +0 -0
  11. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/README.md +0 -0
  12. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/__init__.py +0 -0
  13. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/alerter/__init__.py +0 -0
  14. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/alerter/processing.py +0 -0
  15. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/alerter/run_alerter.py +0 -0
  16. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/archiver/__init__.py +0 -0
  17. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/archiver/run_archiver.py +0 -0
  18. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/badlist_client.py +0 -0
  19. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/dispatching/__init__.py +0 -0
  20. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/dispatching/__main__.py +0 -0
  21. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/dispatching/client.py +0 -0
  22. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/dispatching/dispatcher.py +0 -0
  23. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/dispatching/schedules.py +0 -0
  24. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/dispatching/timeout.py +0 -0
  25. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/expiry/__init__.py +0 -0
  26. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/expiry/run_expiry.py +0 -0
  27. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/ingester/__init__.py +0 -0
  28. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/ingester/__main__.py +0 -0
  29. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/ingester/constants.py +0 -0
  30. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/ingester/ingester.py +0 -0
  31. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/metrics/__init__.py +0 -0
  32. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/metrics/es_metrics.py +0 -0
  33. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
  34. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/metrics/helper.py +0 -0
  35. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/metrics/metrics_server.py +0 -0
  36. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
  37. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
  38. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
  39. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/plumber/__init__.py +0 -0
  40. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/plumber/run_plumber.py +0 -0
  41. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/replay/__init__.py +0 -0
  42. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/replay/client.py +0 -0
  43. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/replay/creator/__init__.py +0 -0
  44. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/replay/creator/run.py +0 -0
  45. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/replay/loader/__init__.py +0 -0
  46. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/replay/replay.py +0 -0
  47. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/safelist_client.py +0 -0
  48. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/scaler/__init__.py +0 -0
  49. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/scaler/collection.py +0 -0
  50. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/scaler/controllers/__init__.py +0 -0
  51. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
  52. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/scaler/controllers/interface.py +0 -0
  53. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
  54. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/scaler/run_scaler.py +0 -0
  55. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/scaler/scaler_server.py +0 -0
  56. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/server_base.py +0 -0
  57. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/signature_client.py +0 -0
  58. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/submission_client.py +0 -0
  59. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/updater/__init__.py +0 -0
  60. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/updater/helper.py +0 -0
  61. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/updater/run_updater.py +0 -0
  62. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/vacuum/__init__.py +0 -0
  63. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/vacuum/crawler.py +0 -0
  64. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/vacuum/department_map.py +0 -0
  65. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/vacuum/safelist.py +0 -0
  66. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/vacuum/stream_map.py +0 -0
  67. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/vacuum/worker.py +0 -0
  68. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/workflow/__init__.py +0 -0
  69. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core/workflow/run_workflow.py +0 -0
  70. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core.egg-info/SOURCES.txt +0 -0
  71. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core.egg-info/dependency_links.txt +0 -0
  72. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core.egg-info/requires.txt +0 -0
  73. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/assemblyline_core.egg-info/top_level.txt +0 -0
  74. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/setup.cfg +0 -0
  75. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/setup.py +0 -0
  76. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_alerter.py +0 -0
  77. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_badlist_client.py +0 -0
  78. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_dispatcher.py +0 -0
  79. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_expiry.py +0 -0
  80. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_plumber.py +0 -0
  81. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_safelist_client.py +0 -0
  82. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_scaler.py +0 -0
  83. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_scheduler.py +0 -0
  84. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_signature_client.py +0 -0
  85. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_simulation.py +0 -0
  86. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_vacuum.py +0 -0
  87. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_worker_ingest.py +0 -0
  88. {assemblyline-core-4.5.0.37 → assemblyline-core-4.5.0.39}/test/test_worker_submit.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: assemblyline-core
3
- Version: 4.5.0.37
3
+ Version: 4.5.0.39
4
4
  Summary: Assemblyline 4 - Core components
5
5
  Home-page: https://github.com/CybercentreCanada/assemblyline-core/
6
6
  Author: CCCS Assemblyline development team
@@ -0,0 +1 @@
1
+ 4.5.0.39
@@ -1,6 +1,9 @@
1
1
  import json
2
2
  import os
3
3
 
4
+ from cart import pack_stream
5
+ from io import BytesIO
6
+
4
7
  from assemblyline.filestore import FileStore
5
8
  from assemblyline.common.isotime import now_as_iso
6
9
  from assemblyline_core.replay.client import APIClient, DirectClient
@@ -107,11 +110,10 @@ class ReplayCreatorWorker(ReplayBase):
107
110
  os.makedirs(self.replay_config.creator.working_directory, exist_ok=True)
108
111
 
109
112
  # Create the JSON
110
- json_fn = f"{collection}_{now_as_iso()}.al_json"
111
- json_path = os.path.join(self.replay_config.creator.working_directory, json_fn)
112
- with open(json_path, "w") as fp:
113
- json.dump(batch, fp)
113
+ json_fn = f"{collection}_{now_as_iso()}.al_json.cart"
114
114
  json_path = os.path.join(self.replay_config.creator.working_directory, json_fn)
115
+ with open(json_path, "wb") as fp:
116
+ pack_stream(BytesIO(json.dumps(batch).encode()), fp)
115
117
 
116
118
  # Move the JSON
117
119
  self.filestore.upload(json_path, json_fn)
@@ -50,7 +50,9 @@ class ReplayLoader(ReplayBase):
50
50
  for root, _, files in os.walk(self.replay_config.loader.input_directory, topdown=False):
51
51
  for name in files:
52
52
  # Unexpected files that could be the result of external transfer mechanisms
53
- if name.startswith('.') or not (name.endswith('.al_bundle') or name.endswith('.al_json')):
53
+ if name.startswith('.') or not (name.endswith('.al_bundle') or \
54
+ name.endswith('.al_json') or \
55
+ name.endswith('.al_json.cart')):
54
56
  continue
55
57
 
56
58
  file_path = os.path.join(root, name)
@@ -1,6 +1,8 @@
1
1
  import shutil
2
2
  import os
3
3
 
4
+ from cart import unpack_file
5
+
4
6
  from assemblyline_core.replay.client import APIClient, DirectClient
5
7
  from assemblyline_core.replay.replay import ReplayBase
6
8
 
@@ -34,6 +36,13 @@ class ReplayLoaderWorker(ReplayBase):
34
36
  elif file_path.endswith(".al_json"):
35
37
  self.client.load_json(file_path)
36
38
 
39
+ elif file_path.endswith(".al_json.cart"):
40
+ cart_path = file_path
41
+ file_path = file_path[:-5]
42
+ unpack_file(cart_path, file_path)
43
+ self.client.load_json(file_path)
44
+ os.unlink(cart_path)
45
+
37
46
  if os.path.exists(file_path):
38
47
  os.unlink(file_path)
39
48
  except OSError as e:
@@ -8,7 +8,7 @@ from assemblyline.common import forge
8
8
  from assemblyline.common.constants import SERVICE_STATE_HASH, ServiceStatus
9
9
  from assemblyline.common.dict_utils import flatten, unflatten
10
10
  from assemblyline.common.heuristics import HeuristicHandler, InvalidHeuristicException
11
- from assemblyline.common.isotime import now_as_iso
11
+ from assemblyline.common.isotime import now_as_iso, now_as_utc_datetime
12
12
  from assemblyline.common.threading import APMAwareThreadPoolExecutor
13
13
  from assemblyline.datastore.helper import AssemblylineDatastore
14
14
  from assemblyline.filestore import FileStore
@@ -264,7 +264,7 @@ class TaskingClient:
264
264
  result.archive_ts = None
265
265
 
266
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
+ result.expiry_ts = max(result.expiry_ts, now_as_utc_datetime(task.ttl * 24 * 60 * 60))
268
268
 
269
269
  # Create a list of files to freshen
270
270
  freshen_hashes = [task.fileinfo.sha256]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: assemblyline-core
3
- Version: 4.5.0.37
3
+ Version: 4.5.0.39
4
4
  Summary: Assemblyline 4 - Core components
5
5
  Home-page: https://github.com/CybercentreCanada/assemblyline-core/
6
6
  Author: CCCS Assemblyline development team
@@ -251,8 +251,8 @@ def test_replay_single_data_collection(datastore, creator, creator_worker, loade
251
251
  getattr(creator_worker, f'process_{collection}')(once=True)
252
252
  assert creator_worker.client.queues[collection].length() == 0
253
253
  filename = os.path.join(output_dir,
254
- ([f for f in os.listdir(output_dir) if f.startswith(
255
- collection) and f.endswith('.al_json')] + ["not_found"])[0])
254
+ ([f for f in os.listdir(output_dir) if f.startswith(collection) \
255
+ and f.endswith('.al_json.cart')] + ["not_found"])[0])
256
256
  assert os.path.exists(filename)
257
257
 
258
258
  # Delete the item to test the loading process
@@ -1 +0,0 @@
1
- 4.5.0.37