53 | 53 |
STATE_0,
|
54 | 54 |
STATE_API,
|
55 | 55 |
STATE_VM,
|
56 | |
#ifdef HAVE_OVIRT_DATA_CENTER
|
57 | 56 |
STATE_HOST,
|
58 | 57 |
STATE_CLUSTER,
|
59 | 58 |
STATE_DATA_CENTER,
|
60 | |
#endif
|
61 | 59 |
STATE_STORAGE_DOMAIN,
|
62 | 60 |
STATE_VM_CDROM,
|
63 | 61 |
STATE_CDROM_FILE,
|
|
67 | 65 |
static void ovirt_foreign_menu_next_async_step(OvirtForeignMenu *menu, GTask *task, OvirtForeignMenuState state);
|
68 | 66 |
static void ovirt_foreign_menu_fetch_api_async(OvirtForeignMenu *menu, GTask *task);
|
69 | 67 |
static void ovirt_foreign_menu_fetch_vm_async(OvirtForeignMenu *menu, GTask *task);
|
70 | |
#ifdef HAVE_OVIRT_DATA_CENTER
|
71 | 68 |
static void ovirt_foreign_menu_fetch_host_async(OvirtForeignMenu *menu, GTask *task);
|
72 | 69 |
static void ovirt_foreign_menu_fetch_cluster_async(OvirtForeignMenu *menu, GTask *task);
|
73 | 70 |
static void ovirt_foreign_menu_fetch_data_center_async(OvirtForeignMenu *menu, GTask *task);
|
74 | |
#endif
|
75 | 71 |
static void ovirt_foreign_menu_fetch_storage_domain_async(OvirtForeignMenu *menu, GTask *task);
|
76 | 72 |
static void ovirt_foreign_menu_fetch_vm_cdrom_async(OvirtForeignMenu *menu, GTask *task);
|
77 | 73 |
static void ovirt_foreign_menu_refresh_cdrom_file_async(OvirtForeignMenu *menu, GTask *task);
|
|
83 | 79 |
OvirtProxy *proxy;
|
84 | 80 |
OvirtApi *api;
|
85 | 81 |
OvirtVm *vm;
|
86 | |
#ifdef HAVE_OVIRT_DATA_CENTER
|
87 | 82 |
OvirtHost *host;
|
88 | 83 |
OvirtCluster *cluster;
|
89 | 84 |
OvirtDataCenter *data_center;
|
90 | |
#endif
|
91 | 85 |
char *vm_guid;
|
92 | 86 |
|
93 | 87 |
OvirtCollection *files;
|
|
214 | 208 |
g_clear_object(&self->proxy);
|
215 | 209 |
g_clear_object(&self->api);
|
216 | 210 |
g_clear_object(&self->vm);
|
217 | |
#ifdef HAVE_OVIRT_DATA_CENTER
|
218 | 211 |
g_clear_object(&self->host);
|
219 | 212 |
g_clear_object(&self->cluster);
|
220 | 213 |
g_clear_object(&self->data_center);
|
221 | |
#endif
|
222 | 214 |
g_clear_pointer(&self->vm_guid, g_free);
|
223 | 215 |
g_clear_object(&self->files);
|
224 | 216 |
g_clear_object(&self->cdrom);
|
|
332 | 324 |
ovirt_foreign_menu_fetch_vm_async(menu, task);
|
333 | 325 |
break;
|
334 | 326 |
}
|
335 | |
#ifdef HAVE_OVIRT_DATA_CENTER
|
336 | 327 |
G_GNUC_FALLTHROUGH;
|
337 | 328 |
case STATE_HOST:
|
338 | 329 |
if (menu->host == NULL) {
|
|
351 | 342 |
ovirt_foreign_menu_fetch_data_center_async(menu, task);
|
352 | 343 |
break;
|
353 | 344 |
}
|
354 | |
#endif
|
355 | 345 |
G_GNUC_FALLTHROUGH;
|
356 | 346 |
case STATE_STORAGE_DOMAIN:
|
357 | 347 |
if (menu->files == NULL) {
|
|
647 | 637 |
cdroms_fetched_cb, task);
|
648 | 638 |
}
|
649 | 639 |
|
650 | |
#ifdef HAVE_OVIRT_DATA_CENTER
|
651 | 640 |
static gboolean strv_contains(const gchar * const *strv, const gchar *str)
|
652 | 641 |
{
|
653 | 642 |
return g_strv_contains (strv, str);
|
|
668 | 657 |
|
669 | 658 |
return match;
|
670 | 659 |
}
|
671 | |
#endif
|
672 | 660 |
|
673 | 661 |
static gboolean storage_domain_validate(OvirtForeignMenu *menu G_GNUC_UNUSED,
|
674 | 662 |
OvirtStorageDomain *domain)
|
|
689 | 677 |
ret = FALSE;
|
690 | 678 |
}
|
691 | 679 |
|
692 | |
#ifdef HAVE_OVIRT_DATA_CENTER
|
693 | 680 |
if (!storage_domain_attached_to_data_center(domain, menu->data_center)) {
|
694 | 681 |
g_debug("Storage domain '%s' is not attached to data center", name);
|
695 | 682 |
ret = FALSE;
|
696 | 683 |
}
|
697 | |
#endif
|
698 | 684 |
|
699 | 685 |
g_debug ("Storage domain '%s' is %s", name, ret ? "valid" : "not valid");
|
700 | 686 |
g_free(name);
|
|
793 | 779 |
{
|
794 | 780 |
OvirtCollection *collection = NULL;
|
795 | 781 |
|
796 | |
#ifdef HAVE_OVIRT_DATA_CENTER
|
797 | 782 |
g_return_if_fail(OVIRT_IS_FOREIGN_MENU(menu));
|
798 | 783 |
g_return_if_fail(OVIRT_IS_PROXY(menu->proxy));
|
799 | 784 |
g_return_if_fail(OVIRT_IS_DATA_CENTER(menu->data_center));
|
800 | 785 |
|
801 | 786 |
collection = ovirt_data_center_get_storage_domains(menu->data_center);
|
802 | |
#else
|
803 | |
collection = ovirt_api_get_storage_domains(menu->api);
|
804 | |
#endif
|
805 | 787 |
|
806 | 788 |
g_debug("Start fetching iso file collection");
|
807 | 789 |
ovirt_collection_fetch_async(collection, menu->proxy,
|
|
810 | 792 |
}
|
811 | 793 |
|
812 | 794 |
|
813 | |
#ifdef HAVE_OVIRT_DATA_CENTER
|
814 | 795 |
static void data_center_fetched_cb(GObject *source_object,
|
815 | 796 |
GAsyncResult *result,
|
816 | 797 |
gpointer user_data)
|
|
920 | 901 |
host_fetched_cb,
|
921 | 902 |
task);
|
922 | 903 |
}
|
923 | |
#endif /* HAVE_OVIRT_DATA_CENTER */
|
924 | 904 |
|
925 | 905 |
|
926 | 906 |
static void vms_fetched_cb(GObject *source_object,
|
|
977 | 957 |
g_return_if_fail(OVIRT_IS_PROXY(menu->proxy));
|
978 | 958 |
g_return_if_fail(OVIRT_IS_API(menu->api));
|
979 | 959 |
|
980 | |
#ifdef HAVE_OVIRT_API_SEARCH_VMS
|
981 | 960 |
char * query = g_strdup_printf("id=%s", menu->vm_guid);
|
982 | 961 |
vms = ovirt_api_search_vms(menu->api, query);
|
983 | 962 |
g_free(query);
|
984 | |
#else
|
985 | |
vms = ovirt_api_get_vms(menu->api);
|
986 | |
#endif
|
987 | 963 |
|
988 | 964 |
ovirt_collection_fetch_async(vms, menu->proxy,
|
989 | 965 |
g_task_get_cancellable(task),
|