Repository: cloudstack Updated Branches: refs/heads/master b11380eeb -> 7b6f49617
CLOUDSTACK-7943: UI > storage > volume > create template action > add "XenServer Tools Version 6.1+" checkbox. Default it as its VM's "XenServer Tools Version 6.1+" property. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7b6f4961 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7b6f4961 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7b6f4961 Branch: refs/heads/master Commit: 7b6f49617d35ccbb237a8ba36424e987b5b23a3b Parents: b11380e Author: Jessica Wang <jessicaw...@apache.org> Authored: Wed Nov 19 12:01:43 2014 -0800 Committer: Jessica Wang <jessicaw...@apache.org> Committed: Wed Nov 19 12:04:46 2014 -0800 ---------------------------------------------------------------------- ui/scripts/storage.js | 64 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7b6f4961/ui/scripts/storage.js ---------------------------------------------------------------------- diff --git a/ui/scripts/storage.js b/ui/scripts/storage.js index d18b211..e628c61 100644 --- a/ui/scripts/storage.js +++ b/ui/scripts/storage.js @@ -1063,6 +1063,13 @@ title: 'label.create.template', preFilter: cloudStack.preFilter.createTemplate, desc: '', + preFilter: function(args) { + if (args.context.volumes[0].hypervisor == "XenServer") { + if (isAdmin()) { + args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').css('display', 'inline-block'); + } + } + }, fields: { name: { label: 'label.name', @@ -1075,7 +1082,50 @@ validation: { required: true } - }, + }, + xenserverToolsVersion61plus: { + label: 'label.xenserver.tools.version.61.plus', + isBoolean: true, + isChecked: function (args) { + var b = false; + var vmObj; + $.ajax({ + url: createURL("listVirtualMachines"), + data: { + id: args.context.volumes[0].virtualmachineid + }, + async: false, + success: function(json) { + vmObj = json.listvirtualmachinesresponse.virtualmachine[0]; + } + }); + if (vmObj == undefined) { //e.g. VM has failed over + if (isAdmin()) { + $.ajax({ + url: createURL('listConfigurations'), + data: { + name: 'xenserver.pvdriver.version' + }, + async: false, + success: function (json) { + if (json.listconfigurationsresponse.configuration != null && json.listconfigurationsresponse.configuration[0].value == 'xenserver61') { + b = true; + } + } + }); + } + } else { + if ('details' in vmObj && 'hypervisortoolsversion' in vmObj.details) { + if (vmObj.details.hypervisortoolsversion == 'xenserver61') + b = true; + else + b = false; + } + } + return b; + }, + isHidden: true + }, osTypeId: { label: 'label.os.type', select: function(args) { @@ -1134,7 +1184,17 @@ isfeatured: (args.data.isFeatured == "on") }); } - + + //XenServer only (starts here) + if (args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').length > 0) { + if (args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').css("display") != "none") { + $.extend(data, { + 'details[0].hypervisortoolsversion': (args.data.xenserverToolsVersion61plus == "on") ? "xenserver61" : "xenserver56" + }); + } + } + //XenServer only (ends here) + $.ajax({ url: createURL('createTemplate'), data: data,