diff options
author | Tom Wilkie <tom.wilkie@gmail.com> | 2007-04-26 15:48:09 +0100 |
---|---|---|
committer | Tom Wilkie <tom.wilkie@gmail.com> | 2007-04-26 15:48:09 +0100 |
commit | 21cdf90f7acb1303742e6e5249a7d317c2f4bcfe (patch) | |
tree | 9073b04cc8b648238f0632cee56571efd11a7d52 /tools/xm-test/lib | |
parent | 1975a60f78f87b9482c0c86e615093cc71cc582f (diff) | |
download | xen-21cdf90f7acb1303742e6e5249a7d317c2f4bcfe.tar.gz xen-21cdf90f7acb1303742e6e5249a7d317c2f4bcfe.tar.bz2 xen-21cdf90f7acb1303742e6e5249a7d317c2f4bcfe.zip |
[XM-TEST] Move network_utils.py to lib directory
signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>
Diffstat (limited to 'tools/xm-test/lib')
-rw-r--r-- | tools/xm-test/lib/XmTestLib/network_utils.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/tools/xm-test/lib/XmTestLib/network_utils.py b/tools/xm-test/lib/XmTestLib/network_utils.py new file mode 100644 index 0000000000..5c06f2f042 --- /dev/null +++ b/tools/xm-test/lib/XmTestLib/network_utils.py @@ -0,0 +1,60 @@ +#!/usr/bin/python + +# Copyright (C) International Business Machines Corp., 2005 +# Author: Murillo F. Bernardes <mfb@br.ibm.com> + +from XmTestLib import * + +def count_eth(console): + try: + run = console.runCmd("ifconfig -a | grep eth") + except ConsoleError, e: + FAIL(str(e)) + return len(run['output'].splitlines()) + +def get_state(domain_name, number): + s, o = traceCommand("xm network-list %s | awk '/^%d/ {print $5}'" % + (domain_name, number)) + print o + + if s != 0: + FAIL("network-list failed") + if o == "": + return 0 + else: + return int(o) + +def network_attach(domain_name, console, bridge=None): + eths_before = count_eth(console) + if bridge: + status, output = traceCommand("xm network-attach %s bridge=%s" + % (domain_name, bridge)) + else: + status, output = traceCommand("xm network-attach %s" % domain_name) + if status != 0: + return -1, "xm network-attach returned invalid %i != 0" % status + + eths_after = count_eth(console) + if (eths_after != (eths_before+1)): + return -2, "Network device is not actually connected to domU" + + return 0, None + +def network_detach(domain_name, console, num=0): + eths_before = count_eth(console) + status, output = traceCommand("xm network-detach %s %d" % (domain_name, num)) + if status != 0: + return -1, "xm network-detach returned invalid %i != 0" % status + + for i in range(10): + if get_state(domain_name, num) == 0: + break + time.sleep(1) + else: + FAIL("network-detach failed: device did not disappear") + + eths_after = count_eth(console) + if eths_after != (eths_before-1): + return -2, "Network device was not actually disconnected from domU" + + return 0, None |