
From: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com> This patch disables all CPU options in the 'Processor' tab when the guest is running or paused. Signed-off-by: Daniel Henrique Barboza <danielhb@linux.vnet.ibm.com> --- ui/js/src/kimchi.guest_edit_main.js | 45 ++++++++++++++++++++++++------------- ui/pages/guest-edit.html.tmpl | 5 ++++- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/ui/js/src/kimchi.guest_edit_main.js b/ui/js/src/kimchi.guest_edit_main.js index dbeb5b9..7a0d02f 100644 --- a/ui/js/src/kimchi.guest_edit_main.js +++ b/ui/js/src/kimchi.guest_edit_main.js @@ -781,7 +781,18 @@ kimchi.guest_edit_main = function() { setupPermission(); setupPCIDevice(); setupSnapshot(); + kimchi.init_processor_tab(guest.cpu_info, $(saveButton)); + if ((kimchi.thisVMState === "running") || (kimchi.thisVMState === "paused")) { + $('#vcpus').attr("disabled", true); + $('#guest-edit-max-processor-textbox').attr("disabled", true); + $('#sockets').attr("disabled", true); + $('#cores').attr("disabled", true); + $('#threads').attr("disabled", true); + + $("#topology-checkbox").hide(); + $("#settings-readonly-help").removeClass('hidden'); + } wok.topic('kimchi/vmCDROMAttached').subscribe(onAttached); wok.topic('kimchi/vmCDROMReplaced').subscribe(onReplaced); @@ -925,22 +936,26 @@ kimchi.guest_edit_main = function() { if (maxCpu >= cpu) { maxCpuFinal = maxCpu; } - if ($("input:checkbox", "#form-edit-processor").prop("checked")) { - data['cpu_info'] = { - vcpus: cpu, - maxvcpus: maxCpuFinal, - topology: { - sockets: parseInt($("#sockets").val()), - cores: parseInt($("#cores").val()), - threads: parseInt($("#threads").val()) - } - }; + if (kimchi.thisVMState === 'running' || kimchi.thisVMState === 'paused') { + data['cpu_info'] = {vcpus: cpu}; } else { - data['cpu_info'] = { - vcpus: cpu, - maxvcpus: maxCpuFinal, - topology: {} - }; + if ($("input:checkbox", "#form-edit-processor").prop("checked")) { + data['cpu_info'] = { + vcpus: cpu, + maxvcpus: maxCpuFinal, + topology: { + sockets: parseInt($("#sockets").val()), + cores: parseInt($("#cores").val()), + threads: parseInt($("#threads").val()) + } + }; + } else { + data['cpu_info'] = { + vcpus: cpu, + maxvcpus: maxCpuFinal, + topology: {} + }; + } } kimchi.updateVM(kimchi.selectedGuest, data, function() { diff --git a/ui/pages/guest-edit.html.tmpl b/ui/pages/guest-edit.html.tmpl index e0e1a5a..61f010f 100644 --- a/ui/pages/guest-edit.html.tmpl +++ b/ui/pages/guest-edit.html.tmpl @@ -175,6 +175,9 @@ </form> <form role="tabpanel" class="tab-pane" id="form-edit-processor"> <div class="form-group"> + <div id="settings-readonly-help" class="hidden"> + <b>$_("Unable to edit CPU settings of a running or paused virtual machine.")</b> + </div> <div id="guest-processor"> <label for="vcpus">$_("Current CPU Number")</label> <input id="vcpus" class="form-control" name="processor" type="number" min="1" /> @@ -192,7 +195,7 @@ </p> </div> </div> - <div class="manual form-group"> + <div class="manual form-group" id="topology-checkbox"> <input type="checkbox" class="wok-checkbox" id="cpus-check" /> <label for="cpus-check">$_("Manually set CPU topology")</label> </div> -- 2.7.4