xend: Fix duplicate random MAC generation.

Ensure that HVMImageHandler and NetifController see the same random
MAC address.

Signed-off-by: David Edmondson <dme@sun.com>
This commit is contained in:
kfraser@localhost.localdomain committed 2007-06-11 10:22:32 +01:00
1 parent fbaf0773bb
commit 60d7c11db9
3 files changed
+10 -5

No files matched your search

+8 -2
View File
@@ -27,6 +27,7 @@ from xen.xend.XendError import VmError
from xen.xend.XendDevices import XendDevices
from xen.xend.PrettyPrint import prettyprintstring
from xen.xend.XendConstants import DOM_STATE_HALTED
from xen.xend.server.netif import randomMAC
log = logging.getLogger("xend.XendConfig")
log.setLevel(logging.WARN)
@@ -993,6 +994,10 @@ class XendConfig(dict):
else:
dev_info['driver'] = 'paravirtualised'
if dev_type == 'vif':
if not dev_info.get('mac'):
dev_info['mac'] = randomMAC()
# create uuid if it doesn't exist
dev_uuid = dev_info.get('uuid', None)
if not dev_uuid:
@@ -1051,8 +1056,9 @@ class XendConfig(dict):
dev_info = {}
dev_uuid = ''
if dev_type == 'vif':
if cfg_xenapi.get('MAC'): # don't add if blank
dev_info['mac'] = cfg_xenapi.get('MAC')
dev_info['mac'] = cfg_xenapi.get('MAC')
if not dev_info['mac']:
dev_info['mac'] = randomMAC()
# vifname is the name on the guest, not dom0
# TODO: we don't have the ability to find that out or
# change it from dom0
+1 -2
View File
@@ -27,7 +27,6 @@ from xen.xend.XendConstants import REVERSE_DOMAIN_SHUTDOWN_REASONS
from xen.xend.XendError import VmError, XendError, HVMRequired
from xen.xend.XendLogging import log
from xen.xend.XendOptions import instance as xenopts
from xen.xend.server.netif import randomMAC
from xen.xend.xenstore.xswatch import xswatch
from xen.xend import arch
@@ -351,7 +350,7 @@ class HVMImageHandler(ImageHandler):
nics += 1
mac = devinfo.get('mac')
if mac is None:
mac = randomMAC()
raise VmError("MAC address not specified or generated.")
bridge = devinfo.get('bridge', 'xenbr0')
model = devinfo.get('model', 'rtl8139')
ret.append("-net")
+1 -1
View File
@@ -112,7 +112,7 @@ class NetifController(DevController):
typ = xoptions.netback_type
if not mac:
mac = randomMAC()
raise VmError("MAC address not specified or generated.")
devid = self.allocateDeviceID()
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.