Interface changed after 'started' event in hook
Michal Prívozník
mprivozn at redhat.com
Tue Oct 25 09:00:01 UTC 2022
On 10/23/22 18:57, Christopher Pereira wrote:
> Hi,
>
> We have a libvirt-qemu hook script that intercepts the "started" event
> and configures the virtual network interface (we set a private IP,
> remove the interface from the virtual bridge and set some custom iptable
> rules).
>
> After upgrading from libvirt 3.2 to 4.5 we noticed that the interface is
> configured *after* the 'started' event is triggered and thus our custom
> configuration is overwritten (the IP we set is removed).
>
> As a workaround we added a "sleep 5" to our scripts which works, but we
> wonder what is the correct way to avoid libvirt to change the virtual
> interface after the 'started' event is triggered to keep our custom
> configuration.
>
> We have currently this setting:
>
> <interface type='bridge'>
> <mac address='*********'/>
> <source bridge='virbr0'/>
> <model type='virtio'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
> function='0x0'/>
> </interface>
>
> What would be the correct setting to avoid libvirt to change the
> interface after the hook is triggered?
>
>
Looking into the current code, the hook is called only after the domain
was started up:
int
qemuProcessFinishStartup(virQEMUDriver *driver,
virDomainObj *vm,
virDomainAsyncJob asyncJob,
bool startCPUs,
virDomainPausedReason pausedReason)
{
....
if (qemuProcessStartHook(driver, vm,
VIR_HOOK_QEMU_OP_STARTED,
VIR_HOOK_SUBOP_BEGIN) < 0)
return -1;
return 0;
}
There might have been a problem in the past, but honestly, it's more
than 4 years old release. Therefore, if you could reproduce it with
something more recent you have higher chance of somebody looking deeper
into it.
Michal
More information about the libvir-list
mailing list