xref: /openbmc/openbmc/poky/bitbake/lib/toaster/orm/fixtures/check_fixtures.py (revision c9537f57ab488bf5d90132917b0184e2527970a5)
1#!/usr/bin/env python3
2#
3# Copyright (C) 2025 Linux Foundation
4# SPDX-License-Identifier: GPL-2.0-only
5#
6
7import json
8import urllib.request
9
10import gen_fixtures as fixtures
11
12RELEASE_URL = "https://dashboard.yoctoproject.org/releases.json"
13
14with urllib.request.urlopen(RELEASE_URL) as response:
15    if response.getcode() == 200:
16        data = response.read().decode("utf-8")
17        releases = json.loads(data)
18    else:
19        print("Couldn't access %s: %s" % (RELEASE_URL, reponse.getcode()))
20        exit(1)
21
22
23# grab the recent release branches and add master, so we can ignore old branches
24active_releases = [
25    e["release_codename"].lower() for e in releases if e["series"] == "current"
26]
27active_releases.append("master")
28active_releases.append("head")
29
30fixtures_releases = [x[0].lower() for x in fixtures.current_releases]
31
32if set(active_releases) != set(fixtures_releases):
33    print("WARNING: Active releases don't match toaster configured releases, the difference is: %s" % set(active_releases).difference(set(fixtures_releases)))
34    print("Active releases: %s" % sorted(active_releases))
35    print("Toaster configured releases: %s" % sorted(fixtures_releases))
36else:
37    print("Success, configuration matches")
38
39