feat(recovery): normalize harbor queue receipt fields
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 36s
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 36s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
This commit is contained in:
@@ -212,6 +212,12 @@ def validate_harbor_registry_controlled_recovery_receipt(
|
||||
"gitea_queue_cd_jobs_run_id_mismatch": gitea_queue[
|
||||
"cd_run_jobs_run_id_mismatch"
|
||||
],
|
||||
"gitea_queue_normalized_classifier_field_count": gitea_queue[
|
||||
"normalized_classifier_field_count"
|
||||
],
|
||||
"gitea_queue_normalized_classifier_field_ids": gitea_queue[
|
||||
"normalized_classifier_field_ids"
|
||||
],
|
||||
"deploy_marker_readback_seen": deploy_marker["receipt_seen"],
|
||||
"deploy_marker_verified": deploy_marker["deploy_marker_verified"],
|
||||
"deploy_marker_blocker_count": deploy_marker["blocker_count"],
|
||||
@@ -591,6 +597,9 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
|
||||
"harbor_110_repair_jobs_unexpected_names": [],
|
||||
"harbor_110_repair_jobs_labels": [],
|
||||
"harbor_110_repair_jobs_runner_names": [],
|
||||
"normalized_classifier_fields": [],
|
||||
"normalized_classifier_field_count": 0,
|
||||
"normalized_classifier_field_ids": [],
|
||||
"operation_boundary_violation": False,
|
||||
"blockers": [],
|
||||
"blocker_count": 0,
|
||||
@@ -653,6 +662,16 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
|
||||
rollups.get("cd_run_jobs_run_id_mismatch") is True
|
||||
or readback.get("cd_run_jobs_run_id_mismatch") is True
|
||||
)
|
||||
cd_jobs_payload_classifier = str(
|
||||
rollups.get("cd_run_jobs_payload_classifier")
|
||||
or readback.get("cd_run_jobs_payload_classifier")
|
||||
or ""
|
||||
)
|
||||
harbor_jobs_payload_classifier = str(
|
||||
rollups.get("harbor_110_repair_jobs_payload_classifier")
|
||||
or readback.get("harbor_110_repair_jobs_payload_classifier")
|
||||
or ""
|
||||
)
|
||||
boundary_violation = any(
|
||||
operation_boundaries.get(flag) is True
|
||||
for flag in (
|
||||
@@ -675,6 +694,12 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
|
||||
blocked=blocked,
|
||||
boundary_violation=boundary_violation,
|
||||
)
|
||||
normalized_classifier_fields = _gitea_queue_normalized_classifier_fields(
|
||||
cd_jobs_payload_classifier=cd_jobs_payload_classifier,
|
||||
harbor_jobs_payload_classifier=harbor_jobs_payload_classifier,
|
||||
no_matching_label=no_matching_label,
|
||||
blockers=blockers,
|
||||
)
|
||||
return {
|
||||
"receipt_seen": True,
|
||||
"schema_version": str(value.get("schema_version") or ""),
|
||||
@@ -692,11 +717,7 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
|
||||
),
|
||||
"current_cd_harbor_retrying_unavailable": current_cd_harbor_retrying,
|
||||
"cd_run_jobs_stale_or_mismatched": cd_jobs_stale,
|
||||
"cd_run_jobs_payload_classifier": str(
|
||||
rollups.get("cd_run_jobs_payload_classifier")
|
||||
or readback.get("cd_run_jobs_payload_classifier")
|
||||
or ""
|
||||
),
|
||||
"cd_run_jobs_payload_classifier": cd_jobs_payload_classifier,
|
||||
"cd_run_jobs_head_sha_mismatch": cd_jobs_head_sha_mismatch,
|
||||
"cd_run_jobs_run_id_mismatch": cd_jobs_run_id_mismatch,
|
||||
"cd_run_jobs_expected_run_id": str(
|
||||
@@ -719,11 +740,7 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
|
||||
"harbor_110_repair_blocked": blocked,
|
||||
"harbor_110_repair_jobs_stale_or_mismatched": jobs_stale,
|
||||
"harbor_110_repair_jobs_cross_workflow_mismatch": jobs_cross_workflow,
|
||||
"harbor_110_repair_jobs_payload_classifier": str(
|
||||
rollups.get("harbor_110_repair_jobs_payload_classifier")
|
||||
or readback.get("harbor_110_repair_jobs_payload_classifier")
|
||||
or ""
|
||||
),
|
||||
"harbor_110_repair_jobs_payload_classifier": harbor_jobs_payload_classifier,
|
||||
"harbor_110_repair_jobs_expected_names": _strings(
|
||||
readback.get("harbor_110_repair_jobs_expected_names")
|
||||
),
|
||||
@@ -736,6 +753,11 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
|
||||
"harbor_110_repair_jobs_runner_names": _strings(
|
||||
readback.get("harbor_110_repair_jobs_runner_names")
|
||||
),
|
||||
"normalized_classifier_fields": normalized_classifier_fields,
|
||||
"normalized_classifier_field_count": len(normalized_classifier_fields),
|
||||
"normalized_classifier_field_ids": [
|
||||
item["field_id"] for item in normalized_classifier_fields
|
||||
],
|
||||
"operation_boundary_violation": boundary_violation,
|
||||
"blockers": blockers,
|
||||
"blocker_count": len(blockers),
|
||||
@@ -745,6 +767,48 @@ def _gitea_queue_readback(value: Any) -> dict[str, Any]:
|
||||
}
|
||||
|
||||
|
||||
def _gitea_queue_normalized_classifier_fields(
|
||||
*,
|
||||
cd_jobs_payload_classifier: str,
|
||||
harbor_jobs_payload_classifier: str,
|
||||
no_matching_label: str,
|
||||
blockers: list[str],
|
||||
) -> list[dict[str, Any]]:
|
||||
return [
|
||||
{
|
||||
"field_id": "cd_run_jobs_payload_classifier",
|
||||
"value": cd_jobs_payload_classifier,
|
||||
"blockers": [
|
||||
item for item in blockers if item.startswith("gitea_queue_cd_jobs_")
|
||||
],
|
||||
"metadata_only": True,
|
||||
"raw_output_returned": False,
|
||||
},
|
||||
{
|
||||
"field_id": "harbor_110_repair_jobs_payload_classifier",
|
||||
"value": harbor_jobs_payload_classifier,
|
||||
"blockers": [
|
||||
item
|
||||
for item in blockers
|
||||
if item.startswith("gitea_queue_harbor_110_repair_jobs_")
|
||||
],
|
||||
"metadata_only": True,
|
||||
"raw_output_returned": False,
|
||||
},
|
||||
{
|
||||
"field_id": "latest_visible_harbor_110_repair_no_matching_runner_label",
|
||||
"value": no_matching_label,
|
||||
"blockers": [
|
||||
item
|
||||
for item in blockers
|
||||
if item == "gitea_queue_harbor_110_repair_no_matching_runner"
|
||||
],
|
||||
"metadata_only": True,
|
||||
"raw_output_returned": False,
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def _gitea_queue_blockers(
|
||||
*,
|
||||
no_matching_runner: bool,
|
||||
|
||||
Reference in New Issue
Block a user