Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Unified Diff: infra/tools/builder_alerts/gatekeeper_extras.py

Issue 508873005: Reimplemented tree_for_master, which now uses gatekeeper config files to map master URLs to the tre… (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: infra/tools/builder_alerts/gatekeeper_extras.py
diff --git a/infra/tools/builder_alerts/gatekeeper_extras.py b/infra/tools/builder_alerts/gatekeeper_extras.py
index c0cd3f831cf932f3cd91a33de37a30c10ce0064e..4bce0f2ddcb83b2ff8e9c7d4794d79850eb7bfc9 100644
--- a/infra/tools/builder_alerts/gatekeeper_extras.py
+++ b/infra/tools/builder_alerts/gatekeeper_extras.py
@@ -6,36 +6,51 @@
import logging
+import infra.tools.builder_alerts.buildbot
agable 2014/09/04 14:22:31 Since you only use one thing, could do from infra.
Sergiy Byelozyorov 2014/09/05 12:59:06 Done.
def excluded_builders(master_config):
return master_config[0].get('*', {}).get('excluded_builders', set())
-# pylint: disable=C0301
-# FIXME: This is currently baked into:
-# https://chromium.googlesource.com/chromium/tools/build/+/master/scripts/slave/gatekeeper_launch.py
-# http://crbug.com/394961
-MASTER_CONFIG = {
- 'chromium-status': [
- 'chromium',
- 'chromium.chrome',
- 'chromium.chromiumos',
- 'chromium.gpu',
- 'chromium.linux',
- 'chromium.mac',
- 'chromium.memory',
- 'chromium.win',
- ],
- 'blink-status': [
- 'chromium.webkit',
- ],
-}
-
-
-def tree_for_master(master_name):
- for tree_name, master_names in MASTER_CONFIG.items():
- if master_name in master_names:
+def tree_for_master(master_url, gatekeeper_trees_config):
+ """Returns name of the tree for a given master or its name on failure.
agable 2014/09/04 14:22:31 "Get the name of the tree for a given master url,
Sergiy Byelozyorov 2014/09/05 12:59:06 Done.
+
+ Retuns:
agable 2014/09/04 14:22:31 Don't really need a "returns" section when the fir
Sergiy Byelozyorov 2014/09/05 12:59:06 Done.
+ Tree name of master name if the master url is not present in gatekeeper
agable 2014/09/04 14:22:31 tree name *or*
Sergiy Byelozyorov 2014/09/05 12:59:06 Acknowledged.
+ config.
+ """
+ for tree_name, tree_config in gatekeeper_trees_config.iteritems():
+ if master_url in tree_config['masters']:
return tree_name
+ return infra.tools.builder_alerts.buildbot.master_name_from_url(master_url)
agable 2014/09/04 14:22:31 Why is this fallback now necessary?
Sergiy Byelozyorov 2014/09/05 12:59:07 Master info may not be in a config file. In this c
+
+
+def apply_gatekeeper_rules(alerts, gatekeeper, gatekeeper_trees):
+ filtered_alerts = []
+ for alert in alerts:
+ master_url = alert['master_url']
+ config = gatekeeper.get(master_url)
+ if not config:
+ # Unclear if this should be set or not?
+ # alert['would_close_tree'] = False
+ filtered_alerts.append(alert)
+ continue
+ if alert['builder_name'] in excluded_builders(config):
+ continue
+ alert['would_close_tree'] = would_close_tree(
+ config, alert['builder_name'], alert['step_name'])
+ alert['tree'] = tree_for_master(master_url, gatekeeper_trees)
+ filtered_alerts.append(alert)
+ return filtered_alerts
+
+
+def fetch_master_urls(gatekeeper, args):
+ # Currently using gatekeeper.json, but could use:
+ # https://chrome-infra-stats.appspot.com/_ah/api#p/stats/v1/stats.masters.list
tandrii(chromium) 2014/09/04 14:21:06 nit: I thought comments should end with period.
Sergiy Byelozyorov 2014/09/05 12:59:07 Yeah, but URL takes entire line and adding a perio
+ master_urls = gatekeeper.keys()
+ if args.master_filter:
+ master_urls = [url for url in master_urls if args.master_filter not in url]
+ return master_urls
def would_close_tree(master_config, builder_name, step_name):

Powered by Google App Engine
This is Rietveld 408576698