bbf714
From 7fc76f7cea0efe8fdf48033b616cfd107cd9bd56 Mon Sep 17 00:00:00 2001
bbf714
From: "Eduardo Lima (Etrunko)" <etrunko@redhat.com>
bbf714
Date: Mon, 20 Jan 2020 19:16:49 -0300
bbf714
Subject: [PATCH] Add support for oVirt API v4
bbf714
bbf714
v3 has been deprecated for a while now, and support will be completely
bbf714
removed in RHV 4.4.
bbf714
bbf714
Tested against main use cases with remote-viewer:
bbf714
bbf714
 - Connecting to oVirt using ovirt:// URI.
bbf714
 - Connecting to oVirt with console.vv file.
bbf714
 - Listing and changing CD ROMs.
bbf714
bbf714
https://bugzilla.redhat.com/show_bug.cgi?id=1399750
bbf714
bbf714
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
bbf714
---
bbf714
 govirt/ovirt-proxy.c          | 1 -
bbf714
 govirt/ovirt-resource.c       | 7 -------
bbf714
 govirt/ovirt-storage-domain.c | 2 +-
bbf714
 govirt/ovirt-vm.c             | 2 +-
bbf714
 4 files changed, 2 insertions(+), 10 deletions(-)
bbf714
bbf714
diff --git a/govirt/ovirt-proxy.c b/govirt/ovirt-proxy.c
bbf714
index 92c5ed0..39ef476 100644
bbf714
--- a/govirt/ovirt-proxy.c
bbf714
+++ b/govirt/ovirt-proxy.c
bbf714
@@ -943,7 +943,6 @@ static void ovirt_proxy_constructed(GObject *gobject)
bbf714
         g_object_set(OVIRT_PROXY(gobject), "ssl-strict", FALSE, NULL);
bbf714
     }
bbf714
     ovirt_proxy_add_header(OVIRT_PROXY(gobject), "Prefer", "persistent-auth");
bbf714
-    ovirt_proxy_add_header(OVIRT_PROXY(gobject), "Version", "3");
bbf714
 
bbf714
     /* Chain up to the parent class */
bbf714
     if (G_OBJECT_CLASS(ovirt_proxy_parent_class)->constructed)
bbf714
diff --git a/govirt/ovirt-resource.c b/govirt/ovirt-resource.c
bbf714
index 936e912..9511e2f 100644
bbf714
--- a/govirt/ovirt-resource.c
bbf714
+++ b/govirt/ovirt-resource.c
bbf714
@@ -686,7 +686,6 @@ static enum OvirtResponseStatus parse_action_status(RestXmlNode *root,
bbf714
 {
bbf714
     RestXmlNode *node;
bbf714
     const char *status_key = g_intern_string("status");
bbf714
-    const char *state_key = g_intern_string("state");
bbf714
 
bbf714
     g_return_val_if_fail(g_strcmp0(root->name, "action") == 0,
bbf714
                          OVIRT_RESPONSE_UNKNOWN);
bbf714
@@ -699,12 +698,6 @@ static enum OvirtResponseStatus parse_action_status(RestXmlNode *root,
bbf714
                     _("Could not find 'status' node"));
bbf714
         g_return_val_if_reached(OVIRT_RESPONSE_UNKNOWN);
bbf714
     }
bbf714
-    node = g_hash_table_lookup(node->children, state_key);
bbf714
-    if (node == NULL) {
bbf714
-        g_set_error(error, OVIRT_ERROR, OVIRT_ERROR_PARSING_FAILED,
bbf714
-                    _("Could not find 'state' node"));
bbf714
-        g_return_val_if_reached(OVIRT_RESPONSE_UNKNOWN);
bbf714
-    }
bbf714
     g_debug("State: %s\n", node->content);
bbf714
     if (g_strcmp0(node->content, "complete") == 0) {
bbf714
         return OVIRT_RESPONSE_COMPLETE;
bbf714
diff --git a/govirt/ovirt-storage-domain.c b/govirt/ovirt-storage-domain.c
bbf714
index a9078f4..4eb3354 100644
bbf714
--- a/govirt/ovirt-storage-domain.c
bbf714
+++ b/govirt/ovirt-storage-domain.c
bbf714
@@ -171,7 +171,7 @@ static gboolean ovirt_storage_domain_init_from_xml(OvirtResource *resource,
bbf714
           .xml_path = "storage_format",
bbf714
         },
bbf714
         { .prop_name = "state",
bbf714
-          .xml_path = "status/state",
bbf714
+          .xml_path = "status",
bbf714
         },
bbf714
         { .prop_name = "data-center-ids",
bbf714
           .xml_path = "data_centers",
bbf714
diff --git a/govirt/ovirt-vm.c b/govirt/ovirt-vm.c
bbf714
index 8cd482b..7e1dec1 100644
bbf714
--- a/govirt/ovirt-vm.c
bbf714
+++ b/govirt/ovirt-vm.c
bbf714
@@ -201,7 +201,7 @@ static gboolean ovirt_vm_init_from_xml(OvirtResource *resource,
bbf714
           .xml_attr = "id",
bbf714
         },
bbf714
         { .prop_name = "state",
bbf714
-          .xml_path = "status/state",
bbf714
+          .xml_path = "status",
bbf714
         },
bbf714
         { NULL, },
bbf714
     };
bbf714
-- 
bbf714
2.25.1
bbf714