Re: [PATCH v3 8/8] libxl: implement virDomainGetJobStats

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

 



Joao Martins wrote:
> Introduces support for domainGetJobStats which has the same
> info as domainGetJobInfo but in a slightly different format.
> Another difference is that virDomainGetJobStats can also
> retrieve info on the most recently completed job. Though so
> far this is only used in the source node to know if the
> migration has been completed. But because we don't support
> completed jobs we will deliver an error.

This patch, and 7/8, look good - ACK. Nice to see all the

error : virDomainGetJobInfo:8844 : this function is not supported by the
connection driver: virDomainGetJobInfo

log entries disappear when doing save, migrate, etc :-). But I'll wait until the
freeze is lifted to push them.

Regards,
Jim

> 
> Signed-off-by: Joao Martins <joao.m.martins@xxxxxxxxxx>
> ---
> Changes since v1:
>  - Fixed indentation on libxlDomainGetJobStats()
>  - s/estimed/estimated/g
>  - Bump version to 1.2.22
> ---
>  src/libxl/libxl_driver.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 53 insertions(+)
> 
> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
> index b0b6ea7..dda14c2 100644
> --- a/src/libxl/libxl_driver.c
> +++ b/src/libxl/libxl_driver.c
> @@ -5273,6 +5273,58 @@ libxlDomainGetJobInfo(virDomainPtr dom,
>      return ret;
>  }
>  
> +static int
> +libxlDomainGetJobStats(virDomainPtr dom,
> +                       int *type,
> +                       virTypedParameterPtr *params,
> +                       int *nparams,
> +                       unsigned int flags)
> +{
> +    libxlDomainObjPrivatePtr priv;
> +    virDomainObjPtr vm;
> +    virDomainJobInfoPtr jobInfo;
> +    int ret = -1;
> +    int maxparams = 0;
> +
> +    /* VIR_DOMAIN_JOB_STATS_COMPLETED not supported yet */
> +    virCheckFlags(0, -1);
> +
> +    if (!(vm = libxlDomObjFromDomain(dom)))
> +        goto cleanup;
> +
> +    if (virDomainGetJobStatsEnsureACL(dom->conn, vm->def) < 0)
> +        goto cleanup;
> +
> +    priv = vm->privateData;
> +    jobInfo = priv->job.current;
> +    if (!priv->job.active) {
> +        *type = VIR_DOMAIN_JOB_NONE;
> +        *params = NULL;
> +        *nparams = 0;
> +        ret = 0;
> +        goto cleanup;
> +    }
> +
> +    /* In libxl we don't have an estimated completion time
> +     * thus we always set to unbounded and update time
> +     * for the active job. */
> +    if (libxlDomainJobUpdateTime(&priv->job) < 0)
> +        goto cleanup;
> +
> +    if (virTypedParamsAddULLong(params, nparams, &maxparams,
> +                                VIR_DOMAIN_JOB_TIME_ELAPSED,
> +                                jobInfo->timeElapsed) < 0)
> +        goto cleanup;
> +
> +    *type = jobInfo->type;
> +    ret = 0;
> +
> + cleanup:
> +    if (vm)
> +        virObjectUnlock(vm);
> +    return ret;
> +}
> +
>  #undef LIBXL_SET_MEMSTAT
>  
>  #define LIBXL_RECORD_UINT(error, key, value, ...) \
> @@ -6134,6 +6186,7 @@ static virHypervisorDriver libxlHypervisorDriver = {
>      .nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */
>      .nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */
>      .domainGetJobInfo = libxlDomainGetJobInfo, /* 1.2.22 */
> +    .domainGetJobStats = libxlDomainGetJobStats, /* 1.2.22 */
>      .domainBlockStats = libxlDomainBlockStats, /* 1.2.22 */
>      .domainBlockStatsFlags = libxlDomainBlockStatsFlags, /* 1.2.22 */
>      .domainInterfaceStats = libxlDomainInterfaceStats, /* 1.2.22 */

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[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]