Blame SOURCES/0037-vm-Set-vm-state-property-using-OvirtXmlElement-struc.patch

546e1e
From 039c8d8bc0aa49ea3bd34fc190afc844d68a6e41 Mon Sep 17 00:00:00 2001
546e1e
From: "Eduardo Lima (Etrunko)" <etrunko@redhat.com>
546e1e
Date: Thu, 4 May 2017 18:23:39 -0300
546e1e
Subject: [PATCH] vm: Set vm state property using OvirtXmlElement struct
546e1e
546e1e
It was required to change the default value of the enum property to
546e1e
OVIRT_VM_STATE_UNKNOWN, so that it will be set by
546e1e
ovirt_rest_xml_node_parse() function in case of error.
546e1e
546e1e
Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
546e1e
---
546e1e
 govirt/ovirt-vm-xml.c | 30 +-----------------------------
546e1e
 govirt/ovirt-vm.c     |  5 ++++-
546e1e
 2 files changed, 5 insertions(+), 30 deletions(-)
546e1e
546e1e
diff --git a/govirt/ovirt-vm-xml.c b/govirt/ovirt-vm-xml.c
546e1e
index 9990262..25f50f3 100644
546e1e
--- a/govirt/ovirt-vm-xml.c
546e1e
+++ b/govirt/ovirt-vm-xml.c
546e1e
@@ -138,35 +138,7 @@ static gboolean vm_set_display_from_xml(OvirtVm *vm,
546e1e
     return TRUE;
546e1e
 }
546e1e
 
546e1e
-static gboolean vm_set_state_from_xml(OvirtVm *vm, RestXmlNode *node)
546e1e
-{
546e1e
-    RestXmlNode *state_node;
546e1e
-
546e1e
-    state_node = rest_xml_node_find(node, "status");
546e1e
-    if (state_node == NULL) {
546e1e
-        g_debug("Could not find 'status' node");
546e1e
-        return FALSE;
546e1e
-    }
546e1e
-    state_node = rest_xml_node_find(state_node, "state");
546e1e
-    if (state_node != NULL) {
546e1e
-        int state;
546e1e
-
546e1e
-        g_return_val_if_fail(state_node->content != NULL, FALSE);
546e1e
-        state = ovirt_utils_genum_get_value(OVIRT_TYPE_VM_STATE,
546e1e
-                                            state_node->content,
546e1e
-                                            OVIRT_VM_STATE_UNKNOWN);
546e1e
-        g_object_set(G_OBJECT(vm), "state", state, NULL);
546e1e
-
546e1e
-        return TRUE;
546e1e
-    }
546e1e
-
546e1e
-    return FALSE;
546e1e
-}
546e1e
-
546e1e
 G_GNUC_INTERNAL gboolean ovirt_vm_refresh_from_xml(OvirtVm *vm, RestXmlNode *node)
546e1e
 {
546e1e
-    vm_set_state_from_xml(vm, node);
546e1e
-    vm_set_display_from_xml(vm, node);
546e1e
-
546e1e
-    return TRUE;
546e1e
+    return vm_set_display_from_xml(vm, node);
546e1e
 }
546e1e
diff --git a/govirt/ovirt-vm.c b/govirt/ovirt-vm.c
546e1e
index 36ffd35..f30022d 100644
546e1e
--- a/govirt/ovirt-vm.c
546e1e
+++ b/govirt/ovirt-vm.c
546e1e
@@ -199,6 +199,9 @@ static gboolean ovirt_vm_init_from_xml(OvirtResource *resource,
546e1e
           .xml_path = "cluster",
546e1e
           .xml_attr = "id",
546e1e
         },
546e1e
+        { .prop_name = "state",
546e1e
+          .xml_path = "status/state",
546e1e
+        },
546e1e
         { NULL, },
546e1e
     };
546e1e
 
546e1e
@@ -233,7 +236,7 @@ static void ovirt_vm_class_init(OvirtVmClass *klass)
546e1e
                                                       "State",
546e1e
                                                       "Virtual Machine State",
546e1e
                                                       OVIRT_TYPE_VM_STATE,
546e1e
-                                                      OVIRT_VM_STATE_DOWN,
546e1e
+                                                      OVIRT_VM_STATE_UNKNOWN,
546e1e
                                                       G_PARAM_READWRITE |
546e1e
                                                       G_PARAM_STATIC_STRINGS));
546e1e
     g_object_class_install_property(object_class,
546e1e
-- 
546e1e
2.14.4
546e1e