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

Side by Side Diff: recipes.py

Issue 2253943003: Formally define step config, pass to stream. (Closed) Base URL: https://github.com/luci/recipes-py@nest-single-event
Patch Set: Rebase Created 4 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 unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2015 The LUCI Authors. All rights reserved. 2 # Copyright 2015 The LUCI Authors. All rights reserved.
3 # Use of this source code is governed under the Apache License, Version 2.0 3 # Use of this source code is governed under the Apache License, Version 2.0
4 # that can be found in the LICENSE file. 4 # that can be found in the LICENSE file.
5 5
6 """Tool to interact with recipe repositories. 6 """Tool to interact with recipe repositories.
7 7
8 This tool operates on the nearest ancestor directory containing an 8 This tool operates on the nearest ancestor directory containing an
9 infra/config/recipes.cfg. 9 infra/config/recipes.cfg.
10 """ 10 """
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 lint_test.main(universe_view, args.whitelist or []) 57 lint_test.main(universe_view, args.whitelist or [])
58 58
59 59
60 def handle_recipe_return(recipe_result, result_filename, stream_engine): 60 def handle_recipe_return(recipe_result, result_filename, stream_engine):
61 if 'recipe_result' in recipe_result.result: 61 if 'recipe_result' in recipe_result.result:
62 result_string = json.dumps( 62 result_string = json.dumps(
63 recipe_result.result['recipe_result'], indent=2) 63 recipe_result.result['recipe_result'], indent=2)
64 if result_filename: 64 if result_filename:
65 with open(result_filename, 'w') as f: 65 with open(result_filename, 'w') as f:
66 f.write(result_string) 66 f.write(result_string)
67 with stream_engine.new_step_stream('recipe result') as s: 67 with stream_engine.make_step_stream('recipe result') as s:
68 with s.new_log_stream('result') as l: 68 with s.new_log_stream('result') as l:
69 l.write_split(result_string) 69 l.write_split(result_string)
70 70
71 if 'traceback' in recipe_result.result: 71 if 'traceback' in recipe_result.result:
72 with stream_engine.new_step_stream('Uncaught Exception') as s: 72 with stream_engine.make_step_stream('Uncaught Exception') as s:
73 with s.new_log_stream('exception') as l: 73 with s.new_log_stream('exception') as l:
74 for line in recipe_result.result['traceback']: 74 for line in recipe_result.result['traceback']:
75 l.write_line(line) 75 l.write_line(line)
76 76
77 if 'reason' in recipe_result.result: 77 if 'reason' in recipe_result.result:
78 with stream_engine.new_step_stream('Failure reason') as s: 78 with stream_engine.make_step_stream('Failure reason') as s:
79 with s.new_log_stream('reason') as l: 79 with s.new_log_stream('reason') as l:
80 for line in recipe_result.result['reason'].splitlines(): 80 for line in recipe_result.result['reason'].splitlines():
81 l.write_line(line) 81 l.write_line(line)
82 82
83 if 'status_code' in recipe_result.result: 83 if 'status_code' in recipe_result.result:
84 return recipe_result.result['status_code'] 84 return recipe_result.result['status_code']
85 else: 85 else:
86 return 0 86 return 0
87 87
88 88
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 ret = main() 567 ret = main()
568 if not isinstance(ret, int): 568 if not isinstance(ret, int):
569 if ret is None: 569 if ret is None:
570 ret = 0 570 ret = 0
571 else: 571 else:
572 print >> sys.stderr, ret 572 print >> sys.stderr, ret
573 ret = 1 573 ret = 1
574 sys.stdout.flush() 574 sys.stdout.flush()
575 sys.stderr.flush() 575 sys.stderr.flush()
576 os._exit(ret) 576 os._exit(ret)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698