oVirt Engine Version: 3.5.0.1-1.el6
When cloning or creating a new vm, the network interfaces in /etc/udev/rules.d/70-persistent-net.rules is getting changed - rendering the new new VM un-networkable.
The original file looks like this:
# PCI device 0x1af4:/sys/devices/pci0000:00/0000:00:04.0/virtio1 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR(address)=="00:01:a4:a2:b4:04", ATTR(dev_id)=="0x0", ATTR(type)=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x1af4:/sys/devices/pci0000:00/0000:00:03.0/virtio0 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR(address)=="00:01:a4:a2:b4:03", ATTR(dev_id)=="0x0", ATTR(type)=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x1af4:/sys/devices/pci0000:00/0000:00:05.0/virtio2 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR(address)=="00:01:a4:a2:b4:05", ATTR(dev_id)=="0x0", ATTR(type)=="1", KERNEL=="eth*", NAME="eth2"
However, once the VM is either cloned or a new VM created from a template of this source VM, the file looks like this:
# PCI device 0x1af4:/sys/devices/pci0000:00/0000:00:04.0/virtio1 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR(address)=="00:01:a4:a2:b4:04", ATTR(dev_id)=="0x0", ATTR(type)=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x1af4:/sys/devices/pci0000:00/0000:00:03.0/virtio0 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR(address)=="00:01:a4:a2:b4:03", ATTR(dev_id)=="0x0", ATTR(type)=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x1af4:/sys/devices/pci0000:00/0000:00:05.0/virtio2 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR(address)=="00:01:a4:a2:b4:05", ATTR(dev_id)=="0x0", ATTR(type)=="1", KERNEL=="eth*", NAME="eth2"
# PCI device 0x1af4:/sys/devices/pci0000:00/0000:00:04.0/virtio1 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR(address)=="00:01:a4:a2:b4:10", ATTR(dev_id)=="0x0", ATTR(type)=="1", KERNEL=="eth*", NAME="eth3"
# PCI device 0x1af4:/sys/devices/pci0000:00/0000:00:03.0/virtio1 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR(address)=="00:01:a4:a2:b4:0f", ATTR(dev_id)=="0x0", ATTR(type)=="1", KERNEL=="eth*", NAME="eth5"
The 'correct' interfaces are still there, but out of sequence and there are two additional interfaces that do not belong there.
Ovirt admin console is showing the correct number of interfaces as seen in this image: