[libgovirt] api: Implement ovirt_api_get_storage_domains()
- From: Christophe Fergeau <teuf src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgovirt] api: Implement ovirt_api_get_storage_domains()
- Date: Mon, 2 Sep 2013 15:46:02 +0000 (UTC)
commit 7b56d8a66274e32b54002e76ea455c5ead0bae29
Author: Christophe Fergeau <cfergeau redhat com>
Date: Wed Aug 21 16:19:38 2013 +0200
api: Implement ovirt_api_get_storage_domains()
govirt/govirt.sym | 1 +
govirt/ovirt-api.c | 29 +++++++++++++++++++++++++++++
govirt/ovirt-api.h | 1 +
3 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/govirt/govirt.sym b/govirt/govirt.sym
index 578ff0a..a04bcc6 100644
--- a/govirt/govirt.sym
+++ b/govirt/govirt.sym
@@ -53,6 +53,7 @@ GOVIRT_0.2.1 {
ovirt_api_get_type;
ovirt_api_new;
ovirt_api_get_vms;
+ ovirt_api_get_storage_domains;
ovirt_collection_fetch;
ovirt_collection_fetch_async;
diff --git a/govirt/ovirt-api.c b/govirt/ovirt-api.c
index 31a9e48..ddb2300 100644
--- a/govirt/ovirt-api.c
+++ b/govirt/ovirt-api.c
@@ -39,6 +39,7 @@
struct _OvirtApiPrivate {
+ OvirtCollection *storage_domains;
OvirtCollection *vms;
};
@@ -69,6 +70,7 @@ static void ovirt_api_dispose(GObject *object)
{
OvirtApi *api = OVIRT_API(object);
+ g_clear_object(&api->priv->storage_domains);
g_clear_object(&api->priv->vms);
G_OBJECT_CLASS(ovirt_api_parent_class)->dispose(object);
@@ -128,3 +130,30 @@ OvirtCollection *ovirt_api_get_vms(OvirtApi *api)
return api->priv->vms;
}
+
+
+/**
+ * ovirt_api_get_storage_domains:
+ * @api: a #OvirtApi
+ *
+ * Return value: (transfer full):
+ */
+OvirtCollection *ovirt_api_get_storage_domains(OvirtApi *api)
+{
+ const char *href;
+
+ g_return_val_if_fail(OVIRT_IS_API(api), NULL);
+
+ if (api->priv->storage_domains != NULL)
+ return api->priv->storage_domains;
+
+ href = ovirt_resource_get_sub_collection(OVIRT_RESOURCE(api), "storagedomains");
+ if (href == NULL)
+ return NULL;
+
+ api->priv->storage_domains = ovirt_collection_new(href, "storage_domains",
+ OVIRT_TYPE_STORAGE_DOMAIN,
+ "storage_domain");
+
+ return api->priv->storage_domains;
+}
diff --git a/govirt/ovirt-api.h b/govirt/ovirt-api.h
index 2fdce69..d1de522 100644
--- a/govirt/ovirt-api.h
+++ b/govirt/ovirt-api.h
@@ -61,6 +61,7 @@ struct _OvirtApiClass
GType ovirt_api_get_type(void);
OvirtApi *ovirt_api_new(void);
+OvirtCollection *ovirt_api_get_storage_domains(OvirtApi *api);
OvirtCollection *ovirt_api_get_vms(OvirtApi *api);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]