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

Unified Diff: commit_queue.py

Issue 1617163004: commit_queue validate: validate just correctness of protobuf. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 4 years, 11 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: commit_queue.py
diff --git a/commit_queue.py b/commit_queue.py
index ec8f51a188df32c076fbc39dbfbb8b9bcbf537f6..4e624773ae2b9146f328b3a700ae496053691742 100755
--- a/commit_queue.py
+++ b/commit_queue.py
@@ -26,7 +26,6 @@ THIRD_PARTY_DIR = os.path.join(os.path.dirname(__file__), 'third_party')
sys.path.insert(0, THIRD_PARTY_DIR)
from cq_client import cq_pb2
-from cq_client import validate_config
from protobuf26 import text_format
def usage(more):
@@ -188,20 +187,30 @@ CMDbuilders.func_usage_more = '<path-to-cq-config>'
def CMDvalidate(parser, args):
- """Validates a CQ config.
+ """Validates a CQ config, returns 0 on valid config.
- Takes a single argument - path to the CQ config to be validated. Returns 0 on
- valid config, non-zero on invalid config. Errors and warnings are printed to
- screen.
+ BUGS: this doesn't do semantic validation, only verifies validity of protobuf.
+ But don't worry - bad cq.cfg won't cause outages, luci-config service will
+ not accept them, will send warning email, and continue using previous
+ version.
"""
_, args = parser.parse_args(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()
- return 0 if validate_config.IsValid(cq_config) else 1
+ config = cq_pb2.Config()
+ try:
+ with open(args[0]) as config_file:
+ text_config = config_file.read()
+ text_format.Merge(text_config, config)
+ # TODO(tandrii): provide an option to actually validate semantics of CQ
+ # config.
+ return 0
+ except text_format.ParseError as e:
+ print 'failed to parse cq.cfg: %s' % e
+ return 1
+
CMDvalidate.func_usage_more = '<path-to-cq-config>'
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698