From ffdbf0bab1f45f99822718bc993539ac197fb831 Mon Sep 17 00:00:00 2001 From: Alejandro Huertas Herrero Date: Mon, 21 Jan 2019 12:46:31 +0100 Subject: [PATCH] B #2820: Fix CPU_MODEL can't be changed. (#2822) --- src/cli/onevm | 13 +++++++------ src/sunstone/public/app/tabs/vms-tab/panels/conf.js | 2 +- src/vm/VirtualMachine.cc | 7 +++++-- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/cli/onevm b/src/cli/onevm index 7b62b22164..a2a0c04dc9 100755 --- a/src/cli/onevm +++ b/src/cli/onevm @@ -1128,11 +1128,12 @@ CommandParser::CmdParser.new(ARGV) do This command accepts a template file or opens an editor, the full list of configuration attributes are: - OS = ["ARCH", "MACHINE", "KERNEL", "INITRD", "BOOTLOADER", "BOOT"] - FEATURES = ["ACPI", "PAE", "APIC", "LOCALTIME", "HYPERV", "GUEST_AGENT"] - INPUT = ["TYPE", "BUS"] - GRAPHICS = ["TYPE", "LISTEN", "PASSWD", "KEYMAP" ] - RAW = ["DATA", "DATA_VMX", "TYPE"] + OS = ["ARCH", "MACHINE", "KERNEL", "INITRD", "BOOTLOADER", "BOOT"] + FEATURES = ["ACPI", "PAE", "APIC", "LOCALTIME", "HYPERV", "GUEST_AGENT"] + INPUT = ["TYPE", "BUS"] + GRAPHICS = ["TYPE", "LISTEN", "PASSWD", "KEYMAP" ] + RAW = ["DATA", "DATA_VMX", "TYPE"] + CPU_MODEL = ["MODEL"] CONTEXT (any value, **variable substitution will be made**) EOT @@ -1153,7 +1154,7 @@ CommandParser::CmdParser.new(ARGV) do template = vm.template_like_str('TEMPLATE', true, 'OS | FEATURES | INPUT | '\ - 'GRAPHICS | RAW | CONTEXT') + 'GRAPHICS | RAW | CONTEXT | CPU_MODEL') template = OpenNebulaHelper.editor_input(template) end diff --git a/src/sunstone/public/app/tabs/vms-tab/panels/conf.js b/src/sunstone/public/app/tabs/vms-tab/panels/conf.js index f852ba2e5c..25f01d144c 100644 --- a/src/sunstone/public/app/tabs/vms-tab/panels/conf.js +++ b/src/sunstone/public/app/tabs/vms-tab/panels/conf.js @@ -56,7 +56,7 @@ define(function(require) { var conf = {}; var template = this.element.TEMPLATE; - $.each(["OS", "FEATURES", "INPUT", "GRAPHICS", "RAW", "CONTEXT"], function(){ + $.each(["OS", "FEATURES", "INPUT", "GRAPHICS", "RAW", "CONTEXT", "CPU_MODEL"], function(){ if(template[this] != undefined){ conf[this] = template[this]; } diff --git a/src/vm/VirtualMachine.cc b/src/vm/VirtualMachine.cc index f149c3f97c..f93717c55c 100644 --- a/src/vm/VirtualMachine.cc +++ b/src/vm/VirtualMachine.cc @@ -2744,7 +2744,8 @@ static std::map> UPDATECONF_ATTRS = { "GUEST_AGENT"} }, {"INPUT", {"TYPE", "BUS"} }, {"GRAPHICS", {"TYPE", "LISTEN", "PASSWD", "KEYMAP"} }, - {"RAW", {"TYPE", "DATA", "DATA_VMX"} } + {"RAW", {"TYPE", "DATA", "DATA_VMX"} }, + {"CPU_MODEL", {"MODEL"} } }; /** @@ -2884,7 +2885,7 @@ int VirtualMachine::updateconf(VirtualMachineTemplate& tmpl, string &err) } // ------------------------------------------------------------------------- - // Update OS, FEATURES, INPUT, GRAPHICS, RAW + // Update OS, FEATURES, INPUT, GRAPHICS, RAW, CPU_MODEL // ------------------------------------------------------------------------- replace_vector_values(obj_template, &tmpl, "OS"); @@ -2901,6 +2902,8 @@ int VirtualMachine::updateconf(VirtualMachineTemplate& tmpl, string &err) replace_vector_values(obj_template, &tmpl, "RAW"); + replace_vector_values(obj_template, &tmpl, "CPU_MODEL"); + // ------------------------------------------------------------------------- // Update CONTEXT: any value // -------------------------------------------------------------------------