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

Side by Side Diff: recipe_modules/generator_script/api.py

Issue 2322093002: Track step nesting in StreamEngine (Reland). (Closed)
Patch Set: Might as well go deeper. 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
« no previous file with comments | « recipe_engine/unittests/stream_test.py ('k') | recipe_modules/generator_script/example.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The LUCI Authors. All rights reserved. 1 # Copyright 2013 The LUCI Authors. All rights reserved.
2 # Use of this source code is governed under the Apache License, Version 2.0 2 # Use of this source code is governed under the Apache License, Version 2.0
3 # that can be found in the LICENSE file. 3 # that can be found in the LICENSE file.
4 4
5 from recipe_engine import recipe_api 5 from recipe_engine import recipe_api
6 6
7 class GeneratorScriptApi(recipe_api.RecipeApi): 7 class GeneratorScriptApi(recipe_api.RecipeApi):
8 def __call__(self, path_to_script, *args, **kwargs): 8 def __call__(self, path_to_script, *args, **kwargs):
9 """Run a script and generate the steps emitted by that script. 9 """Run a script and generate the steps emitted by that script.
10 10
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 step['env'] = new_env 83 step['env'] = new_env
84 outputs_json = step.pop('outputs_presentation_json', False) 84 outputs_json = step.pop('outputs_presentation_json', False)
85 if outputs_json: 85 if outputs_json:
86 # This step has requested a JSON file which the binary that 86 # This step has requested a JSON file which the binary that
87 # it invokes can write to, so provide it with one. 87 # it invokes can write to, so provide it with one.
88 step['cmd'].extend(['--presentation-json', self.m.json.output(False)]) 88 step['cmd'].extend(['--presentation-json', self.m.json.output(False)])
89 89
90 #TODO(martiniss) change this to use a regular step call 90 #TODO(martiniss) change this to use a regular step call
91 step['ok_ret'] = set(step.pop('ok_ret', {0})) 91 step['ok_ret'] = set(step.pop('ok_ret', {0}))
92 step['infra_step'] = bool(step.pop('infra_step', False)) 92 step['infra_step'] = bool(step.pop('infra_step', False))
93 step['step_nest_level'] = int(step.pop('step_nest_level', 0)) 93 step['step_nest_level'] = step.pop('step_nest_level', 0)
94 94
95 if step.pop('always_run', False) or not failed_steps: 95 if step.pop('always_run', False) or not failed_steps:
96 try: 96 try:
97 self.m.step.run_from_dict(step) 97 self.m.step.run_from_dict(step)
98 except self.m.step.StepFailure: 98 except self.m.step.StepFailure:
99 failed_steps.append(step['name']) 99 failed_steps.append(step['name'])
100 finally: 100 finally:
101 step_result = self.m.step.active_result 101 step_result = self.m.step.active_result
102 if outputs_json: 102 if outputs_json:
103 p = step_result.presentation 103 p = step_result.presentation
104 j = step_result.json.output 104 j = step_result.json.output
105 105
106 if j: 106 if j:
107 p.logs.update(j.get('logs', {})) 107 p.logs.update(j.get('logs', {}))
108 p.links.update(j.get('links', {})) 108 p.links.update(j.get('links', {}))
109 p.step_summary_text = j.get('step_summary_text', '') 109 p.step_summary_text = j.get('step_summary_text', '')
110 p.step_text = j.get('step_text', '') 110 p.step_text = j.get('step_text', '')
111 p.properties.update(j.get('properties', {})) 111 p.properties.update(j.get('properties', {}))
112 112
113 if failed_steps: 113 if failed_steps:
114 raise self.m.step.StepFailure( 114 raise self.m.step.StepFailure(
115 "the following steps in %s failed: %s" % 115 "the following steps in %s failed: %s" %
116 (step_name, failed_steps)) 116 (step_name, failed_steps))
OLDNEW
« no previous file with comments | « recipe_engine/unittests/stream_test.py ('k') | recipe_modules/generator_script/example.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698