mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
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:
1 parent
fbaf0773bb
commit
60d7c11db9
3 files changed
+10
-5
No files matched your search
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||