| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 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 copy | 5 import copy |
| 6 import logging | 6 import logging |
| 7 import time | 7 import time |
| 8 | 8 |
| 9 from google.appengine.ext import ndb | 9 from google.appengine.ext import ndb |
| 10 | 10 |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 master_name, builder_name, build_number, step_name): | 127 master_name, builder_name, build_number, step_name): |
| 128 return _GetSwarmingTaskId( | 128 return _GetSwarmingTaskId( |
| 129 master_name, builder_name, build_number, step_name) | 129 master_name, builder_name, build_number, step_name) |
| 130 | 130 |
| 131 assert tests | 131 assert tests |
| 132 | 132 |
| 133 http_client = HttpClient() | 133 http_client = HttpClient() |
| 134 | 134 |
| 135 # 0. Retrieve existing Swarming task ids for the given step. | 135 # 0. Retrieve existing Swarming task ids for the given step. |
| 136 swarming_task_items = swarming_util.ListSwarmingTasksDataByTags( | 136 swarming_task_items = swarming_util.ListSwarmingTasksDataByTags( |
| 137 master_name, builder_name, build_number, http_client, step_name) | 137 master_name, builder_name, build_number, http_client, |
| 138 {'stepname': step_name}) |
| 138 assert len(swarming_task_items) > 0, 'No Swarming task was run.' | 139 assert len(swarming_task_items) > 0, 'No Swarming task was run.' |
| 139 ref_task_id = swarming_task_items[0]['task_id'] | 140 ref_task_id = swarming_task_items[0]['task_id'] |
| 140 | 141 |
| 141 # 1. Retrieve Swarming task parameters from a given Swarming task id. | 142 # 1. Retrieve Swarming task parameters from a given Swarming task id. |
| 142 ref_request = swarming_util.GetSwarmingTaskRequest( | 143 ref_request = swarming_util.GetSwarmingTaskRequest( |
| 143 ref_task_id, http_client) | 144 ref_task_id, http_client) |
| 144 | 145 |
| 145 # 2. Update/Overwrite parameters for the re-run. | 146 # 2. Update/Overwrite parameters for the re-run. |
| 146 iterations_to_rerun = waterfall_config.GetSwarmingSettings().get( | 147 iterations_to_rerun = waterfall_config.GetSwarmingSettings().get( |
| 147 'iterations_to_rerun') | 148 'iterations_to_rerun') |
| 148 new_request = _CreateNewSwarmingTaskRequest( | 149 new_request = _CreateNewSwarmingTaskRequest( |
| 149 ref_task_id, ref_request, master_name, builder_name, build_number, | 150 ref_task_id, ref_request, master_name, builder_name, build_number, |
| 150 step_name, tests, iterations_to_rerun) | 151 step_name, tests, iterations_to_rerun) |
| 151 | 152 |
| 152 # 3. Trigger a new Swarming task to re-run the failed tests. | 153 # 3. Trigger a new Swarming task to re-run the failed tests. |
| 153 task_id = swarming_util.TriggerSwarmingTask(new_request, http_client) | 154 task_id = swarming_util.TriggerSwarmingTask(new_request, http_client) |
| 154 | 155 |
| 155 # Save the task id. | 156 # Save the task id. |
| 156 swarming_task = WfSwarmingTask.Get( | 157 swarming_task = WfSwarmingTask.Get( |
| 157 master_name, builder_name, build_number, step_name) | 158 master_name, builder_name, build_number, step_name) |
| 158 swarming_task.task_id = task_id | 159 swarming_task.task_id = task_id |
| 159 swarming_task.parameters['tests'] = tests | 160 swarming_task.parameters['tests'] = tests |
| 160 swarming_task.parameters['iterations_to_rerun'] = iterations_to_rerun | 161 swarming_task.parameters['iterations_to_rerun'] = iterations_to_rerun |
| 161 swarming_task.parameters['ref_name'] = swarming_util.GetTagValue( | 162 swarming_task.parameters['ref_name'] = swarming_util.GetTagValue( |
| 162 new_request.tags, 'ref_name') | 163 new_request.tags, 'ref_name') |
| 163 swarming_task.put() | 164 swarming_task.put() |
| 164 | 165 |
| 165 logging.info('A Swarming task was triggered:%s', task_id) | 166 logging.info('A Swarming task was triggered:%s', task_id) |
| 166 return task_id | 167 return task_id |
| OLD | NEW |