diff --git a/services/mailu/mailu-sync-listener.yaml b/services/mailu/mailu-sync-listener.yaml index cc98107..b3d2acc 100644 --- a/services/mailu/mailu-sync-listener.yaml +++ b/services/mailu/mailu-sync-listener.yaml @@ -30,7 +30,7 @@ spec: app: mailu-sync-listener annotations: vault.hashicorp.com/agent-inject: "true" - atlas.bstein.dev/mailu-sync-rev: "2" + atlas.bstein.dev/mailu-sync-rev: "3" vault.hashicorp.com/role: "mailu-mailserver" vault.hashicorp.com/agent-inject-secret-mailu-db-secret__database: "kv/data/atlas/mailu/mailu-db-secret" vault.hashicorp.com/agent-inject-template-mailu-db-secret__database: | diff --git a/services/mailu/scripts/mailu_sync_listener.py b/services/mailu/scripts/mailu_sync_listener.py index 6ac0da7..4e31c81 100644 --- a/services/mailu/scripts/mailu_sync_listener.py +++ b/services/mailu/scripts/mailu_sync_listener.py @@ -39,12 +39,12 @@ def _run_sync_blocking() -> int: sync_done.set() -def _trigger_sync_async() -> bool: +def _trigger_sync_async(force: bool = False) -> bool: with lock: now = time() if sync_running: return False - if now - last_run < MIN_INTERVAL_SECONDS: + if not force and now - last_run < MIN_INTERVAL_SECONDS: return False thread = threading.Thread(target=_run_sync_blocking, daemon=True) @@ -64,15 +64,17 @@ class Handler(http.server.BaseHTTPRequestHandler): return wait = False + force = False if isinstance(payload, dict): wait = bool(payload.get("wait")) + force = bool(payload.get("force")) if wait: with lock: already_running = sync_running if not already_running: - _trigger_sync_async() + _trigger_sync_async(force=force) sync_done.wait(timeout=WAIT_TIMEOUT_SECONDS) with lock: @@ -87,7 +89,7 @@ class Handler(http.server.BaseHTTPRequestHandler): self.end_headers() return - _trigger_sync_async() + _trigger_sync_async(force=force) self.send_response(202) self.end_headers() diff --git a/services/maintenance/kustomization.yaml b/services/maintenance/kustomization.yaml index e09f6a8..9255d88 100644 --- a/services/maintenance/kustomization.yaml +++ b/services/maintenance/kustomization.yaml @@ -25,7 +25,7 @@ resources: images: - name: registry.bstein.dev/bstein/ariadne - newTag: 0.1.0-1 # {"$imagepolicy": "maintenance:ariadne"} + newTag: 0.1.0-2 # {"$imagepolicy": "maintenance:ariadne"} configMapGenerator: - name: disable-k3s-traefik-script