Index: recipe_engine/step_runner.py |
diff --git a/recipe_engine/step_runner.py b/recipe_engine/step_runner.py |
index dc3589dbe3249f0084bf46161a683616094774f1..1b0448c97fcdbab3ddcaf13e34db2e5380684fc1 100644 |
--- a/recipe_engine/step_runner.py |
+++ b/recipe_engine/step_runner.py |
@@ -354,22 +354,22 @@ |
def _trigger_builds(self, step, trigger_specs): |
assert trigger_specs is not None |
for trig in trigger_specs: |
- builder_name = trig.builder_name |
+ builder_name = trig.get('builder_name') |
if not builder_name: |
raise ValueError('Trigger spec: builder_name is not set') |
- changes = trig.buildbot_changes or [] |
+ changes = trig.get('buildbot_changes', []) |
assert isinstance(changes, list), 'buildbot_changes must be a list' |
changes = map(self._normalize_change, changes) |
step.trigger(json.dumps({ |
'builderNames': [builder_name], |
- 'bucket': trig.bucket, |
+ 'bucket': trig.get('bucket'), |
'changes': changes, |
# if True and triggering fails asynchronously, fail entire build. |
- 'critical': trig.critical, |
- 'properties': trig.properties, |
- 'tags': trig.tags, |
+ 'critical': trig.get('critical', True), |
+ 'properties': trig.get('properties'), |
+ 'tags': trig.get('tags'), |
}, sort_keys=True)) |
def _normalize_change(self, change): |
@@ -392,6 +392,15 @@ |
steps that would have been run in steps_ran. Uses test_data to mock return |
values. |
""" |
+ |
+ # List of attributes in a recipe_api.StepConfig to omit when rendering |
+ # step history. |
+ _STEP_CONFIG_RENDER_BLACKLIST = set(( |
+ 'nest_level', |
+ 'ok_ret', |
+ 'infra_step', |
+ 'step_test_data', |
+ )) |
def __init__(self, stream_engine, test_data, annotator): |
self._test_data = test_data |
@@ -430,7 +439,7 @@ |
# note that '~' sorts after 'z' so that this will be last on each |
# step. also use _step to get access to the mutable step |
# dictionary. |
- buf = self._annotator.step_buffer(rs.config.name) |
+ buf = self._annotator.step_buffer(rendered_step.config.name) |
lines = filter(None, buf.getvalue()).splitlines() |
lines = [stream.encode_str(x) for x in lines] |
if lines: |
@@ -438,7 +447,7 @@ |
# added step_config to. |
rs = rs._replace(followup_annotations=lines) |
step_stream.close() |
- self._step_history[rs.config.name] = rs |
+ self._step_history[rendered_step.config.name] = rs |
@property |
def stream(inner): |
@@ -464,7 +473,8 @@ |
self._test_data.expected_exception)) |
def _rendered_step_to_dict(self, rs): |
- d = rs.config.render_to_dict() |
+ d = dict((k, v) for k, v in rs.config._asdict().iteritems() |
+ if v and k not in self._STEP_CONFIG_RENDER_BLACKLIST) |
if rs.followup_annotations: |
d['~followup_annotations'] = rs.followup_annotations |
return d |