From: "Daniel P. Berrange" <berrange@xxxxxxxxxx> The gvir_config_domain_set_devices API replaces the entire list of devices, but when building up a config incrementally it is useful to append device one at a time. Thus we need a gvir_config_domain_add_device method * libvirt-gconfig/libvirt-gconfig-domain.c, libvirt-gconfig/libvirt-gconfig-domain.h, libvirt-gconfig/libvirt-gconfig.syms: gvir_config_domain_add_device --- libvirt-gconfig/libvirt-gconfig-domain.c | 14 ++++++++++++++ libvirt-gconfig/libvirt-gconfig-domain.h | 3 +++ libvirt-gconfig/libvirt-gconfig.sym | 1 + 3 files changed, 18 insertions(+), 0 deletions(-) diff --git a/libvirt-gconfig/libvirt-gconfig-domain.c b/libvirt-gconfig/libvirt-gconfig-domain.c index 0ceb5d5..ab40cb3 100644 --- a/libvirt-gconfig/libvirt-gconfig-domain.c +++ b/libvirt-gconfig/libvirt-gconfig-domain.c @@ -317,3 +317,17 @@ void gvir_config_domain_set_devices(GVirConfigDomain *domain, gvir_config_object_attach(GVIR_CONFIG_OBJECT(domain), devices_node); g_object_unref(G_OBJECT(devices_node)); } + +void gvir_config_domain_add_device(GVirConfigDomain *domain, + GVirConfigDomainDevice *device) +{ + GVirConfigObject *devices_node; + + g_return_if_fail(GVIR_IS_CONFIG_DOMAIN(domain)); + + devices_node = gvir_config_object_add_child(GVIR_CONFIG_OBJECT(domain), + "devices"); + + gvir_config_object_attach(devices_node, GVIR_CONFIG_OBJECT(device)); + g_object_unref(G_OBJECT(devices_node)); +} diff --git a/libvirt-gconfig/libvirt-gconfig-domain.h b/libvirt-gconfig/libvirt-gconfig-domain.h index 459c308..4cbc1f0 100644 --- a/libvirt-gconfig/libvirt-gconfig-domain.h +++ b/libvirt-gconfig/libvirt-gconfig-domain.h @@ -29,6 +29,7 @@ #include <libvirt-gconfig/libvirt-gconfig-domain-clock.h> #include <libvirt-gconfig/libvirt-gconfig-domain-os.h> +#include <libvirt-gconfig/libvirt-gconfig-domain-device.h> G_BEGIN_DECLS @@ -89,6 +90,8 @@ void gvir_config_domain_set_os(GVirConfigDomain *domain, GVirConfigDomainOs *os); void gvir_config_domain_set_devices(GVirConfigDomain *domain, GList *devices); +void gvir_config_domain_add_device(GVirConfigDomain *domain, + GVirConfigDomainDevice *device); G_END_DECLS diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym index c637a9e..738f625 100644 --- a/libvirt-gconfig/libvirt-gconfig.sym +++ b/libvirt-gconfig/libvirt-gconfig.sym @@ -7,6 +7,7 @@ LIBVIRT_GCONFIG_0.0.1 { gvir_config_capabilities_new; gvir_config_capabilities_new_from_xml; + gvir_config_domain_add_device; gvir_config_domain_get_type; gvir_config_domain_new; gvir_config_domain_new_from_xml; -- 1.7.6.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list