diff --git a/src/cli/onevm b/src/cli/onevm index 950358345d..3577adf771 100755 --- a/src/cli/onevm +++ b/src/cli/onevm @@ -672,7 +672,7 @@ cmd=CommandParser::CmdParser.new(ARGV) do command :resize, resize_desc, :vmid, :options => OpenNebulaHelper::CAPACITY_OPTIONS_VM + [ENFORCE] do - cpu = options[:cpu] || 0 + cpu = options[:cpu] || 0.0 memory = options[:memory] || 0 vcpu = options[:vcpu] || 0 enforce = options[:enforce] || false diff --git a/src/rm/RequestManagerVirtualMachine.cc b/src/rm/RequestManagerVirtualMachine.cc index 7f4ce72b2d..f341f45ff7 100644 --- a/src/rm/RequestManagerVirtualMachine.cc +++ b/src/rm/RequestManagerVirtualMachine.cc @@ -1069,6 +1069,7 @@ void VirtualMachineResize::request_execute(xmlrpc_c::paramList const& paramList, float ocpu, dcpu; int omemory, dmemory; + int ovcpu; Nebula& nd = Nebula::instance(); UserPool* upool = nd.get_upool(); @@ -1102,6 +1103,22 @@ void VirtualMachineResize::request_execute(xmlrpc_c::paramList const& paramList, vm->get_template_attribute("MEMORY", omemory); vm->get_template_attribute("CPU", ocpu); + vm->get_template_attribute("VCPU", ovcpu); + + if (nmemory == 0) + { + nmemory = omemory; + } + + if (ncpu == 0) + { + ncpu = ocpu; + } + + if (nvcpu == 0) + { + nvcpu = ovcpu; + } dcpu = ncpu - ocpu; dmemory = nmemory - omemory;