Skip to content

Commit be0c93d

Browse files
authored
Merge pull request #299 from CybercentreCanada/persistent-service-update
Persistent service update
2 parents bd00c2f + 6754d66 commit be0c93d

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

assemblyline_core/updater/helper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def _get_proprietary_registry_tags(self, server, image_name, auth, verify):
6363
resp = requests.get(url, headers=headers, verify=verify)
6464

6565
if resp.ok:
66-
return [tag['name'] for image in resp.json() for tag in image['tags']]
66+
return [tag['name'] for image in resp.json() if image['tags'] for tag in image['tags']]
6767
return []
6868

6969

assemblyline_core/updater/run_updater.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@
1717
V1ConfigMapVolumeSource, V1Secret, V1LocalObjectReference
1818
from kubernetes import client, config
1919
from kubernetes.client.rest import ApiException
20+
from assemblyline.odm.messages.changes import Operation
2021

2122
from assemblyline.odm.models.service import DockerConfig
23+
from assemblyline.remote.datatypes.events import EventSender
2224
from assemblyline.remote.datatypes.hash import Hash
2325
from assemblyline_core.scaler.controllers.kubernetes_ctl import create_docker_auth_config
2426
from assemblyline_core.server_base import CoreBase
@@ -370,6 +372,7 @@ def __init__(self, redis_persist=None, redis=None, logger=None, datastore=None):
370372

371373
self.container_update: Hash[dict[str, Any]] = Hash('container-update', self.redis_persist)
372374
self.latest_service_tags: Hash[dict[str, str]] = Hash('service-tags', self.redis_persist)
375+
self.service_events = EventSender('changes.services', host=self.redis)
373376

374377
# Prepare a single threaded scheduler
375378
self.scheduler = sched.scheduler()
@@ -431,6 +434,10 @@ def container_updates(self):
431434
operations = [(self.datastore.service_delta.UPDATE_SET, 'version', latest_tag)]
432435
if self.datastore.service_delta.update(service_name, operations):
433436
# Update completed, cleanup
437+
self.service_events.send(service_name, {
438+
'operation': Operation.Modified,
439+
'name': service_name
440+
})
434441
self.log.info(f"Service {service_name} update successful!")
435442
else:
436443
self.log.error(f"Service {service_name} has failed to update because it cannot set "

0 commit comments

Comments
 (0)