From a801b2ab6b682cfb17ec4ac8adbe727dbe931583 Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Mon, 6 Jun 2005 19:46:33 +0000 Subject: bitkeeper revision 1.1662.1.12 (42a4a819BMGTxn8p4rsFdp44pCQ_Og) netif.py: Use macFromString, macToString. mac.py: new file Signed-off-by: Mike Wray Signed-off-by: Christian Limpach --- .rootkeys | 1 + tools/python/xen/util/mac.py | 11 +++++++++++ tools/python/xen/xend/server/netif.py | 18 ++++++++++++------ 3 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 tools/python/xen/util/mac.py diff --git a/.rootkeys b/.rootkeys index 3759be63f9..77b06993c5 100644 --- a/.rootkeys +++ b/.rootkeys @@ -812,6 +812,7 @@ 4270e4efFg3wHCCxXpA0h6yoMTkeSQ tools/python/xen/util/blkif.py 4055ee4dwy4l0MghZosxoiu6zmhc9Q tools/python/xen/util/console_client.py 40c9c468IienauFHQ_xJIcqnPJ8giQ tools/python/xen/util/ip.py +42a4a80aiq_AT5whiSw-fKhNhRKITw tools/python/xen/util/mac.py 41dde8b0yuJX-S79w4xJKxBQ-Mhp1A tools/python/xen/util/memmap.py 4288c6fcB1kUAqX0gzU85GGxmamS4Q tools/python/xen/util/process.py 4059c6a0pnxhG8hwSOivXybbGOwuXw tools/python/xen/util/tempfile.py diff --git a/tools/python/xen/util/mac.py b/tools/python/xen/util/mac.py new file mode 100644 index 0000000000..47dffd80d5 --- /dev/null +++ b/tools/python/xen/util/mac.py @@ -0,0 +1,11 @@ + +from string import join, split + +def macToString(mac): + return ':'.join(map(lambda x: "%02x" % x, mac)) + +def macFromString(str): + mac = [ int(x, 16) for x in str.split(':') ] + if len(mac) != 6: + raise ValueError("invalid mac: %s" % str) + return mac diff --git a/tools/python/xen/xend/server/netif.py b/tools/python/xen/xend/server/netif.py index ceb2f912a3..157490f5a2 100755 --- a/tools/python/xen/xend/server/netif.py +++ b/tools/python/xen/xend/server/netif.py @@ -4,6 +4,8 @@ import random +from xen.util.mac import macFromString, macToString + from xen.xend import sxp from xen.xend import Vifctl from xen.xend.XendError import XendError, VmError @@ -49,15 +51,19 @@ class NetDev(Dev): def _get_config_mac(self, config): vmac = sxp.child_value(config, 'mac') if not vmac: return None - mac = [ int(x, 16) for x in vmac.split(':') ] - if len(mac) != 6: raise XendError("invalid mac: %s" % vmac) + try: + mac = macFromString(vmac) + except: + raise XendError("invalid mac: %s" % vmac) return mac def _get_config_be_mac(self, config): vmac = sxp.child_value(config, 'be_mac') if not vmac: return None - mac = [ int(x, 16) for x in vmac.split(':') ] - if len(mac) != 6: raise XendError("invalid backend mac: %s" % vmac) + try: + mac = macFromString(vmac) + except: + raise XendError("invalid backend mac: %s" % vmac) return mac def _get_config_ipaddr(self, config): @@ -212,12 +218,12 @@ class NetDev(Dev): def get_mac(self): """Get the MAC address as a string. """ - return ':'.join(map(lambda x: "%02x" % x, self.mac)) + return macToString(self.mac) def get_be_mac(self): """Get the backend MAC address as a string. """ - return ':'.join(map(lambda x: "%02x" % x, self.be_mac)) + return macToString(self.be_mac) def vifctl_params(self, vmname=None): """Get the parameters to pass to vifctl. -- cgit v1.2.3