From: "Daniel P. Berrange" <berrange(a)redhat.com>
Add gvir_config_domain_get_virt_type and
gvir_config_domain_virt_type_get_type
* libvirt-gconfig-domain.c, libvirt-gconfig-domain.h,
libvirt-gconfig.h, libvirt-gconfig.sym: Add new APIs
---
libvirt-gconfig/libvirt-gconfig-domain.c | 32 ++++++++++++++++++++++++++++++
libvirt-gconfig/libvirt-gconfig-domain.h | 10 +++++++++
libvirt-gconfig/libvirt-gconfig.h | 2 +-
libvirt-gconfig/libvirt-gconfig.sym | 2 +
4 files changed, 45 insertions(+), 1 deletions(-)
diff --git a/libvirt-gconfig/libvirt-gconfig-domain.c
b/libvirt-gconfig/libvirt-gconfig-domain.c
index b54d12c..8fb1a2b 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain.c
+++ b/libvirt-gconfig/libvirt-gconfig-domain.c
@@ -175,6 +175,23 @@ GVirConfigDomain *gvir_config_domain_new(void)
return GVIR_CONFIG_DOMAIN(object);
}
+
+void gvir_config_domain_set_virt_type(GVirConfigDomain *domain, GVirConfigDomainVirtType
type)
+{
+ xmlNodePtr node;
+ const char *type_str;
+
+ g_return_if_fail(GVIR_IS_CONFIG_DOMAIN_FILESYS(domain));
+
+ node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(domain));
+ g_return_if_fail(node != NULL);
+ type_str = gvir_config_genum_get_nick(GVIR_TYPE_CONFIG_DOMAIN_VIRT_TYPE,
+ type);
+ g_return_if_fail(type_str != NULL);
+ xmlNewProp(node, (xmlChar*)"type", (xmlChar*)type_str);
+}
+
+
char *gvir_config_domain_get_name(GVirConfigDomain *domain)
{
return gvir_config_object_get_node_content(GVIR_CONFIG_OBJECT(domain),
@@ -306,3 +323,18 @@ 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));
+ gvir_config_object_attach(GVIR_CONFIG_OBJECT(domain), devices_node);
+ g_object_unref(G_OBJECT(devices_node));
+}
diff --git a/libvirt-gconfig/libvirt-gconfig-domain.h
b/libvirt-gconfig/libvirt-gconfig-domain.h
index 08682aa..c97ff46 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain.h
+++ b/libvirt-gconfig/libvirt-gconfig-domain.h
@@ -59,12 +59,20 @@ struct _GVirConfigDomainClass
gpointer padding[20];
};
+typedef enum {
+ GVIR_CONFIG_DOMAIN_VIRT_XEN,
+ GVIR_CONFIG_DOMAIN_VIRT_QEMU,
+ GVIR_CONFIG_DOMAIN_VIRT_KVM,
+ GVIR_CONFIG_DOMAIN_VIRT_KQEMU,
+ GVIR_CONFIG_DOMAIN_VIRT_LXC,
+} GVirConfigDomainVirtType;
GType gvir_config_domain_get_type(void);
GVirConfigDomain *gvir_config_domain_new_from_xml(const gchar *xml, GError **error);
GVirConfigDomain *gvir_config_domain_new(void);
+void gvir_config_domain_set_virt_type(GVirConfigDomain *domain, GVirConfigDomainVirtType
type);
char *gvir_config_domain_get_name(GVirConfigDomain *domain);
void gvir_config_domain_set_name(GVirConfigDomain *domain, const char *name);
guint64 gvir_config_domain_get_memory(GVirConfigDomain *domain);
@@ -81,6 +89,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.h b/libvirt-gconfig/libvirt-gconfig.h
index ed7623c..8525065 100644
--- a/libvirt-gconfig/libvirt-gconfig.h
+++ b/libvirt-gconfig/libvirt-gconfig.h
@@ -29,7 +29,6 @@
#include <libvirt-gconfig/libvirt-gconfig-main.h>
#include <libvirt-gconfig/libvirt-gconfig-object.h>
#include <libvirt-gconfig/libvirt-gconfig-capabilities.h>
-#include <libvirt-gconfig/libvirt-gconfig-domain.h>
#include <libvirt-gconfig/libvirt-gconfig-domain-clock.h>
#include <libvirt-gconfig/libvirt-gconfig-domain-device.h>
#include <libvirt-gconfig/libvirt-gconfig-domain-disk.h>
@@ -43,6 +42,7 @@
#include <libvirt-gconfig/libvirt-gconfig-domain-snapshot.h>
#include <libvirt-gconfig/libvirt-gconfig-domain-timer.h>
#include <libvirt-gconfig/libvirt-gconfig-domain-video.h>
+#include <libvirt-gconfig/libvirt-gconfig-domain.h>
#include <libvirt-gconfig/libvirt-gconfig-enum-types.h>
#include <libvirt-gconfig/libvirt-gconfig-helpers.h>
#include <libvirt-gconfig/libvirt-gconfig-interface.h>
diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym
index e895cb0..9b74c35 100644
--- a/libvirt-gconfig/libvirt-gconfig.sym
+++ b/libvirt-gconfig/libvirt-gconfig.sym
@@ -21,6 +21,8 @@ LIBVIRT_GCONFIG_0.0.1 {
gvir_config_domain_set_os;
gvir_config_domain_get_vcpus;
gvir_config_domain_set_vcpus;
+ gvir_config_domain_get_virt_type;
+ gvir_config_domain_virt_type_get_type;
gvir_config_domain_clock_get_type;
gvir_config_domain_clock_offset_get_type;
--
1.7.6.4