Skip to content

Commit

Permalink
B #6340: Fix request create a marketplace app (#2856)
Browse files Browse the repository at this point in the history
  • Loading branch information
jloboescalona2 authored Dec 4, 2023
1 parent fe54580 commit 2b0f530
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 6 deletions.
20 changes: 20 additions & 0 deletions src/sunstone/models/SunstoneServer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,26 @@ def create_resource(kind, template)
end
end


############################################################################
#
############################################################################
def createMarketApp(type, template)
action_hash = JSONUtils.parse_json(template, 'action')
if OpenNebula.is_error?(action_hash)
return [500, image_hash.to_json]
end
marketplaceapp = MarketPlaceAppJSON.new(MarketPlaceApp.build_xml, @client)

rc = case type
when "service" then marketplaceapp.app_service_import(action_hash['params'])
else
marketplaceapp.app_vm_import(action_hash['params']) #VM / VM_TEMPLATE
end

return [201, rc.to_json]
end

############################################################################
#
############################################################################
Expand Down
24 changes: 24 additions & 0 deletions src/sunstone/public/app/opennebula/action.js
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,31 @@ define(function(require) {

return ""+id;
},
"importMarketApp": function(params, resource, method, action_obj) {
var callback = params.success;
var callbackError = params.error;
var id = params.data.id;
var action = OpenNebulaHelper.action(method, action_obj);
var request = OpenNebulaHelper.request(resource, method, [id, action_obj]);

var reqPath = resource.toLowerCase();
var cache_name = params.cache_name ? params.cache_name : resource;
$.ajax({
url: reqPath + "/" + id + "/create",
type: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(action),
success: function(response) {
_clearCache(cache_name);

return callback ? callback(request, response) : null;
},
error: function(response) {
return callbackError ?
callbackError(request, OpenNebulaError(response)) : null;
}
});
},
"getAppTags": function(params, resource){
var callback = params.success;
var callbackError = params.error;
Expand Down
4 changes: 2 additions & 2 deletions src/sunstone/public/app/opennebula/marketplaceapp.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,11 +127,11 @@ define(function(require) {
},
"import_vm_template" : function(params){
var action_obj = params.data.extra_param;
OpenNebulaAction.simple_action(params, RESOURCE, "vm-template.import", action_obj);
OpenNebulaAction.importMarketApp(params, RESOURCE, "vm-template.import", action_obj);
},
"import_service_template" : function(params){
var action_obj = params.data.extra_param;
OpenNebulaAction.simple_action(params, RESOURCE, "service_template.import", action_obj);
OpenNebulaAction.importMarketApp(params, RESOURCE, "service_template.import", action_obj);
},
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ define(function(require) {

var newTemplate = $.extend(marketPlaceJSON, { ORIGIN_ID: String(templateId) });

Sunstone.runAction("MarketPlaceApp.import_vm_template", 0, newTemplate);
Sunstone.runAction("MarketPlaceApp.import_vm_template", 'vm', newTemplate);
},
error: function(request, response) {
Sunstone.hideFormPanelLoading(TAB_ID);
Expand All @@ -460,7 +460,7 @@ define(function(require) {
marketPlaceJSON['IMPORT_ALL'] = marketPlaceJSON['IMPORT_ALL'] === 'on'
marketPlaceJSON['MARKETPLACE_ID'] = marketplaceIdSelected;

Sunstone.runAction("MarketPlaceApp.import_vm_template", 0, marketPlaceJSON);
Sunstone.runAction("MarketPlaceApp.import_vm_template", 'vmtemplate', marketPlaceJSON);

break;

Expand All @@ -471,7 +471,7 @@ define(function(require) {
marketPlaceJSON['MARKETPLACE_ID'] = marketplaceIdSelected;
marketPlaceJSON['MARKETPLACE_SERVICE_ID'] = this.marketPlacesServiceTable.idInput().val();

Sunstone.runAction("MarketPlaceApp.import_service_template", 0, marketPlaceJSON);
Sunstone.runAction("MarketPlaceApp.import_service_template", 'service', marketPlaceJSON);

break;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@ define(function(require) {
function _fill(context, templateJSON) {
if(templateJSON && templateJSON.BACKUP_CONFIG){
var configs = templateJSON.BACKUP_CONFIG
console.log("dsadas", configs)
if(configs && configs.BACKUP_VOLATILE && configs.BACKUP_VOLATILE === 'YES'){
$(idsElements.backup_volatile, context).click();
}
Expand Down
7 changes: 7 additions & 0 deletions src/sunstone/sunstone-server.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1191,6 +1191,13 @@ def destroy_session
@SunstoneServer.get_docker_tags(params[:id])
end

##############################################################################
# Create a marketPlacetApp
##############################################################################
post '/marketplaceapp/:type/create' do
@SunstoneServer.createMarketApp(params[:type], @request_body)
end

##############################################################################
# Create a new Resource
##############################################################################
Expand Down

0 comments on commit 2b0f530

Please sign in to comment.