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 08851020dd39a1246c9c509b953eae9a1cbfc555..5427c49adfc6b900946ce78de3b3b9d6ac42e48c 100755 |
| --- a/recipe_modules/bot_update/resources/bot_update.py |
| +++ b/recipe_modules/bot_update/resources/bot_update.py |
| @@ -622,23 +622,6 @@ def apply_gerrit_ref(gerrit_repo, gerrit_ref, root, gerrit_reset, |
| except SubprocessFailed as e: |
| raise PatchFailed(e.message, e.code, e.output) |
| -def check_flag(flag_file): |
| - """Returns True if the flag file is present.""" |
| - return os.path.isfile(flag_file) |
| - |
| - |
| -def delete_flag(flag_file): |
| - """Remove bot update flag.""" |
| - if os.path.isfile(flag_file): |
| - os.remove(flag_file) |
| - |
| - |
| -def emit_flag(flag_file): |
| - """Deposit a bot update flag on the system to tell gclient not to run.""" |
| - print 'Emitting flag file at %s' % flag_file |
| - with open(flag_file, 'wb') as f: |
| - f.write('Success!') |
| - |
| def get_commit_position(git_path, revision='HEAD'): |
| """Dumps the 'git' log for a specific revision and parses out the commit |
| @@ -850,14 +833,9 @@ 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('-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.') |
| - parse.add_option('--revision_mapping', |
| - help='{"path/to/repo/": "property_name"}') |
| parse.add_option('--revision_mapping_file', |
| - help=('Same as revision_mapping, except its a path to a json' |
| - ' file containing that format.')) |
| + help=('Path to a json file of the form ' |
| + '{"path/to/repo/": "property_name"}')) |
| parse.add_option('--revision', action='append', default=[], |
| help='Revision to check out. Can be any form of git ref. ' |
| 'Can prepend root@<rev> to specify which repository, ' |
| @@ -865,19 +843,9 @@ def parse_args(): |
| 'url. To specify Tip of Tree, set rev to HEAD. ') |
| parse.add_option('--output_manifest', action='store_true', |
| help=('Add manifest json to the json output.')) |
| - 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('--build_dir', default=os.getcwd()) |
| - parse.add_option('--flag_file', default=path.join(os.getcwd(), |
| - 'update.flag')) |
| - parse.add_option('--shallow', action='store_true', |
| - help='Use shallow clones for cache repositories.') |
| parse.add_option('--clobber', action='store_true', |
| help='Delete checkout first, always') |
| - parse.add_option('--bot_update_clobber', action='store_true', dest='clobber', |
| - help='(synonym for --clobber)') |
| - parse.add_option('-o', '--output_json', |
| + parse.add_option('--output_json', |
| help='Output JSON information into a specified file') |
| parse.add_option('--no_shallow', action='store_true', |
| help='Bypass disk detection and never shallow clone. ' |
| @@ -904,14 +872,11 @@ def parse_args(): |
| del options.with_branch_heads |
| try: |
| - if options.revision_mapping_file: |
| - if options.revision_mapping: |
| - print ('WARNING: Ignoring --revision_mapping: --revision_mapping_file ' |
| - 'was set at the same time as --revision_mapping?') |
| - with open(options.revision_mapping_file, 'r') as f: |
| - options.revision_mapping = json.load(f) |
| - elif options.revision_mapping: |
| - options.revision_mapping = json.loads(options.revision_mapping) |
| + if not options.revision_mapping_file: |
| + parse.error('--revision_mapping_file is required') |
| + |
| + with open(options.revision_mapping_file, 'r') as f: |
| + options.revision_mapping = json.load(f) |
| except Exception as e: |
| print ( |
| 'WARNING: Caught execption while parsing revision_mapping*: %s' |
| @@ -930,14 +895,10 @@ def parse_args(): |
| def prepare(options, git_slns, active): |
| """Prepares the target folder before we checkout.""" |
| dir_names = [sln.get('name') for sln in git_slns if 'name' in sln] |
| - # If we're active now, but the flag file doesn't exist (we weren't active |
| - # last run) or vice versa, blow away all checkouts. |
| - if options.clobber or (bool(active) != bool(check_flag(options.flag_file))): |
| + if options.clobber: |
| ensure_no_checkout(dir_names) |
| - if options.output_json: |
| - # Make sure we tell recipes that we didn't run if the script exits here. |
| - emit_json(options.output_json, did_run=active) |
| - emit_flag(options.flag_file) |
| + # Make sure we tell recipes that we didn't run if the script exits here. |
| + emit_json(options.output_json, did_run=active) |
| # Do a shallow checkout if the disk is less than 100GB. |
| total_disk_space, free_disk_space = get_total_disk_space() |
| @@ -950,9 +911,8 @@ def prepare(options, git_slns, active): |
| percent_used) |
| if not options.output_json: |
| print '@@@STEP_TEXT@%s@@@' % step_text |
| - if not options.shallow: |
| - options.shallow = (total_disk_space < SHALLOW_CLONE_THRESHOLD |
| - and not options.no_shallow) |
| + options.shallow = (total_disk_space < SHALLOW_CLONE_THRESHOLD |
|
hinoka
2016/09/09 02:11:32
or just "shallow = " (not sure if assigning to a n
iannucci
2016/09/09 22:28:17
done, and passed it through. assigning does work,
|
| + and not options.no_shallow) |
| # The first solution is where the primary DEPS file resides. |
| first_sln = dir_names[0] |
| @@ -1073,10 +1033,6 @@ def main(): |
| # Get inputs. |
| options, _ = parse_args() |
| - # 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 = True |
| @@ -1097,7 +1053,6 @@ def main(): |
| checkout(options, git_slns, specs, revisions, step_text) |
| except PatchFailed as e: |
| - emit_flag(options.flag_file) |
| # Return a specific non-zero exit code for patch failure (because it is |
| # a failure), but make it different than other failures to distinguish |
| # between infra failures (independent from patch author), and patch |
| @@ -1108,12 +1063,6 @@ def main(): |
| return 87 |
| # Genuine patch problem. |
| return 88 |
| - except Exception: |
| - # Unexpected failure. |
| - emit_flag(options.flag_file) |
| - raise |
| - else: |
| - emit_flag(options.flag_file) |
| if __name__ == '__main__': |