Ejemplo n.º 1
0
def main(args=None):
    parser = argparse.ArgumentParser(
        description="Releng API Command Line Tool")
    parser.add_argument("--quiet", '-q', action='store_true',
                        help="Silence all logging below WARNING level")
    parser.add_argument("--disable-logging", '-Q', action='store_true',
                        help="Silence all logging")
    subparsers = parser.add_subparsers(help='sub-command help')

    # each of the Subcommand subclasses was loaded when the blueprints were
    # imported in relengapi.app
    cmds = [cls() for cls in subcommands.Subcommand.__subclasses__()]
    for cmd in cmds:
        subparser = cmd.make_parser(subparsers)
        subparser.set_defaults(_subcommand=cmd)

    args = parser.parse_args(args)

    if args._subcommand and args._subcommand.want_logging and not args.disable_logging:
        setupConsoleLogging(args.quiet)
    else:
        # blueprints.slaveloan.bugzilla complains about not having a handler
        logging.getLogger().addHandler(logging.NullHandler())

    # make the RELENGAPI_SETTINGS env var an absolute path; without this, Flask
    # uses the application's root_dir, which isn't especially helpful in a
    # development context.
    var_name = 'RELENGAPI_SETTINGS'
    if var_name in os.environ:
        os.environ[var_name] = os.path.abspath(os.environ[var_name])

    app = relengapi.app.create_app(cmdline=True)
    with app.app_context():
        args._subcommand.run(parser, args)
Ejemplo n.º 2
0
def main(args=None):
    parser = argparse.ArgumentParser(
        description="Releng API Command Line Tool")
    parser.add_argument("--quiet",
                        '-q',
                        action='store_true',
                        help="Silence all logging below WARNING level")
    parser.add_argument("--disable-logging",
                        '-Q',
                        action='store_true',
                        help="Silence all logging")
    subparsers = parser.add_subparsers(help='sub-command help')

    # each of the Subcommand subclasses was loaded when the blueprints were
    # imported in relengapi.app
    cmds = [cls() for cls in subcommands.Subcommand.__subclasses__()]
    for cmd in cmds:
        subparser = cmd.make_parser(subparsers)
        subparser.set_defaults(_subcommand=cmd)

    args = parser.parse_args(args)

    if args._subcommand and args._subcommand.want_logging and not args.disable_logging:
        setupConsoleLogging(args.quiet)
    else:
        # blueprints.slaveloan.bugzilla complains about not having a handler
        logging.getLogger().addHandler(logging.NullHandler())

    # make the RELENGAPI_SETTINGS env var an absolute path; without this, Flask
    # uses the application's root_dir, which isn't especially helpful in a
    # development context.
    var_name = 'RELENGAPI_SETTINGS'
    if var_name in os.environ:
        os.environ[var_name] = os.path.abspath(os.environ[var_name])

    app = relengapi.app.create_app(cmdline=True)
    with app.app_context():
        args._subcommand.run(parser, args)
Ejemplo n.º 3
0
def test_setupConsoleLogging_loud(app):
    relengapi_logging.setupConsoleLogging(False)
    root = logging.getLogger("")
    stdout_log = relengapi_logging.stdout_log
    assert stdout_log in root.handlers
    eq_(root.level, logging.NOTSET)
Ejemplo n.º 4
0
def test_setupConsoleLogging_quiet(app):
    relengapi_logging.setupConsoleLogging(True)
    root = logging.getLogger("")
    stdout_log = relengapi_logging.stdout_log
    assert stdout_log in root.handlers
    eq_(root.level, logging.WARNING)
Ejemplo n.º 5
0
def test_setupConsoleLogging_loud(app):
    relengapi_logging.setupConsoleLogging(False)
    root = logging.getLogger("")
    stdout_log = relengapi_logging.stdout_log
    assert stdout_log in root.handlers
    eq_(root.level, logging.NOTSET)
Ejemplo n.º 6
0
def test_setupConsoleLogging_quiet(app):
    relengapi_logging.setupConsoleLogging(True)
    root = logging.getLogger("")
    stdout_log = relengapi_logging.stdout_log
    assert stdout_log in root.handlers
    eq_(root.level, logging.WARNING)