mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-21 14:50:08 +03:00
Merge branch 'bug-5126'
This commit is contained in:
commit
5a2f028c79
@ -403,6 +403,34 @@ module OpenNebula
|
||||
return @body['shutdown_action']
|
||||
end
|
||||
|
||||
# Replaces the template contents
|
||||
#
|
||||
# @param template_json [String] New template contents
|
||||
# @param append [true, false] True to append new attributes instead of
|
||||
# replace the whole template
|
||||
#
|
||||
# @return [nil, OpenNebula::Error] nil in case of success, Error
|
||||
# otherwise
|
||||
def update(template_json=nil, append=false)
|
||||
if template_json
|
||||
template = JSON.parse(template_json)
|
||||
|
||||
if append
|
||||
rc = info
|
||||
|
||||
if OpenNebula.is_error? rc
|
||||
return rc
|
||||
end
|
||||
|
||||
template = @body.merge(template)
|
||||
end
|
||||
|
||||
template_json = template.to_json
|
||||
end
|
||||
|
||||
super(template_json, append)
|
||||
end
|
||||
|
||||
# Replaces the raw template contents
|
||||
#
|
||||
# @param template [String] New template contents, in the form KEY = VAL
|
||||
|
@ -209,10 +209,10 @@ module OpenNebula
|
||||
def update(template_json, append=false)
|
||||
template = JSON.parse(template_json)
|
||||
|
||||
if(append)
|
||||
rc = info()
|
||||
if append
|
||||
rc = info
|
||||
|
||||
if(OpenNebula.is_error?(rc))
|
||||
if OpenNebula.is_error? rc
|
||||
return rc
|
||||
end
|
||||
|
||||
|
@ -248,20 +248,24 @@ post '/service/:id/action' do
|
||||
when 'rename'
|
||||
service.rename(opts['name'])
|
||||
when 'update'
|
||||
if opts && opts['template_raw']
|
||||
if (opts['append'] == true)
|
||||
rc = service.update_raw(
|
||||
opts['template_raw'],
|
||||
(opts['append'] == true))
|
||||
|
||||
if opts && opts['append']
|
||||
if opts['template_json']
|
||||
begin
|
||||
rc = service.update(opts['template_json'], true)
|
||||
status 204
|
||||
rescue Validator::ParseException, JSON::ParserError
|
||||
OpenNebula::Error.new($!.message)
|
||||
end
|
||||
elsif opts['template_raw']
|
||||
rc = service.update_raw(opts['template_raw'], true)
|
||||
status 204
|
||||
else
|
||||
OpenNebula::Error.new("Action #{action['perform']}: " <<
|
||||
"Only supported for append")
|
||||
"You have to provide a template")
|
||||
end
|
||||
else
|
||||
OpenNebula::Error.new("Action #{action['perform']}: " <<
|
||||
"You have to provide a raw template")
|
||||
"Only supported for append")
|
||||
end
|
||||
else
|
||||
OpenNebula::Error.new("Action #{action['perform']} not supported")
|
||||
|
@ -23,6 +23,8 @@ define(function(require) {
|
||||
var Locale = require('utils/locale');
|
||||
var Tips = require('utils/tips');
|
||||
var TemplatesTable = require('tabs/oneflow-templates-tab/datatable');
|
||||
var TemplateUtils = require('utils/template-utils');
|
||||
|
||||
/*
|
||||
CONSTANTS
|
||||
*/
|
||||
|
@ -25,6 +25,7 @@ define(function(require) {
|
||||
var Locale = require('utils/locale');
|
||||
var Tips = require('utils/tips');
|
||||
var RoleTab = require('tabs/oneflow-templates-tab/utils/role-tab');
|
||||
var TemplateUtils = require('utils/template-utils');
|
||||
|
||||
/*
|
||||
TEMPLATES
|
||||
@ -230,7 +231,7 @@ define(function(require) {
|
||||
json_template['ready_status_gate'] = ready_status_gate;
|
||||
|
||||
var templateStr = $('textarea#template', $("form#createServiceTemplateFormAdvanced")).val();
|
||||
var template_final = TemplateUtils.mergeTemplates(templateJSON, templateStr);
|
||||
var template_final = TemplateUtils.mergeTemplates(json_template, templateStr);
|
||||
if (this.action == "create") {
|
||||
Sunstone.runAction("ServiceTemplate.create", template_final );
|
||||
return false;
|
||||
|
@ -260,10 +260,15 @@ define(function(require) {
|
||||
}
|
||||
|
||||
function _updateResouceLabels(tabName, resourceId, labelsArray) {
|
||||
var templateStr = LABELS_ATTR + '="' + labelsArray.join(',') + '"';
|
||||
var resource = Sunstone.getResource(tabName);
|
||||
var tabTable = Sunstone.getDataTable(tabName);
|
||||
|
||||
if (resource == "ServiceTemplate" || resource == "Service") {
|
||||
var templateStr = '{"' + LABELS_ATTR.toLowerCase() + '":"' + labelsArray.join(',') + '"}';
|
||||
} else {
|
||||
var templateStr = LABELS_ATTR + '="' + labelsArray.join(',') + '"';
|
||||
}
|
||||
|
||||
OpenNebula[resource].append({
|
||||
timeout: true,
|
||||
data : {
|
||||
@ -294,7 +299,11 @@ define(function(require) {
|
||||
}
|
||||
|
||||
function _labelsStr(elementTemplate) {
|
||||
return TemplateUtils.htmlEncode( elementTemplate[LABELS_ATTR] );
|
||||
if (elementTemplate['BODY'] && elementTemplate["BODY"][LABELS_ATTR.toLowerCase()]) {
|
||||
return TemplateUtils.htmlEncode(elementTemplate["BODY"][LABELS_ATTR.toLowerCase()]);
|
||||
} else {
|
||||
return TemplateUtils.htmlEncode( elementTemplate[LABELS_ATTR] );
|
||||
}
|
||||
}
|
||||
|
||||
function _deserializeLabels(labelsStr) {
|
||||
@ -415,7 +424,13 @@ define(function(require) {
|
||||
} else {
|
||||
template = element.TEMPLATE;
|
||||
}
|
||||
return template[LABELS_ATTR]||'';
|
||||
|
||||
if (template["BODY"] && template["BODY"][LABELS_ATTR.toLowerCase()]) {
|
||||
return template["BODY"][LABELS_ATTR.toLowerCase()];
|
||||
} else {
|
||||
return template[LABELS_ATTR]||'';
|
||||
}
|
||||
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user