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

Side by Side Diff: scripts/slave/recipe_modules/swarming/api.py

Issue 2362733002: [swarming/api] Add text in to indicate whether a shard is failing (Closed)
Patch Set: handle case shards[index] is None Created 4 years, 2 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 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 import datetime 5 import datetime
6 import functools 6 import functools
7 7
8 from recipe_engine import recipe_api 8 from recipe_engine import recipe_api
9 9
10 10
(...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after
786 step_result.raw_io.output_dir['summary.json']) 786 step_result.raw_io.output_dir['summary.json'])
787 if any(shard['internal_failure'] for shard in summary['shards']): 787 if any(shard['internal_failure'] for shard in summary['shards']):
788 raise recipe_api.InfraFailure('Internal swarming failure.') 788 raise recipe_api.InfraFailure('Internal swarming failure.')
789 789
790 # Always show the shards' links in the collect step. (It looks 790 # Always show the shards' links in the collect step. (It looks
791 # like show_isolated_out_in_collect_step is false by default 791 # like show_isolated_out_in_collect_step is false by default
792 # in recipe runs.) 792 # in recipe runs.)
793 links = step_result.presentation.links 793 links = step_result.presentation.links
794 for index in xrange(task.shards): 794 for index in xrange(task.shards):
795 url = task.get_shard_view_url(index) 795 url = task.get_shard_view_url(index)
796 if summary['shards'][index] is None:
797 display_text = 'shard #%d (failed - result not received)' % index
M-A Ruel 2016/09/22 21:09:19 We should treat that as an infrastructure failure
nednguyen 2016/09/22 21:46:03 Done.
798 elif summary['shards'][index].get('exit_code', 0) != 0:
M-A Ruel 2016/09/22 21:09:19 , None) since if it's missing this is bad.
nednguyen 2016/09/22 21:46:03 Done.
799 display_text = 'shard #%d (failed)' % index
800 else:
801 display_text = 'shard #%d' % index
796 if url: 802 if url:
797 links['shard #%d' % index] = url 803 links[display_text] = url
798 804
799 step_result.isolated_script_results = \ 805 step_result.isolated_script_results = \
800 self._merge_isolated_script_shards(task, step_result) 806 self._merge_isolated_script_shards(task, step_result)
801 807
802 self._display_pending(summary, step_result.presentation) 808 self._display_pending(summary, step_result.presentation)
803 except Exception as e: 809 except Exception as e:
804 self.m.step.active_result.presentation.logs['no_results_exc'] = [str(e)] 810 self.m.step.active_result.presentation.logs['no_results_exc'] = [str(e)]
805 self.m.step.active_result.isolated_script_results = None 811 self.m.step.active_result.isolated_script_results = None
806 812
807 def _get_step_name(self, prefix, task): 813 def _get_step_name(self, prefix, task):
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
989 995
990 def get_shard_view_url(self, index): 996 def get_shard_view_url(self, index):
991 """Returns URL of HTML page with shard details or None if not available. 997 """Returns URL of HTML page with shard details or None if not available.
992 998
993 Works only after the task has been successfully triggered. 999 Works only after the task has been successfully triggered.
994 """ 1000 """
995 if self._trigger_output and self._trigger_output.get('tasks'): 1001 if self._trigger_output and self._trigger_output.get('tasks'):
996 for shard_dict in self._trigger_output['tasks'].itervalues(): 1002 for shard_dict in self._trigger_output['tasks'].itervalues():
997 if shard_dict['shard_index'] == index: 1003 if shard_dict['shard_index'] == index:
998 return shard_dict['view_url'] 1004 return shard_dict['view_url']
OLDNEW
« 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