feat(coordinator): dispatch versioned runtime leases and reports

This commit is contained in:
2026-10-09 15:18:08 +08:00
parent 4b8f255180
commit 53caafc157
10 changed files with 744 additions and 85 deletions
+7 -1
View File
@@ -331,10 +331,16 @@ NodeAdmission = v1.AdmissionPolicy | AdmissionPolicy | AdmissionRegistry
def admit_manifest(
policy: NodeAdmission | None, manifest: v1.JobManifest | JobManifest, attempt_number: int
) -> None:
if type(manifest) not in (v1.JobManifest, JobManifest):
raise ValueError("unsupported manifest model")
# Copied/constructed values must pass the original strict protocol validators too.
manifest = type(manifest).model_validate(manifest.model_dump(mode="json"))
if isinstance(policy, AdmissionRegistry):
policy.admit(manifest, attempt_number)
elif manifest.schema_version == 1 and type(policy) is v1.AdmissionPolicy:
policy.admit(manifest, attempt_number)
v1.AdmissionPolicy.model_validate(policy.model_dump(mode="json")).admit(
manifest, attempt_number
)
elif manifest.schema_version == 2 and type(policy) is AdmissionPolicy:
policy.admit(manifest, attempt_number)
else: