[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [libvirt] [PATCH] qemu: set default name for SPICE agent channel when generating command
- From: Laine Stump <laine laine org>
- To: libvir-list redhat com
- Subject: Re: [libvirt] [PATCH] qemu: set default name for SPICE agent channel when generating command
- Date: Fri, 30 Mar 2012 13:52:28 -0400
On 03/30/2012 11:06 AM, Michal Privoznik wrote:
> On 30.03.2012 09:50, Laine Stump wrote:
>> commit b0e2bb33 set a default value for the SPICE agent channel by
>> inserting it during parsing of the channel XML. That method of setting
>> a default is problematic because it makes a format/parse roundtrip
>> unclean, and experience with setting other values as a side effect of
>> parsing has led to headaches (e.g. automatically setting a MAC address
>> in the parser when one isn't specified in the input XML).
>>
>> This patch reverts commit b0e2bb33 and replaces it with the alternate
>> implementation of simply inserting the default value in the
>> appropriate place on the qemu commandline when no value is provided.
>> ---
>>
>> (Playing the devil's advocate on my own patch for a moment - one
>> advantage of Christophe's method of setting the default is that if we
>> use that object somewhere else in libvirt's code in the future, the
>> value will be set even if the XML left it unset, but with my method we
>> will have to check for a NULL name and replace it with the default
>> value anywhere we want to use it. So I won't say that either method is
>> definitely the proper way to go, but will just present this
>> alternative and see if someone else has an even stronger opinion than
>> me :-)
>>
>> (BTW, I think I've decided while typing this message that, if we
>> decide to change from the original method of setting default to this
>> new method, the change should be pushed as two separate patches - one
>> reverting the original, and another adding the new. It's too close to
>> morning for me to take the time to do that right now, though.)
>>
>> src/conf/domain_conf.c | 7 -------
>> src/qemu/qemu_command.c | 6 +++---
>> 2 files changed, 3 insertions(+), 10 deletions(-)
>>
>> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
>> index 24e10e6..ea558bb 100644
>> --- a/src/conf/domain_conf.c
>> +++ b/src/conf/domain_conf.c
>> @@ -5248,13 +5248,6 @@ virDomainChrDefParseXML(virCapsPtr caps,
>> goto error;
>> } else {
>> def->source.data.spicevmc = VIR_DOMAIN_CHR_SPICEVMC_VDAGENT;
>> - if (!def->target.name) {
>> - def->target.name = strdup("com.redhat.spice.0");
>> - if (!def->target.name) {
>> - virReportOOMError();
>> - goto error;
>> - }
>> - }
>> }
>> }
>>
>> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>> index 3d2bb6b..50b1e6d 100644
>> --- a/src/qemu/qemu_command.c
>> +++ b/src/qemu/qemu_command.c
>> @@ -3457,9 +3457,9 @@ qemuBuildVirtioSerialPortDevStr(virDomainChrDefPtr dev,
>> qemuCapsGet(qemuCaps, QEMU_CAPS_DEVICE_SPICEVMC))) {
>> virBufferAsprintf(&buf, ",chardev=char%s,id=%s",
>> dev->info.alias, dev->info.alias);
>> - if (dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
>> - dev->target.name) {
>> - virBufferAsprintf(&buf, ",name=%s", dev->target.name);
>> + if (dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL) {
>> + virBufferAsprintf(&buf, ",name=%s", dev->target.name
>> + ? dev->target.name : "com.redhat.spice.0");
>> }
>> } else {
>> virBufferAsprintf(&buf, ",id=%s", dev->info.alias);
> ACK
>
> Maybe it's worth squashing this in:
>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 3d2bb6b..3a14727 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -3444,8 +3444,7 @@ qemuBuildVirtioSerialPortDevStr(virDomainChrDefPtr
> dev,
>
> if (dev->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
> dev->source.type == VIR_DOMAIN_CHR_TYPE_SPICEVMC &&
> - dev->target.name &&
> - STRNEQ(dev->target.name, "com.redhat.spice.0")) {
> + STRNEQ_NULLABLE(dev->target.name, "com.redhat.spice.0")) {
Sure, that's a nice reduction in line count, and optimization.
I pushed it with that change.
Thanks! (to Eric and Christophe as well).
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]