Chromium Code Reviews| Index: recipe_modules/bot_update/resources/bot_update.py |
| diff --git a/recipe_modules/bot_update/resources/bot_update.py b/recipe_modules/bot_update/resources/bot_update.py |
| index b69b49ffd793bfb9f202fe44fb5076d07905f8b0..9dc1b14d01e204ef6193b38102108e2e55af0d93 100755 |
| --- a/recipe_modules/bot_update/resources/bot_update.py |
| +++ b/recipe_modules/bot_update/resources/bot_update.py |
| @@ -167,62 +167,6 @@ GOT_REVISION_MAPPINGS = { |
| } |
| -BOT_UPDATE_MESSAGE = """ |
| -What is the "Bot Update" step? |
| -============================== |
| - |
| -This step ensures that the source checkout on the bot (e.g. Chromium's src/ and |
| -its dependencies) is checked out in a consistent state. This means that all of |
| -the necessary repositories are checked out, no extra repositories are checked |
| -out, and no locally modified files are present. |
| - |
| -These actions used to be taken care of by the "gclient revert" and "update" |
| -steps. However, those steps are known to be buggy and occasionally flaky. This |
| -step has two main advantages over them: |
| - * it only operates in Git, so the logic can be clearer and cleaner; and |
| - * it is a slave-side script, so its behavior can be modified without |
| - restarting the master. |
| - |
| -Why Git, you ask? Because that is the direction that the Chromium project is |
| -heading. This step is an integral part of the transition from using the SVN repo |
| -at chrome/trunk/src to using the Git repo src.git. Please pardon the dust while |
| -we fully convert everything to Git. This message will get out of your way |
| -eventually, and the waterfall will be a happier place because of it. |
| - |
| -This step can be activated or deactivated independently on every builder on |
| -every master. When it is active, the "gclient revert" and "update" steps become |
| -no-ops. When it is inactive, it prints this message, cleans up after itself, and |
| -lets everything else continue as though nothing has changed. Eventually, when |
| -everything is stable enough, this step will replace them entirely. |
| - |
| -Debugging information: |
| -(master/builder/slave may be unspecified on recipes) |
| -master: %(master)s |
| -builder: %(builder)s |
| -slave: %(slave)s |
| -forced by recipes: %(recipe)s |
| -CURRENT_DIR: %(CURRENT_DIR)s |
| -BUILDER_DIR: %(BUILDER_DIR)s |
| -SLAVE_DIR: %(SLAVE_DIR)s |
| -THIS_DIR: %(THIS_DIR)s |
| -SCRIPTS_DIR: %(SCRIPTS_DIR)s |
| -BUILD_DIR: %(BUILD_DIR)s |
| -ROOT_DIR: %(ROOT_DIR)s |
| -DEPOT_TOOLS_DIR: %(DEPOT_TOOLS_DIR)s |
| -bot_update.py is:""" |
| - |
| -ACTIVATED_MESSAGE = """ACTIVE. |
| -The bot will perform a Git checkout in this step. |
| -The "gclient revert" and "update" steps are no-ops. |
| - |
| -""" |
| - |
| -NOT_ACTIVATED_MESSAGE = """INACTIVE. |
| -This step does nothing. You actually want to look at the "update" step. |
| - |
| -""" |
| - |
| - |
| GCLIENT_TEMPLATE = """solutions = %(solutions)s |
| cache_dir = r%(cache_dir)s |
| @@ -255,98 +199,6 @@ RECOGNIZED_PATHS = { |
| } |
| RECOGNIZED_PATHS.update(internal_data.get('RECOGNIZED_PATHS', {})) |
| -ENABLED_MASTERS = [ |
| - 'bot_update.always_on', |
| - 'chromium.android', |
| - 'chromium.angle', |
| - 'chromium.chrome', |
| - 'chromium.chromedriver', |
| - 'chromium.chromiumos', |
| - 'chromium', |
| - 'chromium.fyi', |
| - 'chromium.goma', |
| - 'chromium.gpu', |
| - 'chromium.gpu.fyi', |
| - 'chromium.infra', |
| - 'chromium.infra.cron', |
| - 'chromium.linux', |
| - 'chromium.lkgr', |
| - 'chromium.mac', |
| - 'chromium.memory', |
| - 'chromium.memory.fyi', |
| - 'chromium.perf', |
| - 'chromium.perf.fyi', |
| - 'chromium.swarm', |
| - 'chromium.webkit', |
| - 'chromium.webrtc', |
| - 'chromium.webrtc.fyi', |
| - 'chromium.win', |
| - 'client.catapult', |
| - 'client.drmemory', |
| - 'client.mojo', |
| - 'client.nacl', |
| - 'client.nacl.ports', |
| - 'client.nacl.sdk', |
| - 'client.nacl.toolchain', |
| - 'client.pdfium', |
| - 'client.skia', |
| - 'client.skia.fyi', |
| - 'client.v8', |
| - 'client.v8.branches', |
| - 'client.v8.fyi', |
| - 'client.v8.ports', |
| - 'client.webrtc', |
| - 'client.webrtc.fyi', |
| - 'tryserver.blink', |
| - 'tryserver.client.catapult', |
| - 'tryserver.client.mojo', |
| - 'tryserver.chromium.android', |
| - 'tryserver.chromium.angle', |
| - 'tryserver.chromium.linux', |
| - 'tryserver.chromium.mac', |
| - 'tryserver.chromium.perf', |
| - 'tryserver.chromium.win', |
| - 'tryserver.infra', |
| - 'tryserver.nacl', |
| - 'tryserver.v8', |
| - 'tryserver.webrtc', |
| -] |
| -ENABLED_MASTERS += internal_data.get('ENABLED_MASTERS', []) |
| - |
| -ENABLED_BUILDERS = { |
| - 'client.dart.fyi': [ |
| - 'v8-linux-release', |
| - 'v8-mac-release', |
| - 'v8-win-release', |
| - ], |
| - 'client.dynamorio': [ |
| - 'linux-v8-dr', |
| - ], |
| -} |
| -ENABLED_BUILDERS.update(internal_data.get('ENABLED_BUILDERS', {})) |
| - |
| -ENABLED_SLAVES = {} |
| -ENABLED_SLAVES.update(internal_data.get('ENABLED_SLAVES', {})) |
| - |
| -# Disabled filters get run AFTER enabled filters, so for example if a builder |
| -# config is enabled, but a bot on that builder is disabled, that bot will |
| -# be disabled. |
| -DISABLED_BUILDERS = {} |
| -DISABLED_BUILDERS.update(internal_data.get('DISABLED_BUILDERS', {})) |
| - |
| -DISABLED_SLAVES = {} |
| -DISABLED_SLAVES.update(internal_data.get('DISABLED_SLAVES', {})) |
| - |
| -# These masters work only in Git, meaning for got_revision, always output |
| -# a git hash rather than a SVN rev. |
| -GIT_MASTERS = [ |
| - 'client.v8', |
| - 'client.v8.branches', |
| - 'client.v8.ports', |
| - 'tryserver.v8', |
| -] |
| -GIT_MASTERS += internal_data.get('GIT_MASTERS', []) |
| - |
| # How many times to try before giving up. |
| ATTEMPTS = 5 |
| @@ -525,34 +377,6 @@ def get_gclient_spec(solutions, target_os, target_os_only, git_cache_dir): |
| } |
| -def check_enabled(master, builder, slave): |
| - if master in ENABLED_MASTERS: |
| - return True |
| - builder_list = ENABLED_BUILDERS.get(master) |
| - if builder_list and builder in builder_list: |
| - return True |
| - slave_list = ENABLED_SLAVES.get(master) |
| - if slave_list and slave in slave_list: |
| - return True |
| - return False |
| - |
| - |
| -def check_disabled(master, builder, slave): |
| - """Returns True if disabled, False if not disabled.""" |
| - builder_list = DISABLED_BUILDERS.get(master) |
| - if builder_list and builder in builder_list: |
| - return True |
| - slave_list = DISABLED_SLAVES.get(master) |
| - if slave_list and slave in slave_list: |
| - return True |
| - return False |
| - |
| - |
| -def check_valid_host(master, builder, slave): |
| - return (check_enabled(master, builder, slave) |
| - and not check_disabled(master, builder, slave)) |
| - |
| - |
| def maybe_ignore_revision(revision, buildspec): |
| """Handle builders that don't care what buildbot tells them to build. |
| @@ -1388,9 +1212,6 @@ def parse_args(): |
| parse.add_option('--gerrit_no_reset', action='store_true', |
| help='Bypass calling reset after applying a gerrit ref.') |
| parse.add_option('--specs', help='Gcilent spec.') |
| - parse.add_option('--master', |
| - help='Master name. If specified and it is not in ' |
| - 'bot_update\'s whitelist, bot_update will be noop.') |
| parse.add_option('-f', '--force', action='store_true', |
| help='Bypass check to see if we want to be run. ' |
| 'Should ONLY be used locally or by smart recipes.') |
| @@ -1412,8 +1233,6 @@ def parse_args(): |
| parse.add_option('--slave_name', default=socket.getfqdn().split('.')[0], |
| help='Hostname of the current machine, ' |
| 'used for determining whether or not to activate.') |
| - parse.add_option('--builder_name', help='Name of the builder, ' |
| - 'used for determining whether or not to activate.') |
| parse.add_option('--build_dir', default=os.getcwd()) |
| parse.add_option('--flag_file', default=path.join(os.getcwd(), |
| 'update.flag')) |
| @@ -1520,7 +1339,7 @@ def prepare(options, git_slns, active): |
| return revisions, step_text |
| -def checkout(options, git_slns, specs, buildspec, master, |
| +def checkout(options, git_slns, specs, buildspec, |
| svn_root, revisions, step_text): |
| first_sln = git_slns[0]['name'] |
| dir_names = [sln.get('name') for sln in git_slns if 'name' in sln] |
| @@ -1583,8 +1402,7 @@ def checkout(options, git_slns, specs, buildspec, master, |
| print '@@@STEP_TEXT@%s PATCH FAILED@@@' % step_text |
| raise |
| - # Revision is an svn revision, unless it's a git master. |
| - use_svn_rev = master not in GIT_MASTERS |
| + use_svn_rev = False |
| # Take care of got_revisions outputs. |
| revision_mapping = dict(GOT_REVISION_MAPPINGS.get(svn_root, {})) |
| @@ -1623,22 +1441,9 @@ def checkout(options, git_slns, specs, buildspec, master, |
| emit_properties(got_revisions) |
| -def print_help_text(force, output_json, active, master, builder, slave): |
| - """Print helpful messages to tell devs whats going on.""" |
| - if force and output_json: |
| - recipe_force = 'Forced on by recipes' |
| - elif active and output_json: |
| - recipe_force = 'Off by recipes, but forced on by bot update' |
| - elif not active and output_json: |
| - recipe_force = 'Forced off by recipes' |
| - else: |
| - recipe_force = 'N/A. Was not called by recipes' |
| - |
| - print BOT_UPDATE_MESSAGE % { |
| - 'master': master or 'Not specified', |
| - 'builder': builder or 'Not specified', |
| - 'slave': slave or 'Not specified', |
| - 'recipe': recipe_force, |
| +def print_debug_info(): |
| + print "Debugging info:" |
| + debug_params = { |
| 'CURRENT_DIR': CURRENT_DIR, |
| 'BUILDER_DIR': BUILDER_DIR, |
| 'SLAVE_DIR': SLAVE_DIR, |
| @@ -1648,26 +1453,23 @@ def print_help_text(force, output_json, active, master, builder, slave): |
| 'ROOT_DIR': ROOT_DIR, |
| 'DEPOT_TOOLS_DIR': DEPOT_TOOLS_DIR, |
| }, |
| - print ACTIVATED_MESSAGE if active else NOT_ACTIVATED_MESSAGE |
| + for k, v in sorted(debug_params.iteritems()): |
| + print "%s: %r" % (k, v) |
| def main(): |
| # Get inputs. |
| options, _ = parse_args() |
| - builder = options.builder_name |
| - slave = options.slave_name |
| - master = options.master |
| # Always run. This option will be removed in a later CL, but for now make sure |
| # that bot_update is ALWAYS set to run, no matter what. |
| options.force = True |
| # Check if this script should activate or not. |
| - active = options.force or check_valid_host(master, builder, slave) |
| + active = True |
| # Print a helpful message to tell developers whats going on with this step. |
| - print_help_text( |
| - options.force, options.output_json, active, master, builder, slave) |
| + print_debug_info() |
| # Parse, munipulate, and print the gclient solutions. |
| specs = {} |
| @@ -1681,7 +1483,7 @@ def main(): |
| try: |
| # Dun dun dun, the main part of bot_update. |
| revisions, step_text = prepare(options, git_slns, active) |
| - checkout(options, git_slns, specs, buildspec, master, svn_root, revisions, |
| + checkout(options, git_slns, specs, buildspec, svn_root, revisions, |
| step_text) |
| except Inactive: |
|
Ryan Tseng
2016/09/08 18:34:54
not used
iannucci
2016/09/08 18:39:05
Yeah, I want to clean these things up in a future
|