Skip to content

extraconfig argument in update/deploy virtualmachine does not append existing fields #8847

@dredknight

Description

@dredknight
ISSUE TYPE
  • Bug Report
COMPONENT NAME
API
CLOUDSTACK VERSION
4.17.2
CONFIGURATION

Using XCP-NG 8.2 hypervisor
CloudMonkey 6.2

OS / ENVIRONMENT
SUMMARY

Using parameter extraconfig in deployVirtualMachine and updateVirtualMachine does not update 'platform' field

STEPS TO REPRODUCE

In Cloudstack global settings:

  • set enable.additional.vm.configuration to True
  • set allow.additional.vm.configuration.list.xenserver to platform:exp-nested-hvm

Using cloudmonkey create new instance on the XCP-NG hypervisor with added extra argument platform:exp-nested=true which enables nested virtualization. The value is UTF8 encoded as required by the command.
The issue is also valid for using update command on existing vm instance.

deploy virtualmachine templateid=b2b4c2ac-60a4-4bb0-9bb6-59cb28e793de name=test_nested networkids=1dfcc69a-1072-4410-881d-3818a75bcce8 displayname=test_nested domainid=05b38e5c-8041-11ed-a10f-d214862adf28 serviceofferingid=67e9d5bb-ed5d-4d97-9766-cc488de233a3 zoneid=6130f25a-8dd4-469c-8964-45b2d401884d  details[0].cpuNumber=2 details[0].memory=2048 extraconfig=platform%3Aexp-nested-hvm%3Dtrue

update virtualmachine id=4d188b3b-e3cd-4920-b33c-cdb502d6478d extraconfig=platform%3Aexp-nested-hvm%3Dtrue

The current workaround is using details argument. The problem is that the value overwrites the existing settings instead of appending. Unfortunately I have not found a better solution.

deploy virtualmachine templateid=b2b4c2ac-60a4-4bb0-9bb6-59cb28e793de name=test_nested networkids=1dfcc69a-1072-4410-881d-3818a75bcce8 displayname=test_nested domainid=05b38e5c-8041-11ed-a10f-d214862adf28 serviceofferingid=67e9d5bb-ed5d-4d97-9766-cc488de233a3 zoneid=6130f25a-8dd4-469c-8964-45b2d401884d  details[0].cpuNumber=2 details[0].memory=2048 details[0].platform="device-model:qemu-upstream-compat;vga:std;videoram:8;apic:true;viridian:false;timeoffset:0;pae:true;acpi:1;hpet:true;secureboot:false;nx:true;exp-nested-hvm:true" 

update virtualmachine id=4d188b3b-e3cd-4920-b33c-cdb502d6478d  details[0].cpuNumber=2 details[0].memory=2048  details[0].platform="device-model:qemu-upstream-compat;vga:std;videoram:8;apic:true;viridian:false;timeoffset:0;pae:true;acpi:1;hpet:true;secureboot:false;nx:true;exp-nested-hvm:true"
EXPECTED RESULTS

Expected result is to append the new keypair into the existing "platform" variable.

"details": {
        "cpuNumber": "2",
        "memory": "2048",
        "platform": "device-model:qemu-upstream-compat;vga:std;videoram:8;apic:true;viridian:false;timeoffset:0;pae:true;acpi:1;hpet:true;secureboot:false;nx:true;exp-nested-hvm:true"
      },
ACTUAL RESULTS

The output of this command shows that platform field is appended the new parameter as it should per documentation, instead a new field called extraconfig-1 is added.

"details": {      "Message.ReservedCapacityFreed.Flag": "true",
      "cpuNumber": "2",      
      "extraconfig-1": "platform:exp-nested-hvm=true",
      "memory": "2048",
      "platform": "device-model:qemu-upstream-compat;vga:std;videoram:8;apic:true;viridian:false;timeoffset:0;pae:true;acpi:1;hpet:true;secureboot:false;nx:true"
    },

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions