Chromium Code Reviews| Index: appengine/findit/waterfall/identify_try_job_culprit_pipeline.py |
| diff --git a/appengine/findit/waterfall/identify_try_job_culprit_pipeline.py b/appengine/findit/waterfall/identify_try_job_culprit_pipeline.py |
| index 4a45ea7e79dfacbfeed30a9234254e2af206ffb6..fa2231dc509df706b165b44998a9ca09b8bcf4c4 100644 |
| --- a/appengine/findit/waterfall/identify_try_job_culprit_pipeline.py |
| +++ b/appengine/findit/waterfall/identify_try_job_culprit_pipeline.py |
| @@ -57,12 +57,15 @@ def _GetSuspectedCLs(analysis, result): |
| found by this try job. |
| """ |
| suspected_cls = analysis.suspected_cls[:] if analysis.suspected_cls else [] |
| + suspected_cl_revisions = [cl['revision'] for cl in suspected_cls] |
| culprit = result.get('culprit') |
| compile_cl_info = culprit.get('compile') |
| if compile_cl_info: |
| # Suspected CL is from compile failure. |
| - if compile_cl_info not in suspected_cls: |
| + revision = compile_cl_info.get('revision') |
| + if revision not in suspected_cl_revisions: |
| + suspected_cl_revisions.append(revision) |
| suspected_cls.append(compile_cl_info) |
| return suspected_cls |
| @@ -70,17 +73,21 @@ def _GetSuspectedCLs(analysis, result): |
| for results in culprit.itervalues(): |
| if results.get('revision'): |
| # Non swarming test failures, only have step level failure info. |
| + revision = results.get('revision') |
| cl_info = { |
| - 'review_url': results.get('review_url'), |
| + 'url': results.get('url'), |
|
stgao
2016/04/28 22:21:46
Do we use code review url instead git log url for
chanli
2016/04/28 22:37:34
We are using code_review_url for try jobs as well.
|
| 'repo_name': results.get('repo_name'), |
| 'revision': results.get('revision'), |
| 'commit_position': results.get('commit_position') |
| } |
| - if cl_info not in suspected_cls: |
| + if revision not in suspected_cl_revisions: |
| + suspected_cl_revisions.append(revision) |
| suspected_cls.append(cl_info) |
| else: |
| for test_cl_info in results['tests'].values(): |
| - if test_cl_info not in suspected_cls: |
| + revision = test_cl_info.get('revision') |
| + if revision not in suspected_cl_revisions: |
| + suspected_cl_revisions.append(revision) |
| suspected_cls.append(test_cl_info) |
| return suspected_cls |
| @@ -90,7 +97,7 @@ class IdentifyTryJobCulpritPipeline(BasePipeline): |
| """A pipeline to identify culprit CL info based on try job compile results.""" |
| def _GetCulpritInfo(self, failed_revisions): |
| - """Gets commit_positions and review_urls for revisions.""" |
| + """Gets commit_positions and review urls for revisions.""" |
| culprits = {} |
| # TODO(lijeffrey): remove hard-coded 'chromium' when DEPS file parsing is |
| # supported. |
| @@ -103,7 +110,7 @@ class IdentifyTryJobCulpritPipeline(BasePipeline): |
| if change_log: |
| culprits[failed_revision]['commit_position'] = ( |
| change_log.commit_position) |
| - culprits[failed_revision]['review_url'] = change_log.code_review_url |
| + culprits[failed_revision]['url'] = change_log.code_review_url |
| return culprits |
| @@ -195,12 +202,12 @@ class IdentifyTryJobCulpritPipeline(BasePipeline): |
| return culprit_map, failed_revisions |
| def _UpdateCulpritMapWithCulpritInfo(self, culprit_map, culprits): |
| - """Fills in commit_position and review_url for each failed rev in map.""" |
| + """Fills in commit_position and review url for each failed rev in map.""" |
| for step_culprit in culprit_map.values(): |
| if step_culprit.get('revision'): |
| culprit = culprits[step_culprit['revision']] |
| step_culprit['commit_position'] = culprit['commit_position'] |
| - step_culprit['review_url'] = culprit['review_url'] |
| + step_culprit['url'] = culprit['url'] |
| for test_culprit in step_culprit.get('tests', {}).values(): |
| test_revision = test_culprit['revision'] |
| test_culprit.update(culprits[test_revision]) |