[virt-tools-list] [virt-viewer 14/20] Make OvirtProxy inherit from RestProxy

Christophe Fergeau cfergeau at redhat.com
Wed Jun 13 12:23:22 UTC 2012


This makes more sense, I don't know why I haven't done it earlier.
---
 src/ovirt-proxy.c |   86 +++++++----------------------------------------------
 src/ovirt-proxy.h |    6 ++--
 2 files changed, 14 insertions(+), 78 deletions(-)

diff --git a/src/ovirt-proxy.c b/src/ovirt-proxy.c
index 16e1eaa..7e3a071 100644
--- a/src/ovirt-proxy.c
+++ b/src/ovirt-proxy.c
@@ -31,23 +31,17 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <rest/rest-proxy.h>
 #include <rest/rest-xml-node.h>
 #include <rest/rest-xml-parser.h>
 
-G_DEFINE_TYPE (OvirtProxy, ovirt_proxy, G_TYPE_OBJECT);
+G_DEFINE_TYPE (OvirtProxy, ovirt_proxy, REST_TYPE_PROXY);
 
 struct _OvirtProxyPrivate {
-    RestProxy *rest_proxy;
     GHashTable *vms;
 };
 
 #define OVIRT_PROXY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), OVIRT_TYPE_PROXY, OvirtProxyPrivate))
 
-enum {
-    PROP_0,
-    PROP_URI,
-};
 
 #define ADMIN_LOGIN "admin at internal"
 #define ADMIN_PASSWORD "XXXXXXX"
@@ -373,9 +367,8 @@ static gboolean ovirt_proxy_fetch_vms(OvirtProxy *proxy, GError **error)
     RestProxyCall *call;
 
     g_return_val_if_fail(OVIRT_IS_PROXY(proxy), FALSE);
-    g_return_val_if_fail(REST_IS_PROXY(proxy->priv->rest_proxy), FALSE);
 
-    call = REST_PROXY_CALL(ovirt_rest_call_new(proxy->priv->rest_proxy));
+    call = REST_PROXY_CALL(ovirt_rest_call_new(REST_PROXY(proxy)));
     rest_proxy_call_set_function(call, "vms");
 
     if (!rest_proxy_call_sync(call, error)) {
@@ -458,7 +451,6 @@ gboolean ovirt_proxy_lookup_vm_async(OvirtProxy *proxy, const char *vm_name,
     OvirtVm *vm;
 
     g_return_val_if_fail(OVIRT_IS_PROXY(proxy), FALSE);
-    g_return_val_if_fail(REST_IS_PROXY(proxy->priv->rest_proxy), FALSE);
     g_return_val_if_fail(vm_name != NULL, FALSE);
     g_return_val_if_fail(async_cb != NULL, FALSE);
 
@@ -473,7 +465,7 @@ gboolean ovirt_proxy_lookup_vm_async(OvirtProxy *proxy, const char *vm_name,
         data->async_cb = async_cb;
         data->user_data = user_data;
         data->vm_name = g_strdup(vm_name);
-        call = REST_PROXY_CALL(ovirt_rest_call_new(proxy->priv->rest_proxy));
+        call = REST_PROXY_CALL(ovirt_rest_call_new(REST_PROXY(proxy)));
         rest_proxy_call_set_function(call, "vms");
 
         if (!rest_proxy_call_async(call, fetch_vms_async_cb, G_OBJECT(proxy),
@@ -635,13 +627,12 @@ ovirt_proxy_vm_action(OvirtProxy *proxy, OvirtVm *vm, const char *action,
     g_return_val_if_fail(OVIRT_IS_VM(vm), FALSE);
     g_return_val_if_fail(action != NULL, FALSE);
     g_return_val_if_fail(OVIRT_IS_PROXY(proxy), FALSE);
-    g_return_val_if_fail(REST_IS_PROXY(proxy->priv->rest_proxy), FALSE);
     g_return_val_if_fail((error == NULL) || (*error == NULL), FALSE);
 
     function = ovirt_vm_get_action(vm, action);
     g_return_val_if_fail(function != NULL, FALSE);
 
-    call = REST_PROXY_CALL(ovirt_rest_call_new(proxy->priv->rest_proxy));
+    call = REST_PROXY_CALL(ovirt_rest_call_new(REST_PROXY(proxy)));
     rest_proxy_call_set_method(call, "POST");
     rest_proxy_call_set_function(call, function);
     rest_proxy_call_add_param(call, "async", "false");
@@ -728,13 +719,12 @@ ovirt_proxy_vm_action_async(OvirtProxy *proxy, OvirtVm *vm,
     g_return_val_if_fail(OVIRT_IS_VM(vm), FALSE);
     g_return_val_if_fail(action != NULL, FALSE);
     g_return_val_if_fail(OVIRT_IS_PROXY(proxy), FALSE);
-    g_return_val_if_fail(REST_IS_PROXY(proxy->priv->rest_proxy), FALSE);
     g_return_val_if_fail((error == NULL) || (*error == NULL), FALSE);
 
     function = ovirt_vm_get_action(vm, action);
     g_return_val_if_fail(function != NULL, FALSE);
 
-    call = REST_PROXY_CALL(ovirt_rest_call_new(proxy->priv->rest_proxy));
+    call = REST_PROXY_CALL(ovirt_rest_call_new(REST_PROXY(proxy)));
     rest_proxy_call_set_method(call, "POST");
     rest_proxy_call_set_function(call, function);
     rest_proxy_call_add_param(call, "async", "false");
@@ -787,57 +777,10 @@ ovirt_proxy_vm_stop_async(OvirtProxy *proxy, OvirtVm *vm,
 }
 
 static void
-ovirt_get_property(GObject *object, guint property_id,
-                   GValue *value, GParamSpec *pspec)
-{
-    OvirtProxy *self = OVIRT_PROXY(object);
-
-    switch (property_id) {
-    case PROP_URI: {
-        char *uri;
-        g_object_get(G_OBJECT(self->priv->rest_proxy),
-                     "url-format", &uri,
-                     NULL);
-        g_value_take_string(value, uri);
-        break;
-    }
-
-    default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-    }
-}
-
-static void
-ovirt_set_property(GObject *object, guint property_id,
-                   const GValue *value G_GNUC_UNUSED, GParamSpec *pspec)
-{
-    OvirtProxy *self = OVIRT_PROXY(object);
-
-    switch (property_id) {
-    case PROP_URI:
-        if (self->priv->rest_proxy)
-            g_object_unref(self->priv->rest_proxy);
-        self->priv->rest_proxy = rest_proxy_new_with_authentication(g_value_get_string(value),
-                                                                    FALSE,
-                                                                    ADMIN_LOGIN,
-                                                                    ADMIN_PASSWORD);
-        g_object_set(G_OBJECT(self->priv->rest_proxy),
-                     "ssl-strict", FALSE,
-                     NULL);
-        break;
-
-    default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-    }
-}
-
-
-static void
 ovirt_proxy_dispose(GObject *obj)
 {
     OvirtProxy *proxy = OVIRT_PROXY(obj);
 
-    g_clear_object(&proxy->priv->rest_proxy);
     if (proxy->priv->vms) {
         g_hash_table_unref(proxy->priv->vms);
         proxy->priv->vms = NULL;
@@ -852,20 +795,8 @@ ovirt_proxy_class_init(OvirtProxyClass *klass)
     GObjectClass *oclass = G_OBJECT_CLASS(klass);
 
     oclass->dispose = ovirt_proxy_dispose;
-    oclass->get_property = ovirt_get_property;
-    oclass->set_property = ovirt_set_property;
 
     g_type_class_add_private(klass, sizeof(OvirtProxyPrivate));
-
-    g_object_class_install_property(oclass,
-                                    PROP_URI,
-                                    g_param_spec_string("uri",
-                                                        "REST URI",
-                                                        "REST URI",
-                                                        NULL,
-                                                        G_PARAM_READWRITE |
-                                                        G_PARAM_CONSTRUCT_ONLY |
-                                                        G_PARAM_STATIC_STRINGS));
 }
 
 static void
@@ -876,5 +807,10 @@ ovirt_proxy_init(OvirtProxy *self)
 
 OvirtProxy *ovirt_proxy_new(const char *uri)
 {
-    return g_object_new(OVIRT_TYPE_PROXY, "uri", uri, NULL);
+    return g_object_new(OVIRT_TYPE_PROXY,
+                        "url-format", uri,
+                        "ssl-strict", FALSE,
+                        "username", ADMIN_LOGIN,
+                        "password", ADMIN_PASSWORD,
+                        NULL);
 }
diff --git a/src/ovirt-proxy.h b/src/ovirt-proxy.h
index 1272b9d..fc796a5 100644
--- a/src/ovirt-proxy.h
+++ b/src/ovirt-proxy.h
@@ -22,7 +22,7 @@
 #ifndef __OVIRT_PROXY_H__
 #define __OVIRT_PROXY_H__
 
-#include <glib-object.h>
+#include <rest/rest-proxy.h>
 #include <ovirt-vm.h>
 
 G_BEGIN_DECLS
@@ -49,13 +49,13 @@ typedef struct _OvirtProxyClass OvirtProxyClass;
 typedef struct _OvirtProxyPrivate OvirtProxyPrivate;
 
 struct _OvirtProxy {
-    GObject parent;
+    RestProxy parent;
 
     OvirtProxyPrivate *priv;
 };
 
 struct _OvirtProxyClass {
-    GObjectClass parent_class;
+    RestProxyClass parent_class;
 };
 
 typedef enum {
-- 
1.7.10.2




More information about the virt-tools-list mailing list