Re: [PATCH v2] ch: Enable callbacks for ch domain events

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/10/24 21:22, Praveen K Paladugu wrote:
> From: Praveen K Paladugu <prapal@xxxxxxxxxxxxxxxxxxx>
> 
> Enable callbacks for define, undefine, started, booted, stopped,
> destroyed events of ch guests.
> 
> Signed-off-by: Praveen K Paladugu <praveenkpaladugu@xxxxxxxxx>
> ---
>  src/ch/ch_conf.h   |  4 +++
>  src/ch/ch_driver.c | 82 ++++++++++++++++++++++++++++++++++++++++++++--
>  2 files changed, 84 insertions(+), 2 deletions(-)
> 
> diff --git a/src/ch/ch_conf.h b/src/ch/ch_conf.h
> index a77cad7a2a..97c6c24aa5 100644
> --- a/src/ch/ch_conf.h
> +++ b/src/ch/ch_conf.h
> @@ -24,6 +24,7 @@
>  #include "virthread.h"
>  #include "ch_capabilities.h"
>  #include "virebtables.h"
> +#include "object_event.h"
>  
>  #define CH_DRIVER_NAME "CH"
>  #define CH_CMD "cloud-hypervisor"
> @@ -75,6 +76,9 @@ struct _virCHDriver
>       * then lockless thereafter */
>      virCHDriverConfig *config;
>  
> +    /* Immutable pointer, self-locking APIs */
> +    virObjectEventState *domainEventState;
> +
>      /* pid file FD, ensures two copies of the driver can't use the same root */
>      int lockFD;
>  
> diff --git a/src/ch/ch_driver.c b/src/ch/ch_driver.c
> index dab025edc1..d18f266387 100644
> --- a/src/ch/ch_driver.c
> +++ b/src/ch/ch_driver.c
> @@ -28,6 +28,7 @@
>  #include "ch_monitor.h"
>  #include "ch_process.h"
>  #include "domain_cgroup.h"
> +#include "domain_event.h"
>  #include "datatypes.h"
>  #include "driver.h"
>  #include "viraccessapicheck.h"
> @@ -263,6 +264,7 @@ chDomainCreateWithFlags(virDomainPtr dom, unsigned int flags)
>      virCHDriver *driver = dom->conn->privateData;
>      virDomainObj *vm;
>      virCHDomainObjPrivate *priv;
> +    virObjectEvent *event;
>      g_autofree char *managed_save_path = NULL;
>      int ret = -1;
>  
> @@ -304,6 +306,14 @@ chDomainCreateWithFlags(virDomainPtr dom, unsigned int flags)
>          ret = virCHProcessStart(driver, vm, VIR_DOMAIN_RUNNING_BOOTED);
>      }
>  
> +    if (ret == 0) {
> +        event = virDomainEventLifecycleNewFromObj(vm,
> +                                                  VIR_DOMAIN_EVENT_STARTED,
> +                                                  VIR_DOMAIN_EVENT_STARTED_BOOTED);
> +        if (event)
> +            virObjectEventStateQueue(driver->domainEventState, event);

No need to check for event != NULL; virObjectEventStateQueue() already
does that. Speaking of the variable - it's sufficient to declare it
inside the this block.

Reviewed-by: Michal Privoznik <mprivozn@xxxxxxxxxx>

and merged.

Michal



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux