diff mbox series

[yocto-autobuilder-helper,06/11] scripts/layer-parser.py: remove EOL layers

Message ID 20250305102506.2043524-6-richard.purdie@linuxfoundation.org
State New
Headers show
Series [yocto-autobuilder-helper,01/11] scripts/run-dashboard-index: Add basic index page for new dashboard site | expand

Commit Message

Richard Purdie March 5, 2025, 10:25 a.m. UTC
From: Michael Halstead <mhalstead@linuxfoundation.org>

Remove caching and optimize to run on the autobuilder from scripts/run-dashboard-index

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
---
 scripts/layer-parser.py | 38 +++++++++++++-------------------------
 1 file changed, 13 insertions(+), 25 deletions(-)
diff mbox series

Patch

diff --git a/scripts/layer-parser.py b/scripts/layer-parser.py
index 246158d..e53a914 100755
--- a/scripts/layer-parser.py
+++ b/scripts/layer-parser.py
@@ -2,44 +2,32 @@ 
 
 import os
 import time
-import requests
 import json
+import urllib.request
 
 LAYER_API_URL = "https://layers.openembedded.org/layerindex/api/layers/?filter=yp_compatible_version__isnull:false&format=json"
 LAYERDATA = "layerdata.json"
-RELEASE_URL = "https://docs.yoctoproject.org/releases.json"
-RELEASEDATA = "releasedata.json"
+# RELEASE_URL = "https://docs.yoctoproject.org/releases.json"
+RELEASEDATA = "releases.json"
 
+with open(RELEASEDATA, "r") as file:
+    releases = json.load(file)
 
-def fetch_data(url, file_path, cache):
-    if os.path.isfile(file_path):
-        modification_time = os.path.getmtime(file_path)
-        time_difference = time.time() - modification_time
-    else:
-        time_difference = 1000000
-
-    # Re-download if the time difference is greater than cache value
-    if time_difference > cache:
-        response = requests.get(url)
-        if response.status_code == 200:
-            with open(file_path, "w") as file:
-                file.write(response.text)
-            return json.loads(response.text)
-    else:
-        with open(file_path, "r") as file:
-            return json.load(file)
+with urllib.request.urlopen(LAYER_API_URL) as response:
+    if response.getcode() == 200:
+        data = response.read().decode("utf-8")
+        layers = json.loads(data)
 
 
-layers = fetch_data(LAYER_API_URL, LAYERDATA, 600)
-releases = fetch_data(RELEASE_URL, RELEASEDATA, 600)
-
 # grab the recent release branches and add master, so we can ignore old branches
 active_releases = [
-    e["release_codename"].lower() for e in releases if e["series"] != "full"
+    e["release_codename"].lower() for e in releases if e["series"] == "current"
 ]
 active_releases.append("master")
 active_releases.append("main")
 
+print(active_releases)
+
 header = dict()
 header["layer"] = "Layer"
 header["branches"] = "Branches"
@@ -85,7 +73,7 @@  for layer in parsed_layers:
         parsed_layers[layer]["maintainers"] = "{} and {}".format(
             ", ".join(maintainers[:-1]), maintainers[-1]
         )
-sorted_parsed_layers = {"header": header} 
+sorted_parsed_layers = {"header": header}
 for layername in sorted(parsed_layers.keys()):
     sorted_parsed_layers[layername] = parsed_layers[layername]
 with open("parsed-layers.json", "w") as file: