Blob Blame History Raw
From 394dc43f6a8a7ae7e48ff402a59312b608ada761 Mon Sep 17 00:00:00 2001
From: "Eduardo Lima (Etrunko)" <etrunko@redhat.com>
Date: Wed, 4 Jul 2018 12:29:42 -0300
Subject: [PATCH virt-viewer] ovirt-foreign-menu: New function
 storage_domain_validate()

It may be useful to know why the storage domain has not been listed,
given that there are different reasons for that. To make it easier to
provide more detailed debug messages, we move code from the callback
function to this new one.

Acked-by: Christophe Fergeau <cfergeau@redhat.com>
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
---
 src/ovirt-foreign-menu.c | 45 ++++++++++++++++++++++++++--------------
 1 file changed, 30 insertions(+), 15 deletions(-)

diff --git a/src/ovirt-foreign-menu.c b/src/ovirt-foreign-menu.c
index 451b116..3fa319a 100644
--- a/src/ovirt-foreign-menu.c
+++ b/src/ovirt-foreign-menu.c
@@ -646,6 +646,35 @@ static gboolean storage_domain_attached_to_data_center(OvirtStorageDomain *domai
 }
 #endif
 
+static gboolean storage_domain_validate(OvirtForeignMenu *menu G_GNUC_UNUSED,
+                                        OvirtStorageDomain *domain)
+{
+    char *name;
+    int type, state;
+    gboolean ret = TRUE;
+
+    g_object_get(domain, "name", &name, "type", &type, "state", &state, NULL);
+
+    if (type != OVIRT_STORAGE_DOMAIN_TYPE_ISO) {
+        g_debug("Storage domain '%s' type is not ISO", name);
+        ret = FALSE;
+    }
+
+    if (state != OVIRT_STORAGE_DOMAIN_STATE_ACTIVE) {
+        g_debug("Storage domain '%s' state is not active", name);
+        ret = FALSE;
+    }
+
+#ifdef HAVE_OVIRT_DATA_CENTER
+    if (!storage_domain_attached_to_data_center(domain, menu->priv->data_center)) {
+        g_debug("Storage domain '%s' is not attached to data center", name);
+        ret = FALSE;
+    }
+#endif
+
+    g_free(name);
+    return ret;
+}
 
 static void storage_domains_fetched_cb(GObject *source_object,
                                        GAsyncResult *result,
@@ -669,23 +698,9 @@ static void storage_domains_fetched_cb(GObject *source_object,
     g_hash_table_iter_init(&iter, ovirt_collection_get_resources(collection));
     while (g_hash_table_iter_next(&iter, NULL, (gpointer *)&domain)) {
         OvirtCollection *file_collection;
-        int type;
-        int state;
-
-        g_object_get(domain, "type", &type, "state", &state, NULL);
-        if (type != OVIRT_STORAGE_DOMAIN_TYPE_ISO) {
-            continue;
-        }
-
-        if (state != OVIRT_STORAGE_DOMAIN_STATE_ACTIVE) {
-            continue;
-        }
 
-#ifdef HAVE_OVIRT_DATA_CENTER
-        if (!storage_domain_attached_to_data_center(domain, menu->priv->data_center)) {
+        if (!storage_domain_validate(menu, domain))
             continue;
-        }
-#endif
 
         file_collection = ovirt_storage_domain_get_files(domain);
         if (file_collection != NULL) {
-- 
2.21.0