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
      
      I don't if libvirt requires a mac starting with "52:52:00"
    Maybe it is used to avoid generating duplicated mac addresses.