#!/usr/bin/env python # -*- mode: python; -*- #============================================================================ # Copyright (C) 2004 Mike Wray #============================================================================ # Move the IP address from eth0 onto the Xen bridge (xenbr0). # Only works if the bridge control utils (brctl) have been installed. #============================================================================ from getopt import getopt # add fallback path for non-native python path installs if needed sys.path.append('/usr/lib/python') sys.path.append('/usr/lib64/python') from xen.util.Brctl import * short_options = 'hvqni:b:c' long_options = ['help', 'verbose', 'quiet', 'interface=', 'bridge=', 'create'] defaults['interface'] = 'eth0' defaults['bridge'] = 'xenbr0' def usage(): print """Usage: %s [options] Reconfigure routing so that has the IP address from . This lets IP carry on working when is attached to for virtual networking. Uses brctl to add to , so this can be run before any domains have been created. """ % sys.argv[0] print """ -i, --interface interface, default %(interface)s. -b, --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()