[libgovirt] resource: Add helper to create action REST calls
- From: Christophe Fergeau <teuf src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgovirt] resource: Add helper to create action REST calls
- Date: Thu, 26 Jun 2014 23:21:50 +0000 (UTC)
commit 9b951f00fd93df9d5f762797bfc0d0fd8eb0ab69
Author: Christophe Fergeau <cfergeau redhat com>
Date: Tue Apr 29 12:12:51 2014 +0200
resource: Add helper to create action REST calls
govirt/ovirt-resource.c | 45 ++++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 15 deletions(-)
---
diff --git a/govirt/ovirt-resource.c b/govirt/ovirt-resource.c
index a3570fe..c20a88b 100644
--- a/govirt/ovirt-resource.c
+++ b/govirt/ovirt-resource.c
@@ -601,6 +601,26 @@ static gboolean parse_action_response(RestProxyCall *call, OvirtResource *resour
ActionResponseParser response_parser,
GError **error);
+static RestProxyCall *
+ovirt_resource_create_rest_call_for_action(OvirtResource *resource,
+ OvirtProxy *proxy,
+ const char *action)
+{
+ OvirtActionRestCall *call;
+ const char *function;
+
+ function = ovirt_resource_get_action(resource, action);
+ g_return_val_if_fail(function != NULL, NULL);
+
+ call = ovirt_action_rest_call_new(REST_PROXY(proxy));
+ rest_proxy_call_set_method(REST_PROXY_CALL(call), "POST");
+ rest_proxy_call_set_function(REST_PROXY_CALL(call), function);
+ rest_proxy_call_add_param(REST_PROXY_CALL(call),
+ "async", "false");
+
+ return REST_PROXY_CALL(call);
+}
+
gboolean
ovirt_resource_action(OvirtResource *resource, OvirtProxy *proxy,
const char *action,
@@ -608,20 +628,16 @@ ovirt_resource_action(OvirtResource *resource, OvirtProxy *proxy,
GError **error)
{
RestProxyCall *call;
- const char *function;
g_return_val_if_fail(OVIRT_IS_RESOURCE(resource), FALSE);
g_return_val_if_fail(action != NULL, FALSE);
g_return_val_if_fail(OVIRT_IS_PROXY(proxy), FALSE);
g_return_val_if_fail((error == NULL) || (*error == NULL), FALSE);
- function = ovirt_resource_get_action(OVIRT_RESOURCE(resource), action);
- g_return_val_if_fail(function != NULL, FALSE);
-
- call = REST_PROXY_CALL(ovirt_action_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");
+ call = ovirt_resource_create_rest_call_for_action(resource,
+ proxy,
+ action);
+ g_return_val_if_fail(call != NULL, FALSE);
if (!rest_proxy_call_sync(call, error)) {
GError *call_error = NULL;
@@ -777,9 +793,8 @@ ovirt_resource_invoke_action_async(OvirtResource *resource,
GAsyncReadyCallback callback,
gpointer user_data)
{
- OvirtRestCall *call;
+ RestProxyCall *call;
GSimpleAsyncResult *result;
- const char *function;
OvirtResourceInvokeActionData *data;
g_return_if_fail(OVIRT_IS_RESOURCE(resource));
@@ -788,8 +803,10 @@ ovirt_resource_invoke_action_async(OvirtResource *resource,
g_return_if_fail((cancellable == NULL) || G_IS_CANCELLABLE(cancellable));
g_debug("invoking '%s' action on %p using %p", action, resource, proxy);
- function = ovirt_resource_get_action(resource, action);
- g_return_if_fail(function != NULL);
+ call = ovirt_resource_create_rest_call_for_action(resource,
+ proxy,
+ action);
+ g_return_if_fail(call != NULL);
result = g_simple_async_result_new(G_OBJECT(resource), callback,
user_data,
@@ -798,9 +815,7 @@ ovirt_resource_invoke_action_async(OvirtResource *resource,
data->resource = resource;
data->parser = response_parser;
- call = ovirt_rest_call_new(proxy, "POST", function);
-
- ovirt_rest_call_async(call, result, cancellable,
+ ovirt_rest_call_async(OVIRT_REST_CALL(call), result, cancellable,
ovirt_resource_invoke_action_async_cb, data,
(GDestroyNotify)ovirt_resource_invoke_action_data_free);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]