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},
|
extra={"event": "image_sweeper_trigger", "job": name},
|
||||||
)
|
)
|
||||||
if wait:
|
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"}
|
return {"job": name, "status": "queued"}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -46,3 +46,31 @@ def test_image_sweeper_run_wait(monkeypatch) -> None:
|
|||||||
svc = ImageSweeperService()
|
svc = ImageSweeperService()
|
||||||
result = svc.run(wait=True)
|
result = svc.run(wait=True)
|
||||||
assert result["status"] == "ok"
|
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