Howdy, 'yall -- I found myself scratching my head for a few minutes
trying to start a VM image via virDomainRestore().
Looking through the header definition in the XML, it read as follows:
<interface type="network">
<mac address="00:15:3d:49:ec:0e"/>
<source network="fvte-MIXED-DEFAULT"/>
<target dev="vnet3"/>
<model type="e1000"/>
</interface>
...and on trying to do a virDomainRestore(), it exited with the following:
Traceback (most recent call last):
File "/usr/bin/fvte", line 8, in <module>
load_entry_point('fvte==1.0', 'console_scripts', 'fvte')()
File "/local/home-aux/cduffy/public_git/fvte/src/m1/fvte/cli.py",
line 1838, in main
cli.cmdloop()
File "/opt/python25/lib/python2.5/cmd.py", line 142, in cmdloop
stop = self.onecmd(line)
File "/local/home-aux/cduffy/public_git/fvte/src/m1/fvte/cli.py",
line 1791, in onecmd
cmd.Cmd.onecmd(self, c)
File "/opt/python25/lib/python2.5/cmd.py", line 219, in onecmd
return func(arg)
File "/local/home-aux/cduffy/public_git/fvte/src/m1/fvte/cli.py",
line 1538, in do_mode
self._vmm.vh_set_runmode(name, desired)
File "/local/home-aux/cduffy/public_git/fvte/src/m1/fvte/vmmanip.py",
line 324, in vh_set_runmode
succp = (0 == virt['connect'].restore(ramfile))
File "/opt/python25/lib/python2.5/site-packages/libvirt.py", line
1224, in restore
if ret == -1: raise libvirtError ('virDomainRestore() failed',
conn=self)
libvirt.libvirtError: internal error Failed to add tap interface
'vnet%d' to bridge 'fvtebr0' : No such device
The actual issue was that the fvte-MIXED-DEFAULT network was not
running, and an appropriate "virsh net-start" allowed the domain to
restore correctly; detecting this condition and providing a clearer
error message would probably be a Good Thing.