[libvirt] [[libvirt-glib PATCHv2]] API to get/set custom metadata from/to domain config
Daniel P. Berrange
berrange at redhat.com
Tue Jan 31 12:11:31 UTC 2012
On Tue, Jan 31, 2012 at 12:02:05PM +0100, Christophe Fergeau wrote:
> Based on a patch from Zeeshan Ali (Khattak) <zeeshanak at gnome.org>
> ---
> libvirt-gconfig/libvirt-gconfig-domain.c | 60 +++++++++++++++++++++
> libvirt-gconfig/libvirt-gconfig-domain.h | 7 +++
> libvirt-gconfig/libvirt-gconfig-helpers-private.h | 1 +
> libvirt-gconfig/libvirt-gconfig-helpers.c | 23 ++++++++-
> libvirt-gconfig/libvirt-gconfig-object-private.h | 3 +
> libvirt-gconfig/libvirt-gconfig-object.c | 20 +++++++
> libvirt-gconfig/libvirt-gconfig.sym | 2 +
> 7 files changed, 115 insertions(+), 1 deletions(-)
ACK, if one question is answered.
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain.c b/libvirt-gconfig/libvirt-gconfig-domain.c
> index 61af625..606f5a4 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain.c
> +++ b/libvirt-gconfig/libvirt-gconfig-domain.c
> @@ -449,3 +449,63 @@ GList *gvir_config_domain_get_devices(GVirConfigDomain *domain)
>
> return data.devices;
> }
> +
> +gboolean gvir_config_domain_set_custom_xml(GVirConfigDomain *domain,
> + const gchar *xml,
> + const gchar *ns,
> + const gchar *ns_uri,
> + GError **error)
> +{
> + GVirConfigObject *metadata;
> + GVirConfigObject *custom_xml;
> +
> + g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN(domain), FALSE);
> + g_return_val_if_fail(xml != NULL, FALSE);
Shouldn't we allow NULL 'xml' here, as a means to remove the existing
element under that namespace ? Alternatively we can add an explicit
API to delete custom XML nodes.
> + g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
> +
> + metadata = gvir_config_object_add_child(GVIR_CONFIG_OBJECT(domain), "metadata");
> +
> + custom_xml = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_OBJECT, NULL, NULL, xml, error);
> + if (error != NULL && *error != NULL)
> + return FALSE;
> +
> + gvir_config_object_set_namespace(custom_xml, ns, ns_uri);
> +
> + gvir_config_object_attach_replace(metadata, custom_xml);
> +
> + return TRUE;
> +}
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