#145 Improve blockerbugs api
Merged 3 years ago by frantisekz. Opened 3 years ago by frantisekz.

@@ -29,8 +29,13 @@ 

  

  def api_v1_landing_page():

      releases = CACHE.get("fedora_releases")

+     try:

+         blockerbugs_data = blockerbugs.get_blockerbugs()

+     except ValueError:

+         # TODO: Change this to the oraculum-wide exception signaling refresh failed in the future

+         return None

      return {

-         'blockerbugs': blockerbugs.get_blockerbugs(),

+         'blockerbugs': blockerbugs_data,

          'meetings': fedocal.get_qa_meetings(),

          'last_qa_meeting': meetbot.get_last_qa_meeting(),

          'schedule': schedule.get_schedule(),

file modified
+47 -30
@@ -29,58 +29,75 @@ 

  BLOCKERBUGS_URL = urllib.parse.urljoin(app.config["BLOCKERBUGS_URL"], "api/v0/milestones/%d/%s/bugs")

  

  def get_blockerbugs():

-     data = {

-         "beta_blockers": "NaN",

-         "beta_blockers_proposed": "NaN",

-         "beta_fe": "NaN",

-         "beta_fe_proposed": "NaN",

-         "final_blockers": "NaN",

-         "final_blockers_proposed": "NaN",

-         "final_fe": "NaN",

-         "final_fe_proposed": "NaN"

-     }

      releases = CACHE.get("fedora_releases")

      release = releases["branched"] or releases["rawhide"]

  

+     data = {

+         # TODO: This is a legacy structure that is going to be removed

+         "beta_blockers": 0,

+         "beta_blockers_proposed": 0,

+         "beta_fe": 0,

+         "beta_fe_proposed": 0,

+         "final_blockers": 0,

+         "final_blockers_proposed": 0,

+         "final_fe": 0,

+         "final_fe_proposed": 0,

+         # This is the new structure

+         "beta": {

+             "blockers": 0,

+             "blockers_proposed": 0,

+             "fe": 0,

+             "fe_proposed": 0

+         },

+         "final": {

+             "blockers": 0,

+             "blockers_proposed": 0,

+             "fe": 0,

+             "fe_proposed": 0

+         },

+         "release": "Fedora %s" % release

+     }

+ 

      resp_beta = get_json(BLOCKERBUGS_URL % (release, "beta"))

      resp_final = get_json(BLOCKERBUGS_URL % (release, "final"))

  

-     beta_blockers, beta_fe, final_blockers, final_fe = (0, 0, 0, 0)

-     beta_blockers_prop, beta_fe_prop, final_blockers_prop, final_fe_prop = (0, 0, 0, 0)

+     if not resp_beta or not resp_final or "error" in resp_beta or "error" in resp_final:

+         # raise ValueError that we'll catch in the caller and rather not overwrite data we already have with nothing

+         raise ValueError

  

      for bug in resp_beta:

          if not (bug["active"]):

              continue

          if "accepted_blocker" in bug["type"]:

-             beta_blockers += 1

+             data["beta"]["blockers"] += 1

          if "proposed_blocker" in bug["type"]:

-             beta_blockers_prop += 1

+             data["beta"]["blockers_proposed"] += 1

          if "accepted_fe" in bug["type"]:

-             beta_fe += 1

+             data["beta"]["fe"] += 1

          if "proposed_fe" in bug["type"]:

-             beta_fe_prop += 1

+             data["beta"]["fe_proposed"] += 1

  

      for bug in resp_final:

          if not (bug["active"]):

              continue

          if "accepted_blocker" in bug["type"]:

-             final_blockers += 1

+             data["final"]["blockers"] += 1

          if "proposed_blocker" in bug["type"]:

-             final_blockers_prop += 1

+             data["final"]["blockers_proposed"] += 1

          if "accepted_fe" in bug["type"]:

-             final_fe += 1

+             data["final"]["fe"] += 1

          if "proposed_fe" in bug["type"]:

-             final_fe_prop += 1

+             data["final"]["fe_proposed"] += 1

  

-     data = {

-         "beta_blockers": beta_blockers,

-         "beta_blockers_proposed": beta_blockers_prop,

-         "beta_fe": beta_fe,

-         "beta_fe_proposed": beta_fe_prop,

-         "final_blockers": final_blockers,

-         "final_blockers_proposed": final_blockers_prop,

-         "final_fe": final_fe,

-         "final_fe_proposed": final_fe_prop

-     }

+     # TODO: This is going to be removed!

+     data["beta_blockers"] = data["beta"]["blockers"]

+     data["beta_blockers_proposed"] = data["beta"]["blockers_proposed"]

+     data["beta_fe"] = data["beta"]["fe"]

+     data["beta_fe_proposed"] = data["beta"]["fe_proposed"]

+ 

+     data["final_blockers"] = data["final"]["blockers"]

+     data["final_blockers_proposed"] = data["final"]["blockers_proposed"]

+     data["final_fe"] = data["final"]["fe"]

+     data["final_fe_proposed"] = data["final"]["fe_proposed"]

  

      return data

Build succeeded.

rebased onto 9becd89

3 years ago

Build succeeded.

Pull-Request has been merged by frantisekz

3 years ago