From c62a2e4f2950b35a0e8cc3061282bd151ef936a2 Mon Sep 17 00:00:00 2001 From: Hector Sanjuan Date: Tue, 18 Sep 2012 17:09:59 +0200 Subject: [PATCH] Sunstone: allow custom path for resources in opennebula.js The purpose is to be able to fetch and parse a resource from an URL which is not exactly the lowercase version of the resource name. i.e. using MY_RESOURCE_POOL provided by /custom_route url (cherry picked from commit 237660ee94d93da1808e5d7c399fda489e51e3c8) --- src/sunstone/public/js/opennebula.js | 40 +++++++++++++++++----------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/src/sunstone/public/js/opennebula.js b/src/sunstone/public/js/opennebula.js index f1a90dc805..e5feba7291 100644 --- a/src/sunstone/public/js/opennebula.js +++ b/src/sunstone/public/js/opennebula.js @@ -206,14 +206,15 @@ var OpenNebula = { //server requests helper methods - "create": function(params,resource){ + "create": function(params, resource, path){ var callback = params.success; var callback_error = params.error; var data = params.data; var request = OpenNebula.Helper.request(resource,"create", data); + var req_path = path ? path : resource.toLowerCase(); $.ajax({ - url: resource.toLowerCase(), + url: req_path, type: "POST", dataType: "json", data: JSON.stringify(data), @@ -227,14 +228,15 @@ var OpenNebula = { }); }, - "del": function(params,resource){ + "del": function(params, resource, path){ var callback = params.success; var callback_error = params.error; var id = params.data.id; var request = OpenNebula.Helper.request(resource,"delete", id); + var req_path = path ? path : resource.toLowerCase(); $.ajax({ - url: resource.toLowerCase() + "/" + id, + url: req_path + "/" + id, type: "DELETE", success: function(){ return callback ? callback(request) : null; @@ -246,14 +248,15 @@ var OpenNebula = { }); }, - "list": function(params,resource){ + "list": function(params, resource, path){ var callback = params.success; var callback_error = params.error; var timeout = params.timeout || false; var request = OpenNebula.Helper.request(resource,"list"); + var req_path = path ? path : resource.toLowerCase(); $.ajax({ - url: resource.toLowerCase(), + url: req_path, type: "GET", data: {timeout: timeout}, dataType: "json", @@ -271,7 +274,7 @@ var OpenNebula = { }, //Subresource examples: "fetch_template", "log"... - "show": function(params,resource,subresource){ + "show": function(params, resource, subresource, path){ var callback = params.success; var callback_error = params.error; var id = params.data.id; @@ -279,7 +282,8 @@ var OpenNebula = { OpenNebula.Helper.request(resource,subresource,id) : OpenNebula.Helper.request(resource,"show", id); - var url = resource.toLowerCase() + "/" + id; + var req_path = path ? path : resource.toLowerCase(); + var url = req_path + "/" + id; url = subresource? url + "/" + subresource : url; $.ajax({ @@ -296,7 +300,7 @@ var OpenNebula = { }); }, - "chown": function(params,resource,chgrp){ + "chown": function(params, resource, path){ var id = params.data.extra_param; var action_obj = {"owner_id": id, "group_id": "-1"}; @@ -304,10 +308,11 @@ var OpenNebula = { OpenNebula.Action.simple_action(params, resource, "chown", - action_obj); + action_obj, + path); }, - "chgrp": function(params,resource){ + "chgrp": function(params, resource, path){ var id = params.data.extra_param; var action_obj = {"owner_id": "-1", "group_id": id}; @@ -315,11 +320,12 @@ var OpenNebula = { OpenNebula.Action.simple_action(params, resource, "chown", - action_obj); + action_obj, + path); }, //Example: Simple action: publish. Simple action with action obj: deploy - "simple_action": function(params,resource,method,action_obj){ + "simple_action": function(params, resource, method, action_obj, path){ var callback = params.success; var callback_error = params.error; var id = params.data.id; @@ -333,8 +339,10 @@ var OpenNebula = { request = OpenNebula.Helper.request(resource,method, id); }; + var req_path = path ? path : resource.toLowerCase(); + $.ajax({ - url: resource.toLowerCase() + "/" + id + "/action", + url: req_path + "/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function(){ @@ -347,7 +355,7 @@ var OpenNebula = { }); }, - "monitor": function(params,resource,all){ + "monitor": function(params, resource, all, path){ var callback = params.success; var callback_error = params.error; var data = params.data; @@ -355,7 +363,7 @@ var OpenNebula = { var method = "monitor"; var request = OpenNebula.Helper.request(resource,method, data); - var url = resource.toLowerCase(); + var url = path ? path : resource.toLowerCase(); url = all ? url + "/monitor" : url + "/" + params.data.id + "/monitor"; $.ajax({