Index: commit_queue.py |
diff --git a/commit_queue.py b/commit_queue.py |
index 61e4d2fd65b739a5a35560cbddaa1f32275f42c3..c950db68cdd6a290ea2a2434d38b97b16803b664 100755 |
--- a/commit_queue.py |
+++ b/commit_queue.py |
@@ -104,6 +104,24 @@ def set_commit(obj, issue, flag): |
return 0 |
_apply_on_issue(_set_commit, obj, issue) |
+ |
+def get_master_builder_map(config_path): |
+ """Returns a map of master -> [builders] from cq config.""" |
+ with open(config_path) as config_file: |
+ cq_config = config_file.read() |
+ |
+ config = cq_pb2.Config() |
+ text_format.Merge(cq_config, config) |
+ masters = {} |
+ if config.HasField('verifiers') and config.verifiers.HasField('try_job'): |
+ for bucket in config.verifiers.try_job.buckets: |
+ masters.setdefault(bucket.name, []) |
+ for builder in bucket.builders: |
+ if not builder.HasField('experiment_percentage'): |
+ masters[bucket.name].append(builder.name) |
+ return masters |
+ |
+ |
@need_issue |
def CMDset(parser, args): |
"""Sets the commit bit.""" |
@@ -147,20 +165,7 @@ def CMDbuilders(parser, args): |
if len(args) != 1: |
parser.error('Expected a single path to CQ config. Got: %s' % |
' '.join(args)) |
- |
- with open(args[0]) as config_file: |
- cq_config = config_file.read() |
- |
- config = cq_pb2.Config() |
- text_format.Merge(cq_config, config) |
- masters = {} |
- if config.HasField('verifiers') and config.verifiers.HasField('try_job'): |
- for bucket in config.verifiers.try_job.buckets: |
- masters.setdefault(bucket.name, []) |
- for builder in bucket.builders: |
- if not builder.HasField('experiment_percentage'): |
- masters[bucket.name].append(builder.name) |
- print json.dumps(masters) |
+ print json.dumps(get_master_builder_map(args[0])) |
CMDbuilders.func_usage_more = '<path-to-cq-config>' |