ÓÚ 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.


I don't if libvirt requires a mac starting with
"52:52:00"
Maybe it is used to avoid generating duplicated mac addresses.


_______________________________________________
Kimchi-devel mailing list
Kimchi-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel