[libgovirt] WIP ovirt-storage-domain: new function ovirt_storage_domain_get_disks



commit 6efa40a22eb1cc87db21a8b35ad9b4b0920ccf7c
Author: Eduardo Lima (Etrunko) <etrunko redhat com>
Date:   Tue Jun 16 10:07:49 2020 -0300

    WIP ovirt-storage-domain: new function ovirt_storage_domain_get_disks
    
    Signed-off-by: Eduardo Lima (Etrunko) <etrunko redhat com>

 govirt/govirt.sym             |  2 ++
 govirt/ovirt-storage-domain.c | 28 ++++++++++++++++++++++++++++
 govirt/ovirt-storage-domain.h |  1 +
 3 files changed, 31 insertions(+)
---
diff --git a/govirt/govirt.sym b/govirt/govirt.sym
index 1cc2a8e..4cd6bb8 100644
--- a/govirt/govirt.sym
+++ b/govirt/govirt.sym
@@ -146,5 +146,7 @@ GOVIRT_0.4.1 {
         ovirt_disk_get_type;
         ovirt_disk_content_type_get_type;
         ovirt_disk_new;
+
+        ovirt_storage_domain_get_disks;
 } GOVIRT_0.4.0;
 # .... define new API here using predicted next version number ....
diff --git a/govirt/ovirt-storage-domain.c b/govirt/ovirt-storage-domain.c
index a713d89..d02c3d5 100644
--- a/govirt/ovirt-storage-domain.c
+++ b/govirt/ovirt-storage-domain.c
@@ -27,6 +27,7 @@
 
 struct _OvirtStorageDomainPrivate {
     OvirtCollection *files;
+    OvirtCollection *disks;
     GStrv data_center_ids;
 
     gchar *data_center_href;
@@ -172,6 +173,7 @@ ovirt_storage_domain_dispose(GObject *obj)
     OvirtStorageDomain *domain = OVIRT_STORAGE_DOMAIN(obj);
 
     g_clear_object(&domain->priv->files);
+    g_clear_object(&domain->priv->disks);
     g_clear_pointer(&domain->priv->data_center_ids, g_strfreev);
     g_clear_pointer(&domain->priv->data_center_href, g_free);
     g_clear_pointer(&domain->priv->data_center_id, g_free);
@@ -399,3 +401,29 @@ OvirtCollection *ovirt_storage_domain_get_files(OvirtStorageDomain *domain)
 
     return domain->priv->files;
 }
+
+/**
+ * ovirt_storage_domain_get_disks:
+ * @domain: a #OvirtStorageDomain
+ *
+ * Gets a #OvirtCollection representing the list of remote disks from a
+ * storage domain object.  This method does not initiate any network
+ * activity, the remote file list must be then be fetched using
+ * ovirt_collection_fetch() or ovirt_collection_fetch_async().
+ *
+ * Return value: (transfer none): a #OvirtCollection representing the list
+ * of disks associated with @domain.
+ */
+OvirtCollection *ovirt_storage_domain_get_disks(OvirtStorageDomain *domain)
+{
+    g_return_val_if_fail(OVIRT_IS_STORAGE_DOMAIN(domain), NULL);
+
+    if (domain->priv->disks == NULL)
+        domain->priv->disks = ovirt_sub_collection_new_from_resource(OVIRT_RESOURCE(domain),
+                                                                     "disks",
+                                                                     "disks",
+                                                                     OVIRT_TYPE_DISK,
+                                                                     "disk");
+
+    return domain->priv->disks;
+}
diff --git a/govirt/ovirt-storage-domain.h b/govirt/ovirt-storage-domain.h
index f122e27..97cfb06 100644
--- a/govirt/ovirt-storage-domain.h
+++ b/govirt/ovirt-storage-domain.h
@@ -86,6 +86,7 @@ GType ovirt_storage_domain_get_type(void);
 OvirtStorageDomain *ovirt_storage_domain_new(void);
 
 OvirtCollection *ovirt_storage_domain_get_files(OvirtStorageDomain *domain);
+OvirtCollection *ovirt_storage_domain_get_disks(OvirtStorageDomain *domain);
 
 G_END_DECLS
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]