[libvirt] [PATCHv2 5/6] util: use new virTypedParameter helpers

Daniel P. Berrange berrange at redhat.com
Thu Jan 19 19:21:58 UTC 2012


On Thu, Jan 19, 2012 at 11:44:45AM -0700, Eric Blake wrote:
> Reusing common code makes things smaller; it also buys us some
> additional safety, such as now rejecting duplicate parameters
> during a set operation.
> 
> * src/qemu/qemu_driver.c (qemuDomainSetBlkioParameters)
> (qemuDomainSetMemoryParameters, qemuDomainSetNumaParameters)
> (qemuSetSchedulerParametersFlags)
> (qemuDomainSetInterfaceParameters, qemuDomainSetBlockIoTune)
> (qemuDomainGetBlkioParameters, qemuDomainGetMemoryParameters)
> (qemuDomainGetNumaParameters, qemuGetSchedulerParametersFlags)
> (qemuDomainBlockStatsFlags, qemuDomainGetInterfaceParameters)
> (qemuDomainGetBlockIoTune): Use new helpers.
> * src/esx/esx_driver.c (esxDomainSetSchedulerParametersFlags)
> (esxDomainSetMemoryParameters)
> (esxDomainGetSchedulerParametersFlags)
> (esxDomainGetMemoryParameters): Likewise.
> * src/libxl/libxl_driver.c
> (libxlDomainSetSchedulerParametersFlags)
> (libxlDomainGetSchedulerParametersFlags): Likewise.
> * src/lxc/lxc_driver.c (lxcDomainSetMemoryParameters)
> (lxcSetSchedulerParametersFlags, lxcDomainSetBlkioParameters)
> (lxcDomainGetMemoryParameters, lxcGetSchedulerParametersFlags)
> (lxcDomainGetBlkioParameters): Likewise.
> * src/test/test_driver.c (testDomainSetSchedulerParamsFlags)
> (testDomainGetSchedulerParamsFlags): Likewise.
> * src/xen/xen_hypervisor.c (xenHypervisorSetSchedulerParameters)
> (xenHypervisorGetSchedulerParameters): Likewise.
> ---
>  src/esx/esx_driver.c     |   81 +++---
>  src/libxl/libxl_driver.c |   44 +---
>  src/lxc/lxc_driver.c     |  218 +++++-----------
>  src/qemu/qemu_driver.c   |  656 ++++++++++++++--------------------------------
>  src/test/test_driver.c   |   27 +--
>  src/xen/xen_hypervisor.c |   51 ++--
>  6 files changed, 350 insertions(+), 727 deletions(-)

> @@ -2968,42 +2922,25 @@ lxcGetSchedulerParametersFlags(virDomainPtr dom,

> 
>      if (cpu_bw_status) {
>          if (*nparams > saved_nparams) {
> -            params[1].value.ul = period;
> -            params[1].type = VIR_TYPED_PARAM_ULLONG;
> -            if (virStrcpyStatic(params[1].field,
> -                                VIR_DOMAIN_SCHEDULER_VCPU_PERIOD) == NULL) {
> -                lxcError(VIR_ERR_INTERNAL_ERROR,
> -                         _("Field name '%s' too long"),
> -                         VIR_DOMAIN_SCHEDULER_VCPU_PERIOD);
> +            if (virTypedParameterAssign(&params[1],
> +                                        VIR_DOMAIN_SCHEDULER_VCPU_PERIOD,
> +                                        VIR_TYPED_PARAM_ULLONG, shares) < 0)

s/shares/period/



> @@ -6201,21 +6169,11 @@ static int qemuDomainGetBlkioParameters(virDomainPtr dom,
>                      }
>                      param->value.s = virBufferContentAndReset(&buf);
>                  }
> -                if (!param->value.s) {
> -                    param->value.s = strdup("");
> -                    if (!param->value.s) {
> -                        virReportOOMError();
> -                        goto cleanup;
> -                    }
> -                }
> -                param->type = VIR_TYPED_PARAM_STRING;
> -                if (virStrcpyStatic(param->field,
> -                                    VIR_DOMAIN_BLKIO_DEVICE_WEIGHT) == NULL) {
> -                    qemuReportError(VIR_ERR_INTERNAL_ERROR,
> -                                    _("Field name '%s' too long"),
> -                                    VIR_DOMAIN_BLKIO_DEVICE_WEIGHT);
> +                if (virTypedParameterAssign(param,
> +                                            VIR_DOMAIN_BLKIO_DEVICE_WEIGHT,
> +                                            VIR_TYPED_PARAM_STRING,
> +                                            param->value.s) < 0)
>                      goto cleanup;

Is virTypedParameterAssign happy getting a NULL for the string value ?
Previously we would have set "" for the parameter rather than NULL


ACK with those 2 points resolved

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list