diff options
Diffstat (limited to 'tools/misc/netfix')
-rw-r--r-- | tools/misc/netfix | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tools/misc/netfix b/tools/misc/netfix new file mode 100644 index 0000000000..def4e28a6c --- /dev/null +++ b/tools/misc/netfix @@ -0,0 +1,61 @@ +#!/usr/bin/python +# -*- mode: python; -*- +# Copyright (C) 2004 Mike Wray <mike.wray@hp.com> +#============================================================================ +# Move the IP address from eth0 onto the Xen bridge (nbe-br). +# Only works if the bridge control utils (brctl) have been installed. +#============================================================================ + +from getopt import getopt +from xen.xend.XendBridge import * + +short_options = 'hvqni:b:c' +long_options = ['help', 'verbose', 'quiet', + 'interface=', 'bridge=', 'create'] + +def usage(): + print """Usage: + %s [options] + + Reconfigure routing so that <bridge> has the IP address from + <interface>. This lets IP carry on working when <interface> + is attached to <bridge> for virtual networking. + Uses brctl to add <interface> to <bridge>, + so this can be run before any domains have been created. + """ % sys.argv[0] + print """ + -i, --interface <interface> interface, default %(interface)s. + -b, --bridge <bridge> bridge, default %(bridge)s. + -c, --create create the bridge. + -v, --verbose Print commands. + -q, --quiet Don't print commands. + -n, --dry-run Don't execute commands. + -h, --help Print this help. + """ % defaults + sys.exit(1) + + +def main(): + lopts = set_opts(Opts(defaults)) + lopts.dryrun = 0 + (options, args) = getopt(sys.argv[1:], short_options, long_options) + if args: usage() + for k, v in options: + if k in ['-h', '--help']: + usage() + elif k in ['-c', '--create']: + lopts.create = 1 + elif k in ['-i', '--interface']: + lopts.interface = v + elif k in ['-b', '--bridge']: + lopts.bridge = v + elif k in ['-q', '--quiet']: + lopts.verbose = 0 + elif k in ['-v', '--verbose']: + lopts.verbose = 1 + elif k in ['-n', '--dry-run']: + lopts.dryrun = 1 + reconfigure(lopts.interface, lopts.bridge) + +if __name__ == '__main__': + main() |