Skip to content

Commit dcfc85d

Browse files
committed
Fix challenge image registry updates
1 parent 3f176c6 commit dcfc85d

2 files changed

Lines changed: 14 additions & 7 deletions

File tree

src/platform_network/master/registry.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -653,13 +653,12 @@ def _apply_model_updates(model: Challenge, updates: dict[str, Any]) -> None:
653653
model.metadata_ = metadata
654654
if "image" in updates:
655655
registry, repository, tag, digest = _split_image(updates["image"])
656-
model.image = ChallengeImage(
657-
id=uuid.uuid4(),
658-
registry_name=registry,
659-
repository=repository,
660-
tag=tag,
661-
digest=digest,
662-
)
656+
if model.image is None:
657+
model.image = ChallengeImage(id=uuid.uuid4())
658+
model.image.registry_name = registry
659+
model.image.repository = repository
660+
model.image.tag = tag
661+
model.image.digest = digest
663662
if "resources" in updates:
664663
model.resources = [
665664
ChallengeResource(id=uuid.uuid4(), key=key, value=value)

tests/unit/test_registry_extended.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,14 @@ async def run() -> None:
206206
digest, _ = await registry.create(ChallengeCreate(**digest_payload))
207207
assert digest.image == "ghcr.io/platformnetwork/demo:1.0@sha256:abc123"
208208

209+
updated_digest = await registry.update(
210+
"digest-demo",
211+
ChallengeUpdate(image="ghcr.io/platformnetwork/demo:latest@sha256:abc123"),
212+
)
213+
assert (
214+
updated_digest.image == "ghcr.io/platformnetwork/demo:latest@sha256:abc123"
215+
)
216+
209217
await engine.dispose()
210218

211219
asyncio.run(run())

0 commit comments

Comments
 (0)