def create_option_parser(): parser = logging_utils.OptionParserWithLogging( usage='%prog <options> [command to run or extra args]', version=__version__, log_file=RUN_ISOLATED_LOG_FILE) parser.add_option( '--clean', action='store_true', help= 'Cleans the cache, trimming it necessary and remove corrupted items ' 'and returns without executing anything; use with -v to know what ' 'was done') parser.add_option( '--no-clean', action='store_true', help= 'Do not clean the cache automatically on startup. This is meant for ' 'bots where a separate execution with --clean was done earlier so ' 'doing it again is redundant') parser.add_option('--use-symlinks', action='store_true', help='Use symlinks instead of hardlinks') parser.add_option( '--json', help= 'dump output metadata to json file. When used, run_isolated returns ' 'non-zero only on internal failure') parser.add_option('--hard-timeout', type='float', help='Enforce hard timeout in execution') parser.add_option('--grace-period', type='float', help='Grace period between SIGTERM and SIGKILL') parser.add_option( '--bot-file', help='Path to a file describing the state of the host. The content is ' 'defined by on_before_task() in bot_config.') data_group = optparse.OptionGroup(parser, 'Data source') data_group.add_option( '-s', '--isolated', help='Hash of the .isolated to grab from the isolate server.') isolateserver.add_isolate_server_options(data_group) parser.add_option_group(data_group) isolateserver.add_cache_options(parser) cipd.add_cipd_options(parser) debug_group = optparse.OptionGroup(parser, 'Debugging') debug_group.add_option( '--leak-temp-dir', action='store_true', help='Deliberately leak isolate\'s temp dir for later examination. ' 'Default: %default') debug_group.add_option('--root-dir', help='Use a directory instead of a random one') parser.add_option_group(debug_group) auth.add_auth_options(parser) parser.set_defaults(cache='cache', cipd_cache='cipd_cache') return parser
def create_option_parser(): parser = logging_utils.OptionParserWithLogging( usage='%prog <options> [command to run or extra args]', version=__version__, log_file=RUN_ISOLATED_LOG_FILE) parser.add_option( '--clean', action='store_true', help= 'Cleans the cache, trimming it necessary and remove corrupted items ' 'and returns without executing anything; use with -v to know what ' 'was done') parser.add_option( '--no-clean', action='store_true', help= 'Do not clean the cache automatically on startup. This is meant for ' 'bots where a separate execution with --clean was done earlier so ' 'doing it again is redundant') parser.add_option('--use-symlinks', action='store_true', help='Use symlinks instead of hardlinks') parser.add_option( '--json', help= 'dump output metadata to json file. When used, run_isolated returns ' 'non-zero only on internal failure') parser.add_option('--hard-timeout', type='float', help='Enforce hard timeout in execution') parser.add_option('--grace-period', type='float', help='Grace period between SIGTERM and SIGKILL') parser.add_option( '--bot-file', help='Path to a file describing the state of the host. The content is ' 'defined by on_before_task() in bot_config.') parser.add_option( '--output', action='append', help='Specifies an output to return. If no outputs are specified, all ' 'files located in $(ISOLATED_OUTDIR) will be returned; ' 'otherwise, outputs in both $(ISOLATED_OUTDIR) and those ' 'specified by --output option (there can be multiple) will be ' 'returned. Note that if a file in OUT_DIR has the same path ' 'as an --output option, the --output version will be returned.') parser.add_option( '-a', '--argsfile', # This is actually handled in parse_args; it's included here purely so it # can make it into the help text. help='Specify a file containing a JSON array of arguments to this ' 'script. If --argsfile is provided, no other argument may be ' 'provided on the command line.') data_group = optparse.OptionGroup(parser, 'Data source') data_group.add_option( '-s', '--isolated', help='Hash of the .isolated to grab from the isolate server.') isolateserver.add_isolate_server_options(data_group) parser.add_option_group(data_group) isolateserver.add_cache_options(parser) cipd.add_cipd_options(parser) named_cache.add_named_cache_options(parser) debug_group = optparse.OptionGroup(parser, 'Debugging') debug_group.add_option( '--leak-temp-dir', action='store_true', help='Deliberately leak isolate\'s temp dir for later examination. ' 'Default: %default') debug_group.add_option('--root-dir', help='Use a directory instead of a random one') parser.add_option_group(debug_group) auth.add_auth_options(parser) parser.set_defaults(cache='cache', cipd_cache='cipd_cache', named_cache_root='named_caches') return parser
def create_option_parser(): parser = logging_utils.OptionParserWithLogging( usage='%prog <options> [command to run or extra args]', version=__version__, log_file=RUN_ISOLATED_LOG_FILE) parser.add_option( '--clean', action='store_true', help='Cleans the cache, trimming it necessary and remove corrupted items ' 'and returns without executing anything; use with -v to know what ' 'was done') parser.add_option( '--no-clean', action='store_true', help='Do not clean the cache automatically on startup. This is meant for ' 'bots where a separate execution with --clean was done earlier so ' 'doing it again is redundant') parser.add_option( '--use-symlinks', action='store_true', help='Use symlinks instead of hardlinks') parser.add_option( '--json', help='dump output metadata to json file. When used, run_isolated returns ' 'non-zero only on internal failure') parser.add_option( '--hard-timeout', type='float', help='Enforce hard timeout in execution') parser.add_option( '--grace-period', type='float', help='Grace period between SIGTERM and SIGKILL') parser.add_option( '--raw-cmd', action='store_true', help='Ignore the isolated command, use the one supplied at the command ' 'line') parser.add_option( '--relative-cwd', help='Ignore the isolated \'relative_cwd\' and use this one instead; ' 'requires --raw-cmd') parser.add_option( '--env', default=[], action='append', help='Environment variables to set for the child process') parser.add_option( '--env-prefix', default=[], action='append', help='Specify a VAR=./path/fragment to put in the environment variable ' 'before executing the command. The path fragment must be relative ' 'to the isolated run directory, and must not contain a `..` token. ' 'The path will be made absolute and prepended to the indicated ' '$VAR using the OS\'s path separator. Multiple items for the same ' '$VAR will be prepended in order.') parser.add_option( '--bot-file', help='Path to a file describing the state of the host. The content is ' 'defined by on_before_task() in bot_config.') parser.add_option( '--switch-to-account', help='If given, switches LUCI_CONTEXT to given logical service account ' '(e.g. "task" or "system") before launching the isolated process.') parser.add_option( '--output', action='append', help='Specifies an output to return. If no outputs are specified, all ' 'files located in $(ISOLATED_OUTDIR) will be returned; ' 'otherwise, outputs in both $(ISOLATED_OUTDIR) and those ' 'specified by --output option (there can be multiple) will be ' 'returned. Note that if a file in OUT_DIR has the same path ' 'as an --output option, the --output version will be returned.') parser.add_option( '-a', '--argsfile', # This is actually handled in parse_args; it's included here purely so it # can make it into the help text. help='Specify a file containing a JSON array of arguments to this ' 'script. If --argsfile is provided, no other argument may be ' 'provided on the command line.') data_group = optparse.OptionGroup(parser, 'Data source') data_group.add_option( '-s', '--isolated', help='Hash of the .isolated to grab from the isolate server.') isolateserver.add_isolate_server_options(data_group) parser.add_option_group(data_group) isolateserver.add_cache_options(parser) cipd.add_cipd_options(parser) group = optparse.OptionGroup(parser, 'Named caches') group.add_option( '--named-cache', dest='named_caches', action='append', nargs=2, default=[], help='A named cache to request. Accepts two arguments, name and path. ' 'name identifies the cache, must match regex [a-z0-9_]{1,4096}. ' 'path is a path relative to the run dir where the cache directory ' 'must be put to. ' 'This option can be specified more than once.') group.add_option( '--named-cache-root', default='named_caches', help='Cache root directory. Default=%default') parser.add_option_group(group) debug_group = optparse.OptionGroup(parser, 'Debugging') debug_group.add_option( '--leak-temp-dir', action='store_true', help='Deliberately leak isolate\'s temp dir for later examination. ' 'Default: %default') debug_group.add_option( '--root-dir', help='Use a directory instead of a random one') parser.add_option_group(debug_group) auth.add_auth_options(parser) parser.set_defaults(cache='cache', cipd_cache='cipd_cache') return parser