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