Description
Updating the VM Configuration of an existing VM instance fails when using Raw data.
Error message:
[one.vm.updateconf] invalid raw section: unsupported type
To Reproduce
-
Create a VM template. At the adcanced options under "OS & CPU" enter some valid Raw data. Enable Validate of Raw data.
-
Instantiate a VM of the created VM template.
-
Call the new VM, navigate to the "Configuration" tab, and click "Update VM Configuration". The error message will appear once you click "Accept" (even if you don't make any changes).
Expected behavior
Updating VM configuration (like Context Variables or Keymap for the VNC session) without an error.
Details
- Affected Component: Sunstone
- Hypervisor: KVM
- Version: 7.0.1
Additional context
Creating Instance of VM Template creates the following POST request:
{"name":"testinstance","hold":false,"template":"<ROOT><CPU>0.02</CPU><HYPERVISOR>kvm</HYPERVISOR><LOGO>images/logos/windows8.png</LOGO><MEMORY>4096</MEMORY><OS_PROFILE>windows_optimized</OS_PROFILE><VCPU>2</VCPU><name>testinstance</name><CONTEXT><NETWORK>YES</NETWORK><SSH_PUBLIC_KEY>$USER[SSH_PUBLIC_KEY]</SSH_PUBLIC_KEY></CONTEXT><CPU_MODEL><MODEL>Broadwell-noTSX</MODEL></CPU_MODEL><DISK><DEV_PREFIX>vd</DEV_PREFIX><IMAGE>Empty Disk</IMAGE><IMAGE_ID>647</IMAGE_ID><IMAGE_UNAME>user.adm</IMAGE_UNAME><SIZE>20480</SIZE></DISK><FEATURES><ACPI>Yes</ACPI><APIC>Yes</APIC><GUEST_AGENT>Yes</GUEST_AGENT><HYPERV>Yes</HYPERV><LOCALTIME>no</LOCALTIME><PAE>Yes</PAE><VIRTIO_BLK_QUEUES>auto</VIRTIO_BLK_QUEUES><VIRTIO_SCSI_QUEUES>auto</VIRTIO_SCSI_QUEUES></FEATURES><GRAPHICS><KEYMAP>de</KEYMAP><LISTEN>0.0.0.0</LISTEN><TYPE>VNC</TYPE></GRAPHICS><NIC><NETWORK>VLAN878-KVM</NETWORK><NETWORK_ID>58</NETWORK_ID><NETWORK_UID>82</NETWORK_UID><NETWORK_UNAME>user.adm</NETWORK_UNAME></NIC><OS><ARCH>x86_64</ARCH><FIRMWARE>UEFI</FIRMWARE><FIRMWARE_SECURE>NO</FIRMWARE_SECURE><MACHINE>pc-q35-7.2</MACHINE><BOOT></BOOT></OS><RAW><DATA><sysinfo type='smbios'>\n <oemStrings>\n <entry>foo:bar</entry>\n <entry>second: spaced</entry>\n <entry>third:value</entry>\n </oemStrings>\n</sysinfo></DATA><TYPE>kvm</TYPE><VALIDATE>YES</VALIDATE></RAW><SCHED_DS_REQUIREMENTS>ID="138"</SCHED_DS_REQUIREMENTS><SCHED_RANK>-RUNNING_VMS</SCHED_RANK><SCHED_REQUIREMENTS>HYPERVISOR=kvm & CLUSTER_ID = 111</SCHED_REQUIREMENTS><USER_INPUTS><MEMORY>M|range||4096..16384|4096</MEMORY></USER_INPUTS><VIDEO><RESOLUTION>1280x720</RESOLUTION><TYPE>vga</TYPE></VIDEO></ROOT>","persistent":false}
Creating the configuration of existing VM creates the following POST request:
{"template":"<ROOT><GRAPHICS><TYPE>VNC</TYPE><LISTEN>0.0.0.0</LISTEN><KEYMAP>de</KEYMAP></GRAPHICS><VIDEO><RESOLUTION>1280x720</RESOLUTION><TYPE>vga</TYPE></VIDEO><OS><ARCH>x86_64</ARCH><FIRMWARE>UEFI</FIRMWARE><FIRMWARE_SECURE>NO</FIRMWARE_SECURE><MACHINE>pc-q35-7.2</MACHINE><UUID>6faf5430-77ab-4ca3-871c-13dc56b1101a</UUID></OS><FEATURES><ACPI>Yes</ACPI><PAE>Yes</PAE><APIC>Yes</APIC><LOCALTIME>no</LOCALTIME><HYPERV>Yes</HYPERV><GUEST_AGENT>Yes</GUEST_AGENT></FEATURES><CONTEXT><SSH_PUBLIC_KEY></SSH_PUBLIC_KEY><START_SCRIPT></START_SCRIPT><NETWORK>YES</NETWORK><TOKEN>NO</TOKEN><REPORT_READY>NO</REPORT_READY><INIT_SCRIPTS></INIT_SCRIPTS><FILES_DS></FILES_DS><DISK_ID>1</DISK_ID><ETH0_DNS>10.0.0.1</ETH0_DNS><ETH0_EXTERNAL></ETH0_EXTERNAL><ETH0_GATEWAY>10.0.0.1</ETH0_GATEWAY><ETH0_IP>10.0.0.12</ETH0_IP><ETH0_IP6></ETH0_IP6><ETH0_IP6_GATEWAY></ETH0_IP6_GATEWAY><ETH0_IP6_METHOD>disable</ETH0_IP6_METHOD><ETH0_IP6_METRIC></ETH0_IP6_METRIC><ETH0_IP6_PREFIX_LENGTH></ETH0_IP6_PREFIX_LENGTH><ETH0_IP6_ULA></ETH0_IP6_ULA><ETH0_MAC>02:00:0a:00:00:12</ETH0_MAC><ETH0_MASK>255.255.252.0</ETH0_MASK><ETH0_METHOD></ETH0_METHOD><ETH0_METRIC></ETH0_METRIC><ETH0_MTU></ETH0_MTU><ETH0_NETWORK></ETH0_NETWORK><ETH0_SEARCH_DOMAIN>domain.tld</ETH0_SEARCH_DOMAIN><ETH0_VLAN_ID></ETH0_VLAN_ID><ETH0_VROUTER_IP></ETH0_VROUTER_IP><ETH0_VROUTER_IP6></ETH0_VROUTER_IP6><ETH0_VROUTER_MANAGEMENT></ETH0_VROUTER_MANAGEMENT><TARGET>hda</TARGET></CONTEXT><CPU_MODEL><MODEL>Broadwell-noTSX</MODEL></CPU_MODEL><RAW><DATA><sysinfo type='smbios'>\n <oemStrings>\n <entry>foo:bar</entry>\n <entry>second: spaced</entry>\n <entry>third:value</entry>\n </oemStrings>\n</sysinfo></DATA><VALIDATE>YES</VALIDATE></RAW></ROOT>"}
When I update the VM configuration TYPE is missing in the RAW-section of the POST request, which is leading to an "unsupported type".
<RAW>...<TYPE>kvm</TYPE>...</RAW>
Progress Status
Description
Updating the VM Configuration of an existing VM instance fails when using Raw data.
Error message:
To Reproduce
Create a VM template. At the adcanced options under "OS & CPU" enter some valid Raw data. Enable Validate of Raw data.
Instantiate a VM of the created VM template.
Call the new VM, navigate to the "Configuration" tab, and click "Update VM Configuration". The error message will appear once you click "Accept" (even if you don't make any changes).
Expected behavior
Updating VM configuration (like Context Variables or Keymap for the VNC session) without an error.
Details
Additional context
Creating Instance of VM Template creates the following POST request:
{"name":"testinstance","hold":false,"template":"<ROOT><CPU>0.02</CPU><HYPERVISOR>kvm</HYPERVISOR><LOGO>images/logos/windows8.png</LOGO><MEMORY>4096</MEMORY><OS_PROFILE>windows_optimized</OS_PROFILE><VCPU>2</VCPU><name>testinstance</name><CONTEXT><NETWORK>YES</NETWORK><SSH_PUBLIC_KEY>$USER[SSH_PUBLIC_KEY]</SSH_PUBLIC_KEY></CONTEXT><CPU_MODEL><MODEL>Broadwell-noTSX</MODEL></CPU_MODEL><DISK><DEV_PREFIX>vd</DEV_PREFIX><IMAGE>Empty Disk</IMAGE><IMAGE_ID>647</IMAGE_ID><IMAGE_UNAME>user.adm</IMAGE_UNAME><SIZE>20480</SIZE></DISK><FEATURES><ACPI>Yes</ACPI><APIC>Yes</APIC><GUEST_AGENT>Yes</GUEST_AGENT><HYPERV>Yes</HYPERV><LOCALTIME>no</LOCALTIME><PAE>Yes</PAE><VIRTIO_BLK_QUEUES>auto</VIRTIO_BLK_QUEUES><VIRTIO_SCSI_QUEUES>auto</VIRTIO_SCSI_QUEUES></FEATURES><GRAPHICS><KEYMAP>de</KEYMAP><LISTEN>0.0.0.0</LISTEN><TYPE>VNC</TYPE></GRAPHICS><NIC><NETWORK>VLAN878-KVM</NETWORK><NETWORK_ID>58</NETWORK_ID><NETWORK_UID>82</NETWORK_UID><NETWORK_UNAME>user.adm</NETWORK_UNAME></NIC><OS><ARCH>x86_64</ARCH><FIRMWARE>UEFI</FIRMWARE><FIRMWARE_SECURE>NO</FIRMWARE_SECURE><MACHINE>pc-q35-7.2</MACHINE><BOOT></BOOT></OS><RAW><DATA><sysinfo type='smbios'>\n <oemStrings>\n <entry>foo:bar</entry>\n <entry>second: spaced</entry>\n <entry>third:value</entry>\n </oemStrings>\n</sysinfo></DATA><TYPE>kvm</TYPE><VALIDATE>YES</VALIDATE></RAW><SCHED_DS_REQUIREMENTS>ID="138"</SCHED_DS_REQUIREMENTS><SCHED_RANK>-RUNNING_VMS</SCHED_RANK><SCHED_REQUIREMENTS>HYPERVISOR=kvm & CLUSTER_ID = 111</SCHED_REQUIREMENTS><USER_INPUTS><MEMORY>M|range||4096..16384|4096</MEMORY></USER_INPUTS><VIDEO><RESOLUTION>1280x720</RESOLUTION><TYPE>vga</TYPE></VIDEO></ROOT>","persistent":false}Creating the configuration of existing VM creates the following POST request:
{"template":"<ROOT><GRAPHICS><TYPE>VNC</TYPE><LISTEN>0.0.0.0</LISTEN><KEYMAP>de</KEYMAP></GRAPHICS><VIDEO><RESOLUTION>1280x720</RESOLUTION><TYPE>vga</TYPE></VIDEO><OS><ARCH>x86_64</ARCH><FIRMWARE>UEFI</FIRMWARE><FIRMWARE_SECURE>NO</FIRMWARE_SECURE><MACHINE>pc-q35-7.2</MACHINE><UUID>6faf5430-77ab-4ca3-871c-13dc56b1101a</UUID></OS><FEATURES><ACPI>Yes</ACPI><PAE>Yes</PAE><APIC>Yes</APIC><LOCALTIME>no</LOCALTIME><HYPERV>Yes</HYPERV><GUEST_AGENT>Yes</GUEST_AGENT></FEATURES><CONTEXT><SSH_PUBLIC_KEY></SSH_PUBLIC_KEY><START_SCRIPT></START_SCRIPT><NETWORK>YES</NETWORK><TOKEN>NO</TOKEN><REPORT_READY>NO</REPORT_READY><INIT_SCRIPTS></INIT_SCRIPTS><FILES_DS></FILES_DS><DISK_ID>1</DISK_ID><ETH0_DNS>10.0.0.1</ETH0_DNS><ETH0_EXTERNAL></ETH0_EXTERNAL><ETH0_GATEWAY>10.0.0.1</ETH0_GATEWAY><ETH0_IP>10.0.0.12</ETH0_IP><ETH0_IP6></ETH0_IP6><ETH0_IP6_GATEWAY></ETH0_IP6_GATEWAY><ETH0_IP6_METHOD>disable</ETH0_IP6_METHOD><ETH0_IP6_METRIC></ETH0_IP6_METRIC><ETH0_IP6_PREFIX_LENGTH></ETH0_IP6_PREFIX_LENGTH><ETH0_IP6_ULA></ETH0_IP6_ULA><ETH0_MAC>02:00:0a:00:00:12</ETH0_MAC><ETH0_MASK>255.255.252.0</ETH0_MASK><ETH0_METHOD></ETH0_METHOD><ETH0_METRIC></ETH0_METRIC><ETH0_MTU></ETH0_MTU><ETH0_NETWORK></ETH0_NETWORK><ETH0_SEARCH_DOMAIN>domain.tld</ETH0_SEARCH_DOMAIN><ETH0_VLAN_ID></ETH0_VLAN_ID><ETH0_VROUTER_IP></ETH0_VROUTER_IP><ETH0_VROUTER_IP6></ETH0_VROUTER_IP6><ETH0_VROUTER_MANAGEMENT></ETH0_VROUTER_MANAGEMENT><TARGET>hda</TARGET></CONTEXT><CPU_MODEL><MODEL>Broadwell-noTSX</MODEL></CPU_MODEL><RAW><DATA><sysinfo type='smbios'>\n <oemStrings>\n <entry>foo:bar</entry>\n <entry>second: spaced</entry>\n <entry>third:value</entry>\n </oemStrings>\n</sysinfo></DATA><VALIDATE>YES</VALIDATE></RAW></ROOT>"}When I update the VM configuration TYPE is missing in the RAW-section of the POST request, which is leading to an "unsupported type".
Progress Status