fix(windows99): accept scoped vmx alias confirmations
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 1m14s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 1m14s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
This commit is contained in:
@@ -298,8 +298,16 @@ def _build_projected_scoped_relink_dry_run_plan(
|
||||
locator: dict[str, Any],
|
||||
packet: dict[str, Any],
|
||||
) -> dict[str, Any]:
|
||||
target_aliases = _strings(locator.get("target_vm_aliases"))
|
||||
missing_aliases = _strings(locator.get("missing_vmx_aliases")) or target_aliases
|
||||
submitted_aliases = _strings(packet.get("target_vm_aliases"))
|
||||
locator_target_aliases = _strings(locator.get("target_vm_aliases"))
|
||||
target_aliases = (
|
||||
submitted_aliases if accepted and submitted_aliases else locator_target_aliases
|
||||
)
|
||||
missing_aliases = (
|
||||
submitted_aliases
|
||||
if accepted and submitted_aliases
|
||||
else _strings(locator.get("missing_vmx_aliases")) or target_aliases
|
||||
)
|
||||
evidence_ref = (
|
||||
str(packet.get("candidate_identity_evidence_ref") or "").strip()
|
||||
if accepted
|
||||
@@ -403,7 +411,14 @@ def validate_windows99_vmx_source_candidate_confirmation_packet(
|
||||
"""
|
||||
locator = locator_readback or load_latest_windows99_vmx_source_locator_readback()
|
||||
current_target_aliases = _strings(locator.get("target_vm_aliases"))
|
||||
current_missing_aliases = _strings(locator.get("missing_vmx_aliases"))
|
||||
submitted_aliases = _strings(packet.get("target_vm_aliases"))
|
||||
allowed_target_aliases = current_missing_aliases or current_target_aliases
|
||||
submitted_aliases_valid = bool(
|
||||
submitted_aliases
|
||||
and allowed_target_aliases
|
||||
and set(submitted_aliases).issubset(set(allowed_target_aliases))
|
||||
)
|
||||
missing_fields = [
|
||||
field
|
||||
for field in _CANDIDATE_CONFIRMATION_REQUIRED_FIELDS
|
||||
@@ -416,7 +431,7 @@ def validate_windows99_vmx_source_candidate_confirmation_packet(
|
||||
rejected_fields.append("schema_version")
|
||||
if str(packet.get("target_host_alias") or "") != "99":
|
||||
rejected_fields.append("target_host_alias")
|
||||
if not submitted_aliases or submitted_aliases != current_target_aliases:
|
||||
if not submitted_aliases_valid:
|
||||
rejected_fields.append("target_vm_aliases")
|
||||
if str(packet.get("candidate_identity_kind") or "") not in (
|
||||
_CANDIDATE_CONFIRMATION_ALLOWED_KINDS
|
||||
@@ -477,6 +492,9 @@ def validate_windows99_vmx_source_candidate_confirmation_packet(
|
||||
"accepted": accepted,
|
||||
"target_host_alias": "99",
|
||||
"target_vm_aliases": current_target_aliases,
|
||||
"missing_vmx_aliases": current_missing_aliases,
|
||||
"submitted_target_vm_aliases": submitted_aliases,
|
||||
"validated_target_vm_aliases": submitted_aliases if accepted else [],
|
||||
"current_locator_status": str(locator.get("status") or ""),
|
||||
"current_candidate_confirmation_status": str(
|
||||
locator.get("candidate_confirmation_status") or ""
|
||||
|
||||
Reference in New Issue
Block a user