KCIDB - NVR Status

Get Status

Get triage-aware status for all checkouts matching a given NVR (Name, Version, Release). Only checkouts the caller is authorized to read are included.

GET /api/1/kcidb/nvrs/$nvr/status

Name Type Required Description
nvr string Yes NVR string (e.g. kernel-5.14.0-162.el9).
origin string No Restrict results to checkouts from this origin name.

Temporary workaround: distro suffix on release

Matching ignores RPM distro tags on the release component. Callers may pass either kernel-5.14.0-162 or kernel-5.14.0-162.el9; both match checkouts whose release differs only by distro tag (e.g. 162.el9, 162.fc40, 112.1246_1944559500.el10iv, 162).

This is a temporary workaround until we fully switch to externalCI kqe tests.

Each checkout entry includes ready_to_report (the KCIDBCheckout.ready_to_report flag set by the cron job when the checkout satisfies the rules in filter_ready_to_report).

all_ready_to_report is true only when there is at least one matching checkout and every matching checkout has ready_to_report=true. It is false when there are no matches or any match is not ready. When ?origin= is specified, all_ready_to_report reflects only the filtered checkouts, not all checkouts for the NVR.

overall_status is the worst status among matching checkouts with ready_to_report=true only. When no matching checkout is ready, overall_status is PASS (including when no checkouts match). With ?origin=, aggregation uses only checkouts from that origin.

Per-checkout status values are triage-aware overall statuses: FAIL, ERROR, MISS, PASS, DONE, or SKIP.

Example of response:

{
    "overall_status": "FAIL",
    "all_ready_to_report": true,
    "checkouts": [
        {
            "id": "redhat:nvr_all_checkout_redhat",
            "status": "PASS",
            "ready_to_report": true
        },
        {
            "id": "tahder:nvr_all_checkout_tahder",
            "status": "FAIL",
            "ready_to_report": true
        }
    ]
}

Example when some checkouts are not ready (overall_status ignores their status):

{
    "overall_status": "PASS",
    "all_ready_to_report": false,
    "checkouts": [
        {
            "id": "redhat:nvr_all_checkout_redhat",
            "status": "PASS",
            "ready_to_report": true
        },
        {
            "id": "tahder:nvr_all_checkout_tahder",
            "status": "FAIL",
            "ready_to_report": false
        }
    ]
}

Example when no checkouts match the NVR:

{
    "overall_status": "PASS",
    "all_ready_to_report": false,
    "checkouts": []
}

Example when ?origin= matches no checkouts for this NVR (e.g. the origin exists elsewhere but has no checkout for this NVR):

{
    "overall_status": "PASS",
    "all_ready_to_report": false,
    "checkouts": []
}

Example: GET /api/1/kcidb/nvrs/kernel-5.14.0-162.el9/status matches checkouts with release 162, 162.el9, or 162.fc40 when name and version match.

Example: GET /api/1/kcidb/nvrs/kernel-5.14.0-162.el9/status?origin=redhat returns only redhat checkouts for that NVR.