summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Lima (Etrunko) <etrunko@redhat.com>2018-07-31 11:01:55 -0300
committerEduardo Lima (Etrunko) <etrunko@redhat.com>2019-08-26 10:18:52 -0300
commit22bd91cba08f3cdfbe6849eb208d85f82c7a09d2 (patch)
tree5ae25de2c782d4390b8ad897c416fb505ac07cfa
parentff0bfe3494e56df3c473d18f5c309643b8bc8596 (diff)
ovirt-foreign-menu: Factor out code to set file collection
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com> Acked-by: Victor Toso <victortoso@redhat.com>
-rw-r--r--src/ovirt-foreign-menu.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/ovirt-foreign-menu.c b/src/ovirt-foreign-menu.c
index c2f43e6..190bb3b 100644
--- a/src/ovirt-foreign-menu.c
+++ b/src/ovirt-foreign-menu.c
@@ -674,6 +674,18 @@ static gboolean storage_domain_validate(OvirtForeignMenu *menu G_GNUC_UNUSED,
return ret;
}
+static gboolean ovirt_foreign_menu_set_file_collection(OvirtForeignMenu *menu, OvirtCollection *file_collection)
+{
+ g_return_val_if_fail(file_collection != NULL, FALSE);
+
+ if (menu->priv->files) {
+ g_object_unref(G_OBJECT(menu->priv->files));
+ }
+ menu->priv->files = g_object_ref(G_OBJECT(file_collection));
+ g_debug("Set VM files to %p", menu->priv->files);
+ return TRUE;
+}
+
static void storage_domains_fetched_cb(GObject *source_object,
GAsyncResult *result,
gpointer user_data)
@@ -705,14 +717,11 @@ static void storage_domains_fetched_cb(GObject *source_object,
domain_valid = TRUE;
file_collection = ovirt_storage_domain_get_files(domain);
- if (file_collection != NULL) {
- if (menu->priv->files) {
- g_object_unref(G_OBJECT(menu->priv->files));
- }
- menu->priv->files = g_object_ref(G_OBJECT(file_collection));
- g_debug("Set VM files to %p", menu->priv->files);
- break;
- }
+ if (!ovirt_foreign_menu_set_file_collection(menu, file_collection))
+ continue;
+
+ break; /* There can only be one valid storage domain at a time,
+ no need to iterate more on the list */
}
if (menu->priv->files != NULL) {