Skip to content

Commit c212574

Browse files
author
Jessica Wang
committed
CLOUDSTACK-4649: UI > (1) Register Template dialog: add 'XenServer Tools Version 6.1+' checkbox.
(2) Template detailView: add 'XenServer Tools Version 6.1+' field. (3) Instance detailView: add 'XenServer Tools Version 6.1+' field.
1 parent c1131d1 commit c212574

3 files changed

Lines changed: 101 additions & 8 deletions

File tree

ui/scripts/instances.js

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1475,9 +1475,13 @@
14751475
if (isAdmin()) {
14761476
hiddenFields = [];
14771477
} else {
1478-
hiddenFields = ["hypervisor"];
1478+
hiddenFields = ["hypervisor", 'xenserverToolsVersion61plus'];
14791479
}
1480-
1480+
1481+
if ('instances' in args.context && args.context.instances[0].hypervisor != 'XenServer') {
1482+
hiddenFields.push('xenserverToolsVersion61plus');
1483+
}
1484+
14811485
if (!args.context.instances[0].publicip) {
14821486
hiddenFields.push('publicip');
14831487
}
@@ -1559,6 +1563,18 @@
15591563
label: 'label.hypervisor'
15601564
},
15611565

1566+
xenserverToolsVersion61plus: {
1567+
label: 'XenServer Tools Version 6.1+',
1568+
isBoolean: true,
1569+
isEditable: function () {
1570+
if (isAdmin())
1571+
return true;
1572+
else
1573+
return false;
1574+
},
1575+
converter: cloudStack.converters.toBooleanText
1576+
},
1577+
15621578
/*
15631579
isoid: {
15641580
label: 'label.attached.iso',
@@ -1634,6 +1650,13 @@
16341650
state: "Destroyed"
16351651
}); //after a regular user destroys a VM, listVirtualMachines API will no longer returns this destroyed VM to the regular user.
16361652

1653+
if ('details' in jsonObj && 'hypervisortoolsversion' in jsonObj.details) {
1654+
if (jsonObj.details.hypervisortoolsversion == 'xenserver61')
1655+
jsonObj.xenserverToolsVersion61plus = true;
1656+
else
1657+
jsonObj.xenserverToolsVersion61plus = false;
1658+
}
1659+
16371660
args.response.success({
16381661
actionFilter: vmActionfilter,
16391662
data: jsonObj

ui/scripts/sharedFunctions.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -839,6 +839,7 @@ cloudStack.preFilter = {
839839
args.$form.find('.form-item[rel=isPublic]').hide();
840840
}
841841
args.$form.find('.form-item[rel=isFeatured]').hide();
842+
args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').hide();
842843
}
843844
},
844845
addLoadBalancerDevice: function(args) { //add netscaler device OR add F5 device

ui/scripts/templates.js

Lines changed: 75 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -214,17 +214,52 @@
214214
$form.find('.form-item[rel=rootDiskControllerType]').css('display', 'inline-block');
215215
$form.find('.form-item[rel=nicAdapterType]').css('display', 'inline-block');
216216
$form.find('.form-item[rel=keyboardType]').css('display', 'inline-block');
217+
218+
$form.find('.form-item[rel=xenserverToolsVersion61plus]').hide();
219+
} else if ($(this).val() == "XenServer") {
220+
$form.find('.form-item[rel=rootDiskControllerType]').hide();
221+
$form.find('.form-item[rel=nicAdapterType]').hide();
222+
$form.find('.form-item[rel=keyboardType]').hide();
223+
224+
if (isAdmin())
225+
$form.find('.form-item[rel=xenserverToolsVersion61plus]').css('display', 'inline-block');
217226
} else {
218227
$form.find('.form-item[rel=rootDiskControllerType]').hide();
219228
$form.find('.form-item[rel=nicAdapterType]').hide();
220229
$form.find('.form-item[rel=keyboardType]').hide();
230+
231+
$form.find('.form-item[rel=xenserverToolsVersion61plus]').hide();
221232
}
222233
});
223234

224235
args.$select.trigger('change');
225236
}
226237
},
227238

239+
xenserverToolsVersion61plus: {
240+
label: 'XenServer Tools Version 6.1+',
241+
isBoolean: true,
242+
isChecked: function (args) {
243+
var b = false;
244+
if (isAdmin()) {
245+
$.ajax({
246+
url: createURL('listConfigurations'),
247+
data: {
248+
name: 'xen.pvdriver.version'
249+
},
250+
async: false,
251+
success: function (json) {
252+
if (json.listconfigurationsresponse.configuration != null && json.listconfigurationsresponse.configuration[0].value == 'xenserver61') {
253+
b = true;
254+
}
255+
}
256+
});
257+
}
258+
return b;
259+
},
260+
isHidden: true
261+
},
262+
228263
//fields for hypervisor == "VMware" (starts here)
229264
rootDiskControllerType: {
230265
label: 'label.root.disk.controller',
@@ -439,6 +474,16 @@
439474
});
440475
}
441476

477+
478+
//XenServer only (starts here)
479+
if (args.$form.find('.form-item[rel=xenserverToolsVersion61plus]').css("display") != "none") {
480+
$.extend(data, {
481+
'details[0].hypervisortoolsversion': (args.data.xenserverToolsVersion61plus == "on") ? "xenserver61" : "xenserver56"
482+
});
483+
}
484+
//XenServer only (ends here)
485+
486+
442487
//VMware only (starts here)
443488
if (args.$form.find('.form-item[rel=rootDiskControllerType]').css("display") != "none" && args.data.rootDiskControllerType != "") {
444489
$.extend(data, {
@@ -800,8 +845,13 @@
800845
if (isAdmin()) {
801846
hiddenFields = [];
802847
} else {
803-
hiddenFields = ["hypervisor"];
848+
hiddenFields = ["hypervisor", 'xenserverToolsVersion61plus'];
804849
}
850+
851+
if ('templates' in args.context && args.context.templates[0].hypervisor != 'XenServer') {
852+
hiddenFields.push('xenserverToolsVersion61plus');
853+
}
854+
805855
return hiddenFields;
806856
},
807857

@@ -833,6 +883,17 @@
833883
hypervisor: {
834884
label: 'label.hypervisor'
835885
},
886+
xenserverToolsVersion61plus: {
887+
label: 'XenServer Tools Version 6.1+',
888+
isBoolean: true,
889+
isEditable: function () {
890+
if (isAdmin())
891+
return true;
892+
else
893+
return false;
894+
},
895+
converter: cloudStack.converters.toBooleanText
896+
},
836897
templatetype: {
837898
label: 'label.type'
838899
},
@@ -959,13 +1020,21 @@
9591020
url: createURL(apiCmd),
9601021
dataType: "json",
9611022
success: function(json) {
962-
args.response.success({
963-
actionFilter: templateActionfilter,
964-
data: json.listtemplatesresponse.template[0]
965-
});
1023+
var jsonObj = json.listtemplatesresponse.template[0];
1024+
1025+
if ('details' in jsonObj && 'hypervisortoolsversion' in jsonObj.details) {
1026+
if (jsonObj.details.hypervisortoolsversion == 'xenserver61')
1027+
jsonObj.xenserverToolsVersion61plus = true;
1028+
else
1029+
jsonObj.xenserverToolsVersion61plus = false;
1030+
}
1031+
1032+
args.response.success({
1033+
actionFilter: templateActionfilter,
1034+
data: jsonObj
1035+
});
9661036
}
9671037
});
968-
9691038
}
9701039
}
9711040
}

0 commit comments

Comments
 (0)