@cevich 
I think we can not add a get_mac method in VMXMLBase.
```mac``` is in interface, and interface is in devices. So, mac should not be reached directly
in VMXMLBase, but VMXMLBase.get_devices(dev_type="interface"). 

In other word, VMXMLBase contains 'hypervisor_type', 'vm_name', 'vcpu', 'sec_label' and 'devices'.
But, mac is not at the same level with them.

So, @liyangfnst I think there are two ways to achieve your want:
a). Implement the interface in libvirt_xml/devices/interface.py, then you can build a get_first_mac in VMXML
but not VMXMLBase to get the mac of the first network interface.
b). move your current get_mac from VMXMLBase into VMXML. And add a common
```#TODO re-visit this method after the libvirt_xml.devices.interface module implemented```

Anyway, I think we can not access ```mac``` directly in VMXMLBase class.