ÓÚ 2014/1/21 1:17, Aline Manera дµÀ:
On 01/20/2014 11:34 AM, Sheldon
wrote:
when I create a interface, There is no mac
attribute in the xml.
After create successfully, libvirt will allocate a mac.
The problem is that, How can I get the mac.
Should the CREATE method always needs to return an interface
info?
Here is some of create code.
def vmifaces_create(self, vm, params):
dom = self._get_vm(vm)
xml = """
<interface type='network'>
<source network='default'/>
</interface>
"""
dom.attachDeviceFlags(xml,
libvirt.VIR_DOMAIN_AFFECT_CURRENT)
# here I need to return the mac
return ????
The libvirt will create a xml like the follow? The problem is
that the a vm may have several interfaces.
xml = """
<interface type='network'>
<mac address='52:54:00:2a:53:8f'/>
<source network='default'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
</interface>
"""
We can generate the mac and pass
it to libvirt:
>>> import virtinst.util
>>> print virtinst.util.randomMAC()
00:16:3e:fd:b4:3a
Let libvirt to generate the MAC addresses are better.
randomMAC() does not gurantee that the MAC address generated is
unique, so you need to handle that in your code. If libvirt
doesn't gurantee that either, we can file a bug against libvirt.