feat(recovery): classify non110 harbor repair lane blocker
Some checks failed
CD Pipeline / workflow-shape (push) Has been cancelled
CD Pipeline / cancel-stale-cd (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 0s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Has been cancelled
Some checks failed
CD Pipeline / workflow-shape (push) Has been cancelled
CD Pipeline / cancel-stale-cd (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 0s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Has been cancelled
This commit is contained in:
@@ -421,6 +421,25 @@ def build_readback(
|
||||
harbor_110_repair_visible_waiting_stale = (
|
||||
harbor_110_repair_waiting and harbor_110_repair_jobs_all_success
|
||||
)
|
||||
cd_harbor_repair_requires_110_controlled_lane = (
|
||||
build_log_classifier["harbor_public_route_blocked_or_retrying"]
|
||||
and build_log_classifier["harbor_controlled_repair_skip_reason"]
|
||||
== "not_110_host"
|
||||
)
|
||||
cd_harbor_repair_blocked_by_no_matching_awoooi_host = (
|
||||
cd_harbor_repair_requires_110_controlled_lane
|
||||
and harbor_110_repair_no_matching_runner_label == "awoooi-host"
|
||||
)
|
||||
cd_harbor_repair_lane_classifier = (
|
||||
"cd_harbor_repair_requires_110_controlled_lane_no_matching_awoooi_host"
|
||||
if cd_harbor_repair_blocked_by_no_matching_awoooi_host
|
||||
else "cd_harbor_repair_requires_110_controlled_lane_waiting"
|
||||
if cd_harbor_repair_requires_110_controlled_lane
|
||||
and harbor_110_repair_waiting
|
||||
else "cd_harbor_repair_requires_110_controlled_lane"
|
||||
if cd_harbor_repair_requires_110_controlled_lane
|
||||
else ""
|
||||
)
|
||||
harbor_110_repair_waiting_after_cd_harbor_blocker = (
|
||||
build_log_classifier["harbor_public_route_blocked_or_retrying"]
|
||||
and harbor_110_repair_waiting
|
||||
@@ -504,6 +523,15 @@ def build_readback(
|
||||
"harbor_controlled_repair_public_registry_v2_status"
|
||||
]
|
||||
),
|
||||
"latest_visible_cd_harbor_repair_requires_110_controlled_lane": (
|
||||
cd_harbor_repair_requires_110_controlled_lane
|
||||
),
|
||||
"latest_visible_cd_harbor_repair_blocked_by_no_matching_awoooi_host": (
|
||||
cd_harbor_repair_blocked_by_no_matching_awoooi_host
|
||||
),
|
||||
"latest_visible_cd_harbor_repair_lane_classifier": (
|
||||
cd_harbor_repair_lane_classifier
|
||||
),
|
||||
"latest_visible_cd_harbor_public_route_blocked": build_log_classifier[
|
||||
"harbor_public_route_blocked"
|
||||
],
|
||||
@@ -689,6 +717,15 @@ def build_readback(
|
||||
"current_main_cd_harbor_controlled_repair_skip_reason": (
|
||||
build_log_classifier["harbor_controlled_repair_skip_reason"]
|
||||
),
|
||||
"current_main_cd_harbor_repair_requires_110_controlled_lane": (
|
||||
cd_harbor_repair_requires_110_controlled_lane
|
||||
),
|
||||
"current_main_cd_harbor_repair_blocked_by_no_matching_awoooi_host": (
|
||||
cd_harbor_repair_blocked_by_no_matching_awoooi_host
|
||||
),
|
||||
"current_main_cd_harbor_repair_lane_classifier": (
|
||||
cd_harbor_repair_lane_classifier
|
||||
),
|
||||
"current_main_cd_host_pressure_classifier": tests_log_classifier[
|
||||
"host_pressure_classifier"
|
||||
],
|
||||
|
||||
@@ -699,6 +699,22 @@ def test_build_readback_classifies_harbor_public_route_blocker() -> None:
|
||||
]
|
||||
== "not_110_host"
|
||||
)
|
||||
assert (
|
||||
payload["readback"][
|
||||
"latest_visible_cd_harbor_repair_requires_110_controlled_lane"
|
||||
]
|
||||
is True
|
||||
)
|
||||
assert (
|
||||
payload["readback"][
|
||||
"latest_visible_cd_harbor_repair_blocked_by_no_matching_awoooi_host"
|
||||
]
|
||||
is False
|
||||
)
|
||||
assert (
|
||||
payload["readback"]["latest_visible_cd_harbor_repair_lane_classifier"]
|
||||
== "cd_harbor_repair_requires_110_controlled_lane"
|
||||
)
|
||||
assert payload["readback"]["latest_visible_cd_harbor_public_route_blocked"] is True
|
||||
assert payload["rollups"]["current_main_cd_harbor_public_route_blocked"] is True
|
||||
assert (
|
||||
@@ -707,6 +723,55 @@ def test_build_readback_classifies_harbor_public_route_blocker() -> None:
|
||||
]
|
||||
== "not_110_host"
|
||||
)
|
||||
assert (
|
||||
payload["rollups"][
|
||||
"current_main_cd_harbor_repair_requires_110_controlled_lane"
|
||||
]
|
||||
is True
|
||||
)
|
||||
|
||||
|
||||
def test_harbor_repair_no_matching_explains_non110_cd_skip_reason() -> None:
|
||||
module = _load_module()
|
||||
payload = module.build_readback(
|
||||
actions_html=_actions_html_harbor_repair_waiting_with_workflow_no_matching(),
|
||||
actions_list_http_status=401,
|
||||
actions_list_payload={"message": "token is required"},
|
||||
cd_jobs_http_status=200,
|
||||
cd_jobs_payload={"jobs": [], "total_count": 0},
|
||||
latest_cd_build_log_http_status=200,
|
||||
latest_cd_build_log_text=_harbor_blocked_log(),
|
||||
)
|
||||
|
||||
assert payload["status"] == "blocked_harbor_110_repair_no_matching_runner"
|
||||
assert (
|
||||
payload["readback"][
|
||||
"latest_visible_cd_harbor_controlled_repair_skip_reason"
|
||||
]
|
||||
== "not_110_host"
|
||||
)
|
||||
assert (
|
||||
payload["readback"][
|
||||
"latest_visible_cd_harbor_repair_requires_110_controlled_lane"
|
||||
]
|
||||
is True
|
||||
)
|
||||
assert (
|
||||
payload["readback"][
|
||||
"latest_visible_cd_harbor_repair_blocked_by_no_matching_awoooi_host"
|
||||
]
|
||||
is True
|
||||
)
|
||||
assert (
|
||||
payload["readback"]["latest_visible_cd_harbor_repair_lane_classifier"]
|
||||
== "cd_harbor_repair_requires_110_controlled_lane_no_matching_awoooi_host"
|
||||
)
|
||||
assert (
|
||||
payload["rollups"][
|
||||
"current_main_cd_harbor_repair_lane_classifier"
|
||||
]
|
||||
== "cd_harbor_repair_requires_110_controlled_lane_no_matching_awoooi_host"
|
||||
)
|
||||
|
||||
|
||||
def test_build_readback_prefers_visible_blocked_over_stale_jobs() -> None:
|
||||
|
||||
Reference in New Issue
Block a user