Beispiel #1
0
    sub = subparsers.add_parser('decode',
                                help='decode hex-encoded bgp packets',
                                description=decode.__doc__)
    sub.set_defaults(func=decode.cmdline)
    decode.args(sub)

    sub = subparsers.add_parser('server',
                                help='start exabgp',
                                description=server.__doc__)
    sub.set_defaults(func=server.cmdline)
    server.args(sub)

    sub = subparsers.add_parser('validate',
                                help='validate configuration',
                                description=validate.__doc__)
    sub.set_defaults(func=validate.cmdline)
    validate.args(sub)

    cmdarg = parser.parse_args()
    options = vars(cmdarg)

    if 'func' in options:
        cmdarg.func(cmdarg)
    else:
        parser.print_help()
        environ.default()


if __name__ == '__main__':
    main()
Beispiel #2
0
def main():
    cli_named_pipe = os.environ.get('exabgp_cli_pipe', '')
    if cli_named_pipe:
        from exabgp.application.pipe import main

        main(cli_named_pipe)
        sys.exit(0)

    # compatibility with exabgp 4.x
    if len(sys.argv) > 1 and not ('-h' in sys.argv or '--help' in sys.argv):
        if sys.argv[1] not in ('version', 'cli', 'healthcheck', 'decode',
                               'server', 'env', 'validate'):
            sys.argv = sys.argv[0:1] + ['server'] + sys.argv[1:]

    formatter = argparse.RawDescriptionHelpFormatter
    parser = argparse.ArgumentParser(
        description='The BGP swiss army knife of networking')

    subparsers = parser.add_subparsers()

    sub = subparsers.add_parser('version',
                                help='report exabgp version',
                                description=version.__doc__)
    sub.set_defaults(func=version.cmdline)
    version.args(sub)

    sub = subparsers.add_parser(
        'cli',
        help='control a running exabgp server instance',
        description=cli.__doc__)
    sub.set_defaults(func=cli.cmdline)
    cli.args(sub)

    sub = subparsers.add_parser(
        'healthcheck',
        help='monitor services and announce/withdraw routes',
        description=healthcheck.__doc__,
        formatter_class=formatter,
    )
    sub.set_defaults(func=healthcheck.cmdline)
    # healthcheck.args(sub)

    sub = subparsers.add_parser('env',
                                help='show exabgp configuration information',
                                description=environ.__doc__)
    sub.set_defaults(func=environ.cmdline)
    environ.args(sub)

    sub = subparsers.add_parser('decode',
                                help='decode hex-encoded bgp packets',
                                description=decode.__doc__)
    sub.set_defaults(func=decode.cmdline)
    decode.args(sub)

    sub = subparsers.add_parser('server',
                                help='start exabgp',
                                description=server.__doc__)
    sub.set_defaults(func=server.cmdline)
    server.args(sub)

    sub = subparsers.add_parser('validate',
                                help='validate configuration',
                                description=validate.__doc__)
    sub.set_defaults(func=validate.cmdline)
    validate.args(sub)

    cmdarg = parser.parse_args()
    options = vars(cmdarg)

    if 'func' in options:
        cmdarg.func(cmdarg)
    else:
        parser.print_help()
        environ.default()
Beispiel #3
0
    sub = subparsers.add_parser('server',
                                help='start exabgp',
                                description=server.__doc__)
    sub.set_defaults(func=server.cmdline)
    server.setargs(sub)

    sub = subparsers.add_parser('validate',
                                help='validate configuration',
                                description=validate.__doc__)
    sub.set_defaults(func=validate.cmdline)
    validate.setargs(sub)

    try:
        cmdarg = parser.parse_args()
    except Exception as exc:
        sys.exit(exc.args[-1])

    options = vars(cmdarg)

    if 'func' in options:
        return cmdarg.func(cmdarg)
    else:
        parser.print_help()
        environ.default()
        return 1


if __name__ == '__main__':
    sys.exit(main())