From 8a1d8ba2840b20c3ae72e2bd94a0df7f4a04b0a2 Mon Sep 17 00:00:00 2001 From: Adam Douglass Date: Fri, 17 Sep 2021 15:16:59 +0000 Subject: [PATCH 1/2] Notify on updates --- assemblyline_core/updater/run_updater.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/assemblyline_core/updater/run_updater.py b/assemblyline_core/updater/run_updater.py index 2aafdd65..4504b26d 100644 --- a/assemblyline_core/updater/run_updater.py +++ b/assemblyline_core/updater/run_updater.py @@ -17,8 +17,10 @@ V1ConfigMapVolumeSource, V1Secret, V1LocalObjectReference from kubernetes import client, config from kubernetes.client.rest import ApiException +from assemblyline.odm.messages.changes import Operation from assemblyline.odm.models.service import DockerConfig +from assemblyline.remote.datatypes.events import EventSender from assemblyline.remote.datatypes.hash import Hash from assemblyline_core.scaler.controllers.kubernetes_ctl import create_docker_auth_config from assemblyline_core.server_base import CoreBase @@ -370,6 +372,7 @@ def __init__(self, redis_persist=None, redis=None, logger=None, datastore=None): self.container_update: Hash[dict[str, Any]] = Hash('container-update', self.redis_persist) self.latest_service_tags: Hash[dict[str, str]] = Hash('service-tags', self.redis_persist) + self.service_events = EventSender('changes.services', host=self.redis) # Prepare a single threaded scheduler self.scheduler = sched.scheduler() @@ -431,6 +434,10 @@ def container_updates(self): operations = [(self.datastore.service_delta.UPDATE_SET, 'version', latest_tag)] if self.datastore.service_delta.update(service_name, operations): # Update completed, cleanup + self.service_events.send(service_name, { + 'operation': Operation.Modified, + 'name': service_name + }) self.log.info(f"Service {service_name} update successful!") else: self.log.error(f"Service {service_name} has failed to update because it cannot set " From 6754d6644d1ee3005c06ad05f61fc6448eed94af Mon Sep 17 00:00:00 2001 From: cccs-rs <62077998+cccs-rs@users.noreply.github.com> Date: Mon, 20 Sep 2021 14:18:16 +0000 Subject: [PATCH 2/2] hotfix - image with no tags --- assemblyline_core/updater/helper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assemblyline_core/updater/helper.py b/assemblyline_core/updater/helper.py index 9cd2e5fd..15741cc9 100644 --- a/assemblyline_core/updater/helper.py +++ b/assemblyline_core/updater/helper.py @@ -63,7 +63,7 @@ def _get_proprietary_registry_tags(self, server, image_name, auth, verify): resp = requests.get(url, headers=headers, verify=verify) if resp.ok: - return [tag['name'] for image in resp.json() for tag in image['tags']] + return [tag['name'] for image in resp.json() if image['tags'] for tag in image['tags']] return []