assemblyline-core 4.5.1.dev108__tar.gz → 4.5.1.dev110__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.dev108 → assemblyline-core-4.5.1.dev110}/PKG-INFO +1 -1
- assemblyline-core-4.5.1.dev110/assemblyline_core/VERSION +1 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/scaler/controllers/docker_ctl.py +12 -6
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/scaler/scaler_server.py +19 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/updater/run_updater.py +22 -3
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core.egg-info/PKG-INFO +1 -1
- assemblyline-core-4.5.1.dev108/assemblyline_core/VERSION +0 -1
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/LICENCE.md +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/README.md +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/alerter/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/alerter/processing.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/alerter/run_alerter.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/archiver/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/archiver/run_archiver.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/badlist_client.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/dispatching/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/dispatching/__main__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/dispatching/client.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/dispatching/dispatcher.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/dispatching/schedules.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/dispatching/timeout.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/expiry/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/expiry/run_expiry.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/ingester/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/ingester/__main__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/ingester/constants.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/ingester/ingester.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/metrics/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/metrics/es_metrics.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/metrics/helper.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/metrics/metrics_server.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/plumber/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/plumber/run_plumber.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/replay/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/replay/client.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/replay/creator/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/replay/creator/run.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/replay/creator/run_worker.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/replay/loader/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/replay/loader/run.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/replay/loader/run_worker.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/replay/replay.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/safelist_client.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/scaler/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/scaler/collection.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/scaler/controllers/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/scaler/controllers/interface.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/scaler/run_scaler.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/server_base.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/signature_client.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/submission_client.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/tasking_client.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/updater/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/updater/helper.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/vacuum/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/vacuum/crawler.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/vacuum/department_map.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/vacuum/safelist.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/vacuum/stream_map.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/vacuum/worker.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/workflow/__init__.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core/workflow/run_workflow.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core.egg-info/SOURCES.txt +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core.egg-info/dependency_links.txt +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core.egg-info/requires.txt +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/assemblyline_core.egg-info/top_level.txt +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/setup.cfg +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/setup.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_alerter.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_badlist_client.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_dispatcher.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_expiry.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_plumber.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_replay.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_safelist_client.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_scaler.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_scheduler.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_signature_client.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_simulation.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_vacuum.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_worker_ingest.py +0 -0
- {assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_worker_submit.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.5.1.dev110
|
|
@@ -191,7 +191,7 @@ class DockerController(ControllerInterface):
|
|
|
191
191
|
# Define environment variables
|
|
192
192
|
env = [f'{_e.name}={_e.value}' for _e in cfg.environment]
|
|
193
193
|
env += [f'{name}={os.environ[name]}' for name in INHERITED_VARIABLES if name in os.environ]
|
|
194
|
-
env += [f'LOG_LEVEL={self.log_level}']
|
|
194
|
+
env += [f'LOG_LEVEL={self.log_level}', f'AL_SERVICE_NAME={service_name}']
|
|
195
195
|
env += [f'{_n}={_v}' for _n, _v in self._service_limited_env[service_name].items()]
|
|
196
196
|
if prof.privileged:
|
|
197
197
|
env.append('PRIVILEGED=true')
|
|
@@ -259,6 +259,15 @@ class DockerController(ControllerInterface):
|
|
|
259
259
|
env += [f'{name}={os.environ[name]}' for name in INHERITED_VARIABLES if name in os.environ]
|
|
260
260
|
env += [f'LOG_LEVEL={self.log_level}', f'AL_SERVICE_NAME={service_name}']
|
|
261
261
|
|
|
262
|
+
healthcheck = {
|
|
263
|
+
'test': ["CMD", "python3", "-m", "assemblyline_v4_service.healthz"],
|
|
264
|
+
'interval': SERVICE_LIVENESS_PERIOD,
|
|
265
|
+
'timeout': SERVICE_LIVENESS_TIMEOUT
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
if 'assemblyline' not in cfg.image:
|
|
269
|
+
healthcheck = None
|
|
270
|
+
|
|
262
271
|
container = self.client.containers.run(
|
|
263
272
|
image=cfg.image,
|
|
264
273
|
name=name,
|
|
@@ -274,12 +283,9 @@ class DockerController(ControllerInterface):
|
|
|
274
283
|
environment=env,
|
|
275
284
|
detach=True,
|
|
276
285
|
# ports=ports,
|
|
277
|
-
healthcheck=
|
|
278
|
-
'test': ["CMD", "python3", "-m", "assemblyline_v4_service.healthz"],
|
|
279
|
-
'interval': SERVICE_LIVENESS_PERIOD,
|
|
280
|
-
'timeout': SERVICE_LIVENESS_TIMEOUT
|
|
281
|
-
}
|
|
286
|
+
healthcheck=healthcheck
|
|
282
287
|
)
|
|
288
|
+
|
|
283
289
|
if core_container:
|
|
284
290
|
self._connect_to_network(container, self.core_network, aliases=[hostname])
|
|
285
291
|
|
|
@@ -452,11 +452,30 @@ class ScalerServer(ThreadedCoreBase):
|
|
|
452
452
|
self._sync_service(service)
|
|
453
453
|
|
|
454
454
|
def sync_services(self):
|
|
455
|
+
last_synced_profiles = None
|
|
455
456
|
while self.running:
|
|
456
457
|
with apm_span(self.apm_client, 'sync_services'):
|
|
457
458
|
self.log.info('Synchronizing service configuration')
|
|
458
459
|
with self.profiles_lock:
|
|
459
460
|
current_services = set(self.profiles.keys())
|
|
461
|
+
|
|
462
|
+
# Check to see if the service is progressing since it's last sync
|
|
463
|
+
if last_synced_profiles:
|
|
464
|
+
for service, profile in self.profiles.items():
|
|
465
|
+
# Assume there was no backlog initially if the service is new since last sync
|
|
466
|
+
last_synced_backlog = 0
|
|
467
|
+
if last_synced_profiles.get(service):
|
|
468
|
+
last_synced_backlog = last_synced_profiles[service].backlog
|
|
469
|
+
|
|
470
|
+
# Check to see if the backlog has increased and if the service has been running since
|
|
471
|
+
if profile.backlog and profile.backlog >= last_synced_backlog and \
|
|
472
|
+
profile.running_instances == 0 and profile.target_instances > 0:
|
|
473
|
+
# Restart the service in an attempt to resolve intermittent issues with container/pod
|
|
474
|
+
self.controller.restart(profile)
|
|
475
|
+
|
|
476
|
+
# Update the last synced profiles for next time
|
|
477
|
+
last_synced_profiles = self.profiles
|
|
478
|
+
|
|
460
479
|
discovered_services: list[str] = []
|
|
461
480
|
|
|
462
481
|
# Get all the service data
|
|
@@ -357,10 +357,24 @@ class KubernetesUpdateInterface:
|
|
|
357
357
|
|
|
358
358
|
if blocking:
|
|
359
359
|
try:
|
|
360
|
+
# Obtain the name of the pod that spawned from the Job
|
|
361
|
+
pod_name = self.api.list_namespaced_pod(namespace=self.namespace,
|
|
362
|
+
label_selector=",".join([f"{k}={v}"
|
|
363
|
+
for k, v in labels.items()]),
|
|
364
|
+
limit=1).items[0].metadata.name
|
|
360
365
|
while not (status.failed or status.succeeded):
|
|
361
366
|
time.sleep(3)
|
|
362
367
|
status = self.batch_api.read_namespaced_job(namespace=self.namespace, name=name,
|
|
363
368
|
_request_timeout=API_TIMEOUT).status
|
|
369
|
+
# Monitor container's waiting status state
|
|
370
|
+
pod_waiting_state = self.api.read_namespaced_pod(name=pod_name, namespace=self.namespace,
|
|
371
|
+
_request_timeout=API_TIMEOUT).status.container_statuses[0].state.waiting
|
|
372
|
+
# Check to see if we've encountered an issue before the container starts
|
|
373
|
+
if pod_waiting_state and pod_waiting_state.reason == "ImagePullBackOff":
|
|
374
|
+
# Delete job and raise exception
|
|
375
|
+
self.batch_api.delete_namespaced_job(name=name, namespace=self.namespace,
|
|
376
|
+
propagation_policy='Background', _request_timeout=API_TIMEOUT)
|
|
377
|
+
raise Exception(pod_waiting_state.message)
|
|
364
378
|
|
|
365
379
|
self.batch_api.delete_namespaced_job(name=name, namespace=self.namespace,
|
|
366
380
|
propagation_policy='Background', _request_timeout=API_TIMEOUT)
|
|
@@ -479,6 +493,13 @@ class ServiceUpdater(ThreadedCoreBase):
|
|
|
479
493
|
image_name, tag_name, auth = get_latest_tag_for_service(
|
|
480
494
|
service, self.config, self.log, prefix="[CI] ")
|
|
481
495
|
|
|
496
|
+
if not tag_name:
|
|
497
|
+
# Fallback to tag alias if we can't find a suitable versioned tag
|
|
498
|
+
self.log.warning("Unable to find a versioned tag for "
|
|
499
|
+
f"{self.config.services.preferred_update_channel} channel. "
|
|
500
|
+
f"Defaulting to '{tag}' tag...")
|
|
501
|
+
tag_name = tag
|
|
502
|
+
|
|
482
503
|
docker_config = dict(image=f"{image_name}:{tag_name}")
|
|
483
504
|
if auth:
|
|
484
505
|
docker_config.update(dict(registry_username=auth['username'],
|
|
@@ -507,12 +528,10 @@ class ServiceUpdater(ThreadedCoreBase):
|
|
|
507
528
|
blocking=True
|
|
508
529
|
)
|
|
509
530
|
|
|
510
|
-
service_key = f"{service_name}_{tag_name.replace('stable', '')}"
|
|
511
|
-
|
|
512
531
|
except Exception as e:
|
|
513
532
|
self.log.error(
|
|
514
533
|
f"[CI] Service {service_name} has failed to install. Install procedure cancelled... [{str(e)}]")
|
|
515
|
-
return
|
|
534
|
+
return f"{service_name}_{str(tag_name).replace('stable', '')}"
|
|
516
535
|
|
|
517
536
|
# Start up installs for services in parallel
|
|
518
537
|
install_threads = []
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
4.5.1.dev108
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/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
|
|
File without changes
|
{assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/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.dev108 → assemblyline-core-4.5.1.dev110}/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
|
{assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/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.dev108 → assemblyline-core-4.5.1.dev110}/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.dev108 → assemblyline-core-4.5.1.dev110}/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.dev108 → assemblyline-core-4.5.1.dev110}/test/test_safelist_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_signature_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_worker_ingest.py
RENAMED
|
File without changes
|
{assemblyline-core-4.5.1.dev108 → assemblyline-core-4.5.1.dev110}/test/test_worker_submit.py
RENAMED
|
File without changes
|