Re: [PATCH 1/2] conf: store "autoGenerated" for graphics listen in status XML

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

 



On Mon, Feb 27, 2017 at 17:31:05 +0100, Pavel Hrdina wrote:
> When libvirtd is started we call qemuDomainRecheckInternalPaths
> to detect whether a domain has VNC socket path generated by libvirt
> based on option from qemu.conf.  However if we are parsing status XML
> for running domain the existing socket path can be generated also if
> the config XML uses the new <listen type='socket'/> element without
> specifying any socket.
> 
> The current code doesn't make difference how the socket was generated
> and always marks it as "fromConfig".  We need to store the
> "autoGenerated" value in the status XML in order to preserve that
> information.
> 
> The difference between "fromConfig" and "autoGenerated" is important
> for migration, because if the socket is based on "fromConfig" we don't
> print it into the migratable XML and we assume that user has properly
> configured qemu.conf on both hosts.  However if the socket is based
> on "autoGenerated" it means that a new feature was used and therefore
> we need to leave the socket in migratable XML to make sure that if
> this feature is not supported on destination the migration will fail.
> 
> Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx>
> ---
>  src/conf/domain_conf.c | 17 ++++++++++++++++-
>  src/qemu/qemu_domain.c |  3 ++-
>  2 files changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 97d42fe993..db1890f8a7 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -11543,6 +11543,7 @@ virDomainGraphicsListenDefParseXML(virDomainGraphicsListenDefPtr def,
>      char *network = virXMLPropString(node, "network");
>      char *socketPath = virXMLPropString(node, "socket");
>      char *fromConfig = virXMLPropString(node, "fromConfig");
> +    char *autoGenerated = virXMLPropString(node, "autoGenerated");
>      char *addressCompat = NULL;
>      char *socketCompat = NULL;
>      const char *graphicsType = virDomainGraphicsTypeToString(graphics->type);
> @@ -11662,6 +11663,17 @@ virDomainGraphicsListenDefParseXML(virDomainGraphicsListenDefPtr def,
>          def->fromConfig = tmp != 0;
>      }
>  
> +    if (autoGenerated &&
> +        flags & VIR_DOMAIN_DEF_PARSE_STATUS) {
> +        if (virStrToLong_i(autoGenerated, NULL, 10, &tmp) < 0) {
> +            virReportError(VIR_ERR_XML_ERROR,
> +                           _("Invalid autoGenerated value: %s"),
> +                           autoGenerated);
> +            goto error;
> +        }
> +        def->autoGenerated = tmp != 0;
> +    }
> +

autoGenerated is bool and should be stored as such in the XML. I don't
think we need to copy the bad design from the past even if the result is
going to be inconsistent since this only affects our status XML.

Jirka

--
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]
  Powered by Linux