[libvirt] [libvirt-glib 3/4] gconfig: Add GvirConfigStoragePoolTarget getters

Christophe Fergeau cfergeau at redhat.com
Tue Mar 19 14:21:05 UTC 2013


---
 .../libvirt-gconfig-storage-pool-target.c          | 39 ++++++++++++++++++++++
 .../libvirt-gconfig-storage-pool-target.h          |  2 ++
 libvirt-gconfig/libvirt-gconfig.sym                |  3 ++
 libvirt-gconfig/tests/test-domain-create.c         |  4 +++
 4 files changed, 48 insertions(+)

diff --git a/libvirt-gconfig/libvirt-gconfig-storage-pool-target.c b/libvirt-gconfig/libvirt-gconfig-storage-pool-target.c
index c83145c..f76b26c 100644
--- a/libvirt-gconfig/libvirt-gconfig-storage-pool-target.c
+++ b/libvirt-gconfig/libvirt-gconfig-storage-pool-target.c
@@ -72,6 +72,23 @@ GVirConfigStoragePoolTarget *gvir_config_storage_pool_target_new_from_xml(const
 }
 
 /**
+ * gvir_config_storage_pool_target_get_path:
+ * @target: a #GVirConfigStoragePoolTarget
+ *
+ * Provides the location at which the storage pool associated with @target
+ * will be mapped into the local filesystem namespace.
+ *
+ * Returns: local filesystem path the storage pool is mapped at.
+ */
+const char *gvir_config_storage_pool_target_get_path(GVirConfigStoragePoolTarget *target)
+{
+    g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_TARGET(target), NULL);
+
+    return gvir_config_object_get_node_content(GVIR_CONFIG_OBJECT(target),
+                                               "path");
+}
+
+/**
  * gvir_config_storage_pool_target_set_path:
  * @path: (allow-none):
  */
@@ -85,6 +102,28 @@ void gvir_config_storage_pool_target_set_path(GVirConfigStoragePoolTarget *targe
 }
 
 /**
+ * gvir_config_storage_pool_target_get_permissions:
+ * @target: a #GVirConfigStoragePoolTarget
+ *
+ * Gets the permissions associated with @target
+ *
+ * Returns: (transfer full): a new #GVirConfigStoragePoolPermissions instance.
+ */
+GVirConfigStoragePermissions *gvir_config_storage_pool_target_get_permissions(GVirConfigStoragePoolTarget *target)
+{
+    GVirConfigObject *object;
+
+    g_return_val_if_fail(GVIR_CONFIG_IS_STORAGE_POOL_TARGET(target), NULL);
+
+    object = gvir_config_object_get_child_with_type
+                                (GVIR_CONFIG_OBJECT(target),
+                                 "permissions",
+                                 GVIR_CONFIG_TYPE_STORAGE_PERMISSIONS);
+
+    return GVIR_CONFIG_STORAGE_PERMISSIONS(object);
+}
+
+/**
  * gvir_config_storage_pool_perms_set_permissions:
  * @perms: (allow-none):
  */
diff --git a/libvirt-gconfig/libvirt-gconfig-storage-pool-target.h b/libvirt-gconfig/libvirt-gconfig-storage-pool-target.h
index 031abe2..ca6602d 100644
--- a/libvirt-gconfig/libvirt-gconfig-storage-pool-target.h
+++ b/libvirt-gconfig/libvirt-gconfig-storage-pool-target.h
@@ -63,8 +63,10 @@ GVirConfigStoragePoolTarget *gvir_config_storage_pool_target_new(void);
 GVirConfigStoragePoolTarget *gvir_config_storage_pool_target_new_from_xml(const gchar *xml,
                                                                           GError **error);
 
+const char *gvir_config_storage_pool_target_get_path(GVirConfigStoragePoolTarget *target);
 void gvir_config_storage_pool_target_set_path(GVirConfigStoragePoolTarget *target,
                                               const char *path);
+GVirConfigStoragePermissions *gvir_config_storage_pool_target_get_permissions(GVirConfigStoragePoolTarget *target);
 void gvir_config_storage_pool_target_set_permissions(GVirConfigStoragePoolTarget *target,
                                                      GVirConfigStoragePermissions *perms);
 
diff --git a/libvirt-gconfig/libvirt-gconfig.sym b/libvirt-gconfig/libvirt-gconfig.sym
index 49072dd..4456487 100644
--- a/libvirt-gconfig/libvirt-gconfig.sym
+++ b/libvirt-gconfig/libvirt-gconfig.sym
@@ -531,6 +531,9 @@ LIBVIRT_GCONFIG_0.1.7 {
 	gvir_config_storage_pool_source_get_name;
 	gvir_config_storage_pool_source_get_product;
 	gvir_config_storage_pool_source_get_vendor;
+
+	gvir_config_storage_pool_target_get_path;
+	gvir_config_storage_pool_target_get_permissions;
 } LIBVIRT_GCONFIG_0.1.6;
 
 # .... define new API here using predicted next version number ....
diff --git a/libvirt-gconfig/tests/test-domain-create.c b/libvirt-gconfig/tests/test-domain-create.c
index f7cb076..88bfbfb 100644
--- a/libvirt-gconfig/tests/test-domain-create.c
+++ b/libvirt-gconfig/tests/test-domain-create.c
@@ -422,6 +422,10 @@ int main(int argc, char **argv)
     gvir_config_storage_pool_set_target(pool, pool_target);
     g_object_unref(G_OBJECT(pool_target));
 
+    pool_target = gvir_config_storage_pool_get_target(pool);
+    g_str_const_check(gvir_config_storage_pool_target_get_path(pool_target), "/dev/disk/by-path");
+    g_object_unref(G_OBJECT(pool_target));
+
     xml = gvir_config_object_to_xml(GVIR_CONFIG_OBJECT(pool));
     g_print("%s\n\n", xml);
     g_free(xml);
-- 
1.8.1.4




More information about the libvir-list mailing list