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

Side by Side Diff: master/skia_master_scripts/utils.py

Issue 14081044: Add Validation for BuildFactory Configuration (Closed) Base URL: http://skia.googlecode.com/svn/buildbot/
Patch Set: Created 7 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 5
6 """Miscellaneous utilities needed by the Skia buildbot master.""" 6 """Miscellaneous utilities needed by the Skia buildbot master."""
7 7
8 8
9 import httplib2 9 import httplib2
10 import re 10 import re
(...skipping 27 matching lines...) Expand all
38 TRYBOT_NAME_SUFFIX = '_Trybot' 38 TRYBOT_NAME_SUFFIX = '_Trybot'
39 TRY_SCHEDULER_SVN = 'skia_try_svn' 39 TRY_SCHEDULER_SVN = 'skia_try_svn'
40 TRY_SCHEDULER_RIETVELD = 'skia_try_rietveld' 40 TRY_SCHEDULER_RIETVELD = 'skia_try_rietveld'
41 TRY_SCHEDULERS = [TRY_SCHEDULER_SVN, TRY_SCHEDULER_RIETVELD] 41 TRY_SCHEDULERS = [TRY_SCHEDULER_SVN, TRY_SCHEDULER_RIETVELD]
42 TRY_SCHEDULERS_STR = '|'.join(TRY_SCHEDULERS) 42 TRY_SCHEDULERS_STR = '|'.join(TRY_SCHEDULERS)
43 43
44 44
45 def IsTrybot(builder_name): 45 def IsTrybot(builder_name):
46 return builder_name.endswith(TRYBOT_NAME_SUFFIX) 46 return builder_name.endswith(TRYBOT_NAME_SUFFIX)
47 47
48 48
borenet 2013/04/25 15:50:28 Helpers for dumping out the dictionary. We need t
49 def IndentStr(indent):
rmistry 2013/04/25 17:31:50 private function? The only one that looks useful h
borenet 2013/04/25 18:28:09 Done.
50 string = ''
51 for _ in range(indent + 1):
52 string += ' '
53 return string
54
55
56 def ToString(o, indent=0):
rmistry 2013/04/25 17:31:50 If this is going to be the only public function le
borenet 2013/04/25 18:28:09 Done.
57 if isinstance(o, list):
58 return ListToString(o, indent)
59 elif isinstance(o, dict):
60 return DictToString(o, indent)
61 elif isinstance(o, tuple):
62 return ListToString(o, indent)
63 elif isinstance(o, str):
64 return '\'%s\'' % o
65 elif o is None:
66 return 'None'
67 else:
68 return '<Object>'
69
70
71 def ListToString(l, indent):
rmistry 2013/04/25 17:31:50 private function?
borenet 2013/04/25 18:28:09 Done.
72 if not l:
73 return '[]'
74 indent_str = IndentStr(indent)
75 val = '[\n'
76 indent += 1
77 val += ''.join(['%s%s,\n' % (indent_str, ToString(elem, indent)) \
78 for elem in l])
79 indent -= 1
80 indent_str = IndentStr(indent - 1)
81 val += indent_str + ']'
82 return val
83
84
85 def DictToString(d, indent):
rmistry 2013/04/25 17:31:50 private function?
borenet 2013/04/25 18:28:09 Done.
86 if not d:
87 return '{}'
88 indent_str = IndentStr(indent)
89 val = '{\n'
90 indent += 1
91 val += ''.join(['%s%s: %s,\n' % (indent_str, ToString(k, indent),
92 ToString(d[k], indent)) \
93 for k in sorted(d.keys())])
94 indent -= 1
95 indent_str = IndentStr(indent - 1)
96 val += indent_str + '}'
97 return val
98
99
49 class SkiaChangeFilter(ChangeFilter): 100 class SkiaChangeFilter(ChangeFilter):
50 """Skia specific subclass of ChangeFilter.""" 101 """Skia specific subclass of ChangeFilter."""
51 102
52 def __init__(self, builders, **kwargs): 103 def __init__(self, builders, **kwargs):
53 self._builders = builders 104 self._builders = builders
54 ChangeFilter.__init__(self, **kwargs) 105 ChangeFilter.__init__(self, **kwargs)
55 106
56 def filter_change(self, change): 107 def filter_change(self, change):
57 """Overrides ChangeFilter.filter_change to pass builders to filter_fn. 108 """Overrides ChangeFilter.filter_change to pass builders to filter_fn.
58 109
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 # request is associated with a change but the revisions match (#5 above). 665 # request is associated with a change but the revisions match (#5 above).
615 if req1.source.changes and not req2.source.changes: 666 if req1.source.changes and not req2.source.changes:
616 return False 667 return False
617 if not req1.source.changes and req2.source.changes: 668 if not req1.source.changes and req2.source.changes:
618 return False 669 return False
619 if not (req1.source.changes and req2.source.changes): 670 if not (req1.source.changes and req2.source.changes):
620 if req1.source.revision != req2.source.revision: 671 if req1.source.revision != req2.source.revision:
621 return False 672 return False
622 673
623 return True 674 return True
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698