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

Side by Side Diff: appengine/findit/waterfall/flake/recursive_flake_pipeline.py

Issue 2130543004: Waterfall components of regression range finder. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: refactored Created 4 years, 5 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
OLDNEW
(Empty)
1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 from datetime import datetime
6 import logging
7
8 from common import appengine_util
9 from common import constants
10 from common.pipeline_wrapper import BasePipeline
11
12 from model import analysis_status
13 from model.flake.master_flake_analysis import MasterFlakeAnalysis
14 from waterfall.trigger_flake_swarming_task_pipeline import (
15 TriggerFlakeSwarmingTaskPipeline as TFSTP)
16 from waterfall.process_flake_swarming_task_result_pipeline import (
17 ProcessFlakeSwarmingTaskResultPipeline as PFSTRP)
18
19
20 class RecursiveFlakePipeline(BasePipeline):
21
22 def __init__(self, master_name, builder_name, run_build_number,
23 step_name, test_name, master_build_number):
24 super(RecursiveFlakePipeline, self).__init__(
25 master_name, builder_name, run_build_number, step_name,
26 test_name, master_build_number)
27 self.master_name = master_name
stgao 2016/07/14 18:34:50 Still, I'm wondering why we need to save these unu
caiw 2016/07/15 00:25:10 Done.
28 self.builder_name = builder_name
29 self.run_build_number = run_build_number
30 self.step_name = step_name
31 self.test_name = test_name
32 self.master_build_number = master_build_number
33 self.step_future = None
34 self.build_completed = None
35 self.target = None
36
37 # Arguments number differs from overridden method - pylint: disable=W0221
38 def run(self, master_name, builder_name, run_build_number, step_name,
39 test_name, master_build_number, queue_name=constants.DEFAULT_QUEUE):
40 # Call trigger pipeline (flake style)
41 task_id = yield TFSTP(master_name, builder_name,
42 run_build_number, step_name, [test_name])
43 # Pass the trigger pipeline into a process pipeline
44 test_result_future = yield PFSTRP(
stgao 2016/07/14 18:34:50 style nit: avoid abbreviation.
caiw 2016/07/15 00:25:10 Done.
45 master_name, builder_name, run_build_number,
46 step_name, task_id, master_build_number, test_name)
47
48 yield NextBuildNumberPipeline(
49 master_name, builder_name, master_build_number,
50 step_name, test_name, test_result_future, queue_name)
51
52 class NextBuildNumberPipeline(BasePipeline):
53 # Arguments number differs from overridden method - pylint: disable=W0221
54 # Unused argument - pylint: disable=W0613
55 def run(self, master_name, builder_name, master_build_number, step_name,
56 test_name, test_result_future, queue_name):
57 # Get MasterFlakeAnalysis success list corresponding to parameters
58 master = MasterFlakeAnalysis.Get(master_name, builder_name,
59 master_build_number, step_name, test_name)
60 # Figure out what build_number we should call, if any
61 # This is a placeholder for testing:
62 next_run = False
63 if len(master.build_numbers) < 10:
64 #TODO(caiw): Develop algorithm to optimize this.
65 next_run = min(master.build_numbers) - 10
66 if next_run:
67 pipeline_job = RecursiveFlakePipeline(
68 master_name, builder_name, next_run, step_name, test_name,
69 master_build_number)
70 pipeline_job.target = appengine_util.GetTargetNameForModule(
71 constants.WATERFALL_BACKEND)
72 pipeline_job.start(queue_name=queue_name)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698