Alberto Donato has proposed merging ~ack/maas-kpi:filter-maas-ui-project into maas-kpi:master.
Commit message: filter bugs targeted to maas-ui project too for maas Requested reviews: MAAS Lander (maas-lander) MAAS Committers (maas-committers) For more details, see: https://code.launchpad.net/~ack/maas-kpi/+git/maas-kpi/+merge/441823 -- Your team MAAS Committers is requested to review the proposed merge of ~ack/maas-kpi:filter-maas-ui-project into maas-kpi:master.
diff --git a/maaskpi/bugs.py b/maaskpi/bugs.py index 478c3fc..6bf25d4 100644 --- a/maaskpi/bugs.py +++ b/maaskpi/bugs.py @@ -34,31 +34,45 @@ class BugsCollector(LaunchpadCollector): same as the Launchpad statuses, except Incomplete is divided into IncompleteWithResponse and IncompleteWithoutResponse. - The project label can be either 'core' or 'ui', indicating which - team the bug belongs to. + If `ignored_related_projects` is provided, a task which is related to tasks + in those projects will not be included in the count. + + The project label can be either 'core' or 'ui', indicating which team the + bug belongs to. + """ - def _collect_open_bugs(self, record_series, sub_project: str, tasks): - open_bugs = dict.fromkeys(record_series.Meta.fields, 0) - for bug_task in tasks: - status = bug_task.status + def _collect_bugs( + self, record_series, lp_project, project_label, ignored_related_projects=() + ): + counts = dict.fromkeys(record_series.Meta.fields, 0) + for task in lp_project.searchTasks(): + ignore = ignored_related_projects and any( + related_task.target in ignored_related_projects + for related_task in task.related_tasks + ) + if ignore: + continue + + status = task.status if status == "Incomplete": - if bug_task.date_incomplete < bug_task.bug.date_last_message: + if task.date_incomplete < task.bug.date_last_message: status += "WithResponse" else: status += "WithoutResponse" - - open_bugs[status_to_field(status)] += 1 + counts[status_to_field(status)] += 1 # influx mutates state in the class via the constructor - record_series(**open_bugs, project=sub_project) + record_series(**counts, project=project_label) def collect(self, lp): - maas = lp.projects["maas"] print("Searching tasks....") - core_tasks = maas.searchTasks(tags=["-ui"]) - ui_tasks = maas.searchTasks(tags=["ui"]) - for sub_project, tasks in [("core", core_tasks), ("ui", ui_tasks)]: - self._collect_open_bugs(OpenBugsSeries, sub_project, tasks) + self._collect_bugs( + OpenBugsSeries, + lp.projects["maas"], + "core", + ignored_related_projects=[lp.projects["maas-ui"]], + ) + self._collect_bugs(OpenBugsSeries, lp.projects["maas-ui"], "ui") yield OpenBugsSeries
-- Mailing list: https://launchpad.net/~sts-sponsors Post to : sts-sponsors@lists.launchpad.net Unsubscribe : https://launchpad.net/~sts-sponsors More help : https://help.launchpad.net/ListHelp