image-sweeper: raise on job failure
This commit is contained in:
parent
bf4e73cce7
commit
c01a0fbfc6
@ -194,7 +194,15 @@ class ImageSweeperService:
|
||||
extra={"event": "image_sweeper_trigger", "job": name},
|
||||
)
|
||||
if wait:
|
||||
return self._wait_for_completion(name, settings.image_sweeper_wait_timeout_sec)
|
||||
result = self._wait_for_completion(name, settings.image_sweeper_wait_timeout_sec)
|
||||
status = result.get("status")
|
||||
if status != "ok":
|
||||
logger.error(
|
||||
"image sweeper job incomplete",
|
||||
extra={"event": "image_sweeper_incomplete", "job": name, "status": status},
|
||||
)
|
||||
raise RuntimeError(f"image sweeper job {name} {status}")
|
||||
return result
|
||||
return {"job": name, "status": "queued"}
|
||||
|
||||
|
||||
|
||||
@ -46,3 +46,31 @@ def test_image_sweeper_run_wait(monkeypatch) -> None:
|
||||
svc = ImageSweeperService()
|
||||
result = svc.run(wait=True)
|
||||
assert result["status"] == "ok"
|
||||
|
||||
|
||||
def test_image_sweeper_run_error(monkeypatch) -> None:
|
||||
dummy_settings = types.SimpleNamespace(
|
||||
image_sweeper_namespace="maintenance",
|
||||
image_sweeper_service_account="node-image-sweeper",
|
||||
image_sweeper_job_ttl_sec=3600,
|
||||
image_sweeper_wait_timeout_sec=30.0,
|
||||
)
|
||||
monkeypatch.setattr(sweeper_module, "settings", dummy_settings)
|
||||
|
||||
def fake_post(path, payload):
|
||||
assert path.endswith("/maintenance/jobs")
|
||||
return {"metadata": {"name": "job-1"}}
|
||||
|
||||
def fake_get(_path):
|
||||
return {"status": {"failed": 1}}
|
||||
|
||||
monkeypatch.setattr(sweeper_module, "post_json", fake_post)
|
||||
monkeypatch.setattr(sweeper_module, "get_json", fake_get)
|
||||
|
||||
svc = ImageSweeperService()
|
||||
try:
|
||||
svc.run(wait=True)
|
||||
except RuntimeError as exc:
|
||||
assert "image sweeper job" in str(exc)
|
||||
else:
|
||||
raise AssertionError("expected image sweeper failure to raise")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user