#23 Use fedfind to query active Fedora releases
Merged 3 years ago by frantisekz. Opened 3 years ago by frantisekz.

@@ -39,8 +39,8 @@ 

  

  

  def get_current_releases():

-     stable = CACHE.get('landing_page')["stable"]

-     return ["F" + str(i) for i in [(stable - 1), stable, (stable + 1)]] + ["EPEL-" + str(i) for i in app.config['EPEL_RELEASES']]

+     releases = CACHE.get('fedora_releases')["values"][:-1]

+     return ["F" + str(i) for i in releases] + ["EPEL-" + str(i) for i in app.config['EPEL_RELEASES']]

  

  

  @app.route('/api/v1/landing_page')

@@ -41,6 +41,7 @@ 

      """

      Add providers to be cached here

      """

+     CACHE.register('fedora_releases', dashboard.get_fedora_releases)

      CACHE.register('landing_page', api_v1_landing_page)

      for p_name, p_module in ACTION_PROVIDERS.items():

          CACHE.register(p_name, p_module.get_actions)

file modified
+25 -8
@@ -24,6 +24,7 @@ 

  from collections import defaultdict

  from json import JSONDecodeError

  

+ import fedfind.helpers

  import json

  import datetime

  import requests
@@ -37,6 +38,21 @@ 

  from oraculum import app, db, CACHE

  from oraculum.models.dashboard_users import DashboardUserData

  

+ def get_fedora_releases():

+     """

+     Returns dict with keys containing active Fedora releases as described by keys.

+     "values" key contains list of active Fedora release numbers

+     """

+     releases = {"oldstable": (max(fedfind.helpers.get_current_stables()) - 1),

+                 "stable": max(fedfind.helpers.get_current_stables()),

+                 "branched": fedfind.helpers.get_current_release(branched=True),

+                 "rawhide": (fedfind.helpers.get_current_release(branched=True) + 1)}

+ 

+     releases["values"] = sorted(set(releases.values()))

+     if releases["stable"] == releases["branched"]:

+         releases["branched"] = None

+     return releases

+ 

  

  def update_user_access_time(user):

      """
@@ -280,7 +296,7 @@ 

  def get_fti_trackers():

      bzapi = bugzilla.Bugzilla("bugzilla.redhat.com")

      tracker_ids = []

-     releases = [CACHE.get('landing_page')["devel"], CACHE.get('landing_page')["stable"]]

+     releases = CACHE.get('fedora_releases')["values"]

      for release in releases:

          bug = bzapi.getbug("F%sFailsToInstall" % release)

          tracker_ids.append(bug.id)
@@ -290,7 +306,7 @@ 

  def get_ftbfs_trackers():

      bzapi = bugzilla.Bugzilla("bugzilla.redhat.com")

      tracker_ids = []

-     releases = [CACHE.get('landing_page')["devel"], CACHE.get('landing_page')["stable"]]

+     releases = CACHE.get('fedora_releases')["values"]

      for release in releases:

          bug = bzapi.getbug("F%sFTBFS" % release)

          tracker_ids.append(bug.id)
@@ -428,15 +444,16 @@ 

      Returns dict {

          "FXX":         "user_a"...: [package_a, package_b, ...]

          "FXX-testing": "user_b"...: [package_a, package_b. ...]

-         "FXX":         "user_a"...: [package_b, package_c, ...] # Rawhide releases don't have -testing counterpart

+         "rawhide":     "user_a"...: [package_b, package_c, ...] # Rawhide releases don't have -testing counterpart

      }

      """

      data = {}

-     stable = str(CACHE.get('landing_page')["stable"])

-     data[stable] = get_json(

-         "https://pagure.io/fedora-health-check/raw/master/f/data/report-%s.json" % stable)["affected"]

-     data[stable + "-testing"] = get_json(

-         "https://pagure.io/fedora-health-check/raw/master/f/data/report-%s-testing.json" % stable)["affected"]

+     releases = CACHE.get('fedora_releases')["values"]

+     for release in releases[:-1]: # Process every release but rawhide

+         data[release] = get_json(

+             "https://pagure.io/fedora-health-check/raw/master/f/data/report-%d.json" % release)["affected"]

+         data[str(release) + "-testing"] = get_json(

+             "https://pagure.io/fedora-health-check/raw/master/f/data/report-%d-testing.json" % release)["affected"]

      data["rawhide"] = get_json("https://pagure.io/fedora-health-check/raw/master/f/data/report-rawhide.json")["affected"]

      return data

  

file modified
+1
@@ -10,6 +10,7 @@ 

  Flask-Login >= 0.3.0

  Flask-OIDC >= 1.1.1

  Flask-SQLAlchemy

+ fedfind

  icalendar

  lxml

  pygments

file modified
+1
@@ -41,6 +41,7 @@ 

            'Flask-Login',

            'Flask-OIDC',

            'Flask-Sqlalchemy',

+           'fedfind',

            'icalendar',

            'lxml',

            'pygments',

Let's leverage fedfind to query active Fedora releases for us.

1 new commit added

  • Better
3 years ago

rebased onto e785833

3 years ago

Pull-Request has been merged by frantisekz

3 years ago