andrijapanicsb commented on issue #3510: Allow additional configuration 
metadata to VMs
URL: https://github.com/apache/cloudstack/pull/3510#issuecomment-572158850
 
 
   
   Test Name | Steps | Expected Result | Status
   -- | -- | -- | --
   Add configuration when not enabled | Make sure that 
enable.additional.vm.configuration   is false and add extra configuration 
following the KVM example bellow. | VM Details are not being updated   
(localcloud)   SBCM5> > update virtualmachine   
id=26f88815-5e08-4ab1-ba0b-15658110ab40    
extraconfig='%3CmemoryBacking%3E%0A%20%20%3Chugepages%2F%3E%0A%3C%2FmemoryBacking%3E'
   filter=details,   {} | Passed
   Enable configuration | Set enable.additional.vm.configuration to True and   
add extra configuration following the KVM example bellow. | User is able to set 
configuration   (localcloud) SBCM5> > update virtualmachine   
id=26f88815-5e08-4ab1-ba0b-15658110ab40    
extraconfig='%3CmemoryBacking%3E%0A%20%20%3Chugepages%2F%3E%0A%3C%2FmemoryBacking%3E'
   filter=details,   {     “details": {           "extraconfig-1":   
"<memoryBacking>\n    <hugepages/>\n</memoryBacking>"         }, | Passed
   KVM extra config | Deploy a VM and set extra config with the   following api 
call:    deploy virtualmachine … 
extraconfig='%3CmemoryBacking%3E%0A%20%20%3Chugepages%2F%3E%0A%3C%2FmemoryBacking%3E'
 | Dump xml the domain on the kvm host and verify   that the extra settings are 
there        virsh   dumpxml 2   …     <memory   unit='KiB'>524288</memory>     
<currentMemory   unit='KiB'>524288</currentMemory>     <memoryBacking>       
<hugepages/>     </memoryBacking>   … | Passed
   VMware extra config | Deploy a VM   Stop the VM   Update the VM with the 
following api command and   start it   update virtualmachine id=[vm-id] 
extraconfig=' hypervisor.cpuid.v0%3DFALSE' | Cat the vmx file on the primary 
storage and   observe that the specific setting is there      cat "$(esxcli vm 
process list \| grep i-2-8-VM   \| tail -1 \| awk '{print $3}')" \| grep -w 
'hypervisor.cpuid.v0 =   "FALSE"'    hypervisor.cpuid.v0   = "FALSE" | Passed
   XenServer extra config | Deploy a VM   Stop the VM   Update the VM with the 
following api command and   start it   update virtualmachine id=[vm-id]   
extraconfig=' HVM-boot-policy%3D%0APV-bootloader%3Dpygrub%0APV-args%3Dhvc0' | 
On the Xen host us the ‘xe vm-param-get param-name’   command to get the 
specific parameter and observe it’s been set       xe   vm-param-get 
param-name=PV-bootloader uuid=f5b6ea53-b9dd-d118-a404-582675cc4345     pygrub   
    xe   vm-param-get param-name=PV-args 
uuid=f5b6ea53-b9dd-d118-a404-582675cc4345    hvc0 | Passed
   KVM key list restriction | Remove all items from 
allow.additional.vm.configuration.list.kvm   Deploy a VM and set extra config 
with the   following api call:    deploy virtualmachine …   
extraconfig='%3CmemoryBacking%3E%0A%20%20%3Chugepages%2F%3E%0A%3C%2FmemoryBacking%3E'
 | Exception appears that the item is not allowed.   Any of the child records 
of that xml node were not added as well       CloudstackAPIException:   Execute 
cmd: deployvirtualmachine failed, due to: errorCode: 530,   errorText:Extra 
config  is not on the   list of allowed keys for KVM hypervisor hosts | Passed
   VMware key list restriction | Remove all items from 
allow.additional.vm.configuration.list.vmware   global setting   Deploy a VM   
Stop the VM   Update the VM with the following api command and   start it   
update virtualmachine id=[vm-id] extraconfig='hypervisor.cpuid.v0%3DFALSE' | 
Exception appears that the item is not allowed.      CloudstackAPIException: 
Execute cmd:   deployvirtualmachine failed, due to: errorCode: 530, 
errorText:Extra config   hypervisor.cpuid.v0=FALSE is not on the list of 
allowed keys for VMware   hypervisor hosts. | Passed
   XenServer key list restriction | Remove all items from 
allow.additional.vm.configuration.list.xenserver   global setting   Deploy a VM 
  Stop the VM   Update the VM with the following api command and   start it   
update virtualmachine id=[vm-id] 
extraconfig='HVM-boot-policy%3D%0APV-bootloader%3Dpygrub%0APV-args%3Dhvc0' | 
Exception appears that the item is not allowed.      CloudstackAPIException: 
Execute cmd:   deployvirtualmachine failed, due to: errorCode: 530, 
errorText:Extra config   HVM-boot-policy= is not on the list of allowed keys 
for XenServer hypervisor   hosts. | Passed
   XenServer key mapping negative | Pass an argument that is not valid as per 
the   given pattern:       Test value:    HVM-boot-policy=   
PV-bootloader=pygrub=failure   PV-args=hvc0 | Cloudstack throws an exception 
when validating the   map:       (localcloud)   SBCM5> > update virtualmachine 
id=afeb87cf-5a0a-4807-9c69-8644544ccdf9   
extraconfig=HVM-boot-policy%3D%0APV-bootloader%3Dpygrub%3Dfailure%0APV-args%3Dhvc0
   🙈 Error:   (HTTP 530, error code 4250) The passed extra config string 
'HVM-boot-policy=   PV-bootloader=pygrub=failure   PV-args=hvc0'   contains an 
invalid key/value pair pattern | Passed
   Clean extra config data | Stop the VM    Execute update VM with 
‘cleanupdetails=true’   argument | Any additional config has been removed       
(localcloud)   SBCM5> > list virtualmachines 
id=9207b8b4-6d94-4a93-ba44-20ad5cd39f76   filter=details,   {     
"virtualmachine": [         "details": {           "deployvm":   "true",        
   "extraconfig-1":   "<memoryBacking>\n    <hugepages/>\n</memoryBacking>"   } 
  (localcloud)   SBCM5> > update virtualmachine 
id=9207b8b4-6d94-4a93-ba44-20ad5cd39f76   cleanupdetails=true   {     
"virtualmachine": {...}   (localcloud)   SBCM5> > list virtualmachines 
id=9207b8b4-6d94-4a93-ba44-20ad5cd39f76   filter=details,   {     
"virtualmachine": [             "details": {}   } | Passed
   KVM – Nested keys not allowed | Create an xml that is containing a not 
allowed key   inside an allowed key and try submitting it. | (localcloud)   
SBCM5> > update virtualmachine   id=9d5b6561-ee7b-4711-94c7-c79f268cfa24    
extraconfig='%3CmemoryBacking%3E%0A%20%20%3Chugepages%2F%3E%0A%3C%2FmemoryBacking%3E'
   🙈 Error:   (HTTP 530, error code 4250) Extra config hugepages is not on the 
list   of allowed keys for KVM hypervisor hosts   (localcloud)   SBCM5> > list 
configurations   name=allow.additional.vm.configuration.list.kvm   {         
"name":   "allow.additional.vm.configuration.list.kvm",         "value": 
"memoryBacking"   } | Passed
   Apply configuration when it’s disabled | Set 
enable.additional.vm.configuration to false   Apply any configurations to a VM. 
| (localcloud)   SBCM5> > update virtualmachine   
id=9d5b6561-ee7b-4711-94c7-c79f268cfa24    
extraconfig='%3CmemoryBacking%3E%0A%3C%2FmemoryBacking%3E'   🙈 Error: (HTTP 
431, error code 4350) attempted   setting extraconfig but 
enable.additional.vm.configuration is disabled | Passed
   Update some of the enabled configurations | Have a list of enabled keys, but 
pass just one of   them | (localcloud)   SBCM5> > update virtualmachine   
id=9d5b6561-ee7b-4711-94c7-c79f268cfa24    
extraconfig='%3CmemoryBacking%3E%0A%3C%2FmemoryBacking%3E'   {     
"virtualmachine": {   …       "details": {           
"Message.ReservedCapacityFreed.Flag": "true",         "extraconfig-1":   
"<memoryBacking>\n</memoryBacking>"       }   …   (localcloud)   SBCM5> > list 
configurations name=allow.additional.vm.configuration.list.kvm   {         
"name":   "allow.additional.vm.configuration.list.kvm",         "value": 
"memoryBacking,   hugepages"   } | Passed
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to