1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-21 14:50:08 +03:00

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)
This commit is contained in:
Hector Sanjuan 2012-09-18 17:09:59 +02:00 committed by Ruben S. Montero
parent 68155558b0
commit c62a2e4f29

View File

@ -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({