[libvirt] [glib PATCH 3/8] gconfig: Add GVirConfigDomainCapabilities

Michal Privoznik mprivozn at redhat.com
Mon May 20 08:41:04 UTC 2019


On 5/10/19 9:12 PM, Fabiano Fidêncio wrote:
> GVirConfigDomainCapabilities object has been introduced in order to
> represent the output of virConnectGetDomainCapabilities().
> 
> For now it's not used anywhere, but its addition allows us to start
> building the needed machinery for:
> - Creating a wrapper around virConnectGetDomainCapabilities();
> - Creating new objects that will be used to return each of the elements
>    present in the output of virConnectGetDomainCapabilities(),
>    accordingly to the consumers of this library's need;
> 
> Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
> ---
>   libvirt-gconfig/Makefile.am                   |  2 +
>   .../libvirt-gconfig-domain-capabilities.c     | 71 +++++++++++++++++++
>   .../libvirt-gconfig-domain-capabilities.h     | 67 +++++++++++++++++
>   libvirt-gconfig/libvirt-gconfig.h             |  1 +
>   libvirt-gconfig/libvirt-gconfig.sym           |  3 +
>   5 files changed, 144 insertions(+)
>   create mode 100644 libvirt-gconfig/libvirt-gconfig-domain-capabilities.c
>   create mode 100644 libvirt-gconfig/libvirt-gconfig-domain-capabilities.h
> 
> diff --git a/libvirt-gconfig/Makefile.am b/libvirt-gconfig/Makefile.am
> index b976e4d..db2fa79 100644
> --- a/libvirt-gconfig/Makefile.am
> +++ b/libvirt-gconfig/Makefile.am
> @@ -26,6 +26,7 @@ GCONFIG_HEADER_FILES = \
>   			libvirt-gconfig-domain-address.h \
>   			libvirt-gconfig-domain-address-pci.h \
>   			libvirt-gconfig-domain-address-usb.h \
> +			libvirt-gconfig-domain-capabilities.h \
>   			libvirt-gconfig-domain-channel.h \
>   			libvirt-gconfig-domain-chardev.h \
>   			libvirt-gconfig-domain-chardev-source.h \
> @@ -119,6 +120,7 @@ GCONFIG_SOURCE_FILES = \
>   			libvirt-gconfig-domain-address.c \
>   			libvirt-gconfig-domain-address-pci.c \
>   			libvirt-gconfig-domain-address-usb.c \
> +			libvirt-gconfig-domain-capabilities.c \
>   			libvirt-gconfig-domain-channel.c \
>   			libvirt-gconfig-domain-chardev.c \
>   			libvirt-gconfig-domain-chardev-source.c \
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-capabilities.c b/libvirt-gconfig/libvirt-gconfig-domain-capabilities.c
> new file mode 100644
> index 0000000..3377889
> --- /dev/null
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-capabilities.c
> @@ -0,0 +1,71 @@
> +/*
> + * libvirt-gconfig-domain-capabilities.c: libvirt domain capabilities configuration
> + *
> + * Copyright (C) 2019 Red Hat, Inc.
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library. If not, see
> + * <http://www.gnu.org/licenses/>.
> + */
> +
> +#include <config.h>
> +
> +#include "libvirt-gconfig/libvirt-gconfig.h"
> +#include "libvirt-gconfig/libvirt-gconfig-private.h"
> +
> +#define GVIR_CONFIG_DOMAIN_CAPABILITIES_GET_PRIVATE(obj)                         \
> +        (G_TYPE_INSTANCE_GET_PRIVATE((obj), GVIR_CONFIG_TYPE_DOMAIN_CAPABILITIES, GVirConfigDomainCapabilitiesPrivate))
> +
> +struct _GVirConfigDomainCapabilitiesPrivate
> +{
> +    gboolean unused;
> +};
> +
> +G_DEFINE_TYPE_WITH_PRIVATE(GVirConfigDomainCapabilities, gvir_config_domain_capabilities, GVIR_CONFIG_TYPE_OBJECT);
> +
> +static void
> +gvir_config_domain_capabilities_class_init(GVirConfigDomainCapabilitiesClass *klass G_GNUC_UNUSED)
> +{
> +}
> +
> +
> +static void
> +gvir_config_domain_capabilities_init(GVirConfigDomainCapabilities *domain_caps)
> +{
> +    domain_caps->priv = GVIR_CONFIG_DOMAIN_CAPABILITIES_GET_PRIVATE(domain_caps);
> +}
> +
> +
> +GVirConfigDomainCapabilities *
> +gvir_config_domain_capabilities_new(void)
> +{
> +    GVirConfigObject *object;
> +
> +    object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_CAPABILITIES,
> +                                    "domainCapabilities",
> +                                    DATADIR "/libvirt/schemas/domaincaps.rng");
> +    return GVIR_CONFIG_DOMAIN_CAPABILITIES(object);
> +}
> +
> +GVirConfigDomainCapabilities *
> +gvir_config_domain_capabilities_new_from_xml(const gchar *xml,
> +                                             GError **error)
> +{
> +    GVirConfigObject *object;
> +
> +    object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_CAPABILITIES,
> +                                             "domainCapabilities",
> +                                             DATADIR "/libvirt/schemas/domaincaps.rng",
> +                                             xml, error);
> +    return GVIR_CONFIG_DOMAIN_CAPABILITIES(object);
> +}
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-capabilities.h b/libvirt-gconfig/libvirt-gconfig-domain-capabilities.h
> new file mode 100644
> index 0000000..965d2a4
> --- /dev/null
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-capabilities.h
> @@ -0,0 +1,67 @@
> +/*
> + * libvirt-gconfig-domain-capabilities.c: libvirt domain capabilities configuration
> + *
> + * Copyright (C) 2019 Red Hat, Inc.
> + *
> + * This library is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * This library is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with this library. If not, see
> + * <http://www.gnu.org/licenses/>.
> + */
> +
> +#if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
> +#error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
> +#endif
> +
> +#ifndef __LIBVIRT_GCONFIG_DOMAIN_CAPABILITIES_H__
> +#define __LIBVIRT_GCONFIG_DOMAIN_CAPABILITIES_H__
> +
> +#include "libvirt-gconfig/libvirt-gconfig-domain-capabilities-os.h"

Oops, there's no such file, yet. Save this for the next patch where the 
file is introduced. Or even better - save it for the one after (6/8) 
where it's actually needed.

Michal




More information about the libvir-list mailing list