Bug 1710696
Summary: | [downstream clone - 4.3.5] [RESTAPI] Adding ISO disables serial console | ||
---|---|---|---|
Product: | Red Hat Enterprise Virtualization Manager | Reporter: | RHV bug bot <rhv-bugzilla-bot> |
Component: | ovirt-engine | Assignee: | Lucia Jelinkova <ljelinko> |
Status: | CLOSED ERRATA | QA Contact: | Liran Rotenberg <lrotenbe> |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 4.2.5 | CC: | dfediuck, emarcus, ljelinko, michal.skrivanek, rbarry, Rhev-m-bugs |
Target Milestone: | ovirt-4.3.5 | Keywords: | Rebase, Reopened, ZStream |
Target Release: | 4.3.5 | Flags: | lrotenbe:
testing_plan_complete+
|
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | ovirt-engine-4.3.5 | Doc Type: | Rebase: Bug Fixes Only |
Doc Text: |
In this release, when updating a Virtual Machine using a REST API, not specifying the console value now means that the console state should not be changed. As a result, the console keeps its previous state.
|
Story Points: | --- |
Clone Of: | 1658101 | Environment: | |
Last Closed: | 2019-08-12 11:53:28 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | Virt | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1658101 | ||
Bug Blocks: |
Description
RHV bug bot
2019-05-16 06:06:32 UTC
has the VM been restarted after your step 1? If not then serial console is a change which cannot be done while VM is running and as such the actual configuration change is just scheduled to be done after restart. If you want to make another non-live change in the meantime you need to either - tell API to make the modification in the "next_run_ snapshot by using the next_run=1 parameter - send both(all) changes in one request However, changing CDROM *is* a change that can be done live, so in your case you can see the result in permanent configuration right away. Reboot the VM and the serial console should be there. Please reopen if it's not the case (Originally by michal.skrivanek) Reopening. Even if I do not start the VM, just created it + enable the serial console. Then when I add a CDROM, it gets disabled! Similar workflow in the webUI does work as it should: 1. Create VM with NIC assigned and disk created 2. Edit the VM to add serial console 3. Edit once more and add a CDROM under boot options. The serial console is kept in the correct state, being enabled! In detail using the API: # Create VM curl -s -k --header 'Accept: application/xml' --request 'POST' --header 'Content-Type: application/xml' --data '<vm> ... ' -u "${upw}" "https://${host}/ovirt-engine/api/vms" # Add NIC curl -s -k --header 'Accept: application/xml' --request 'POST' --header 'Content-Type: application/xml' --data ' ... ' -u "${upw}" "https://${host}/ovirt-engine/api/vms/2409c422-fd16-48e8-9d3a-75b4dd6e7f22/nics" # Add disk curl -s -k --header 'Accept: application/xml' --request 'POST' --header 'Content-Type: application/xml' --data ' ... ' -u "${upw}" "https://${host}/ovirt-engine/api/vms/2409c422-fd16-48e8-9d3a-75b4dd6e7f22/diskattachments" # Check console curl -s -k --header 'Accept: application/xml' --request GET --header 'All-Content: true' --header 'Content-Type: application/xml' \ -u "${upw}" https://${host}/ovirt-engine/api/vms/2409c422-fd16-48e8-9d3a-75b4dd6e7f22 | grep -A 2 '<console>' <console> <enabled>false</enabled> </console> # Enable serial console curl -s -k --header 'Accept: application/xml' --request 'PUT' --header 'Content-Type: application/xml' --data ' <vm> <console> <enabled>true</enabled> </console> </vm> ' -u "${upw}" "https://${host}/ovirt-engine/api/vms/2409c422-fd16-48e8-9d3a-75b4dd6e7f22" # Add CDROM curl -s -k --header 'Accept: application/xml' --request 'PUT' --header 'All-Content: true' --header 'Content-Type: application/xml' --data ' <cdrom> <file id="rhel-server-6.9-x86_64-dvd.iso"/> </cdrom> ' -u "${upw}" "https://${host}/ovirt-engine/api/vms/2409c422-fd16-48e8-9d3a-75b4dd6e7f22/cdroms/00000000-0000-0000-0000-000000000000?current=false" # Check serial console curl -s -k --header 'Accept: application/xml' --request GET --header 'All-Content: true' --header 'Content-Type: application/xml' -u "${upw}" https://${host}/ovirt-engine/api/vms/2409c422-fd16-48e8-9d3a-75b4dd6e7f22 | grep -A 2 '<console>' <console> <enabled>false</enabled> ^^^^^--------------------> notice it being disabled after inserting the CDROM </console> (Originally by rvdwees) interesting. Yeah, for powered down VM it should work. Thanks for clarification (Originally by michal.skrivanek) reproduced. weird... (Originally by michal.skrivanek) Re-targeting to 4.3.1 since it is missing a patch, an acked blocker flag, or both (Originally by Ryan Barry) It seems that values for console enablement and affinity labels are reset to defaults (console enabled = false, no affinity labels) if they are not specified in the request. This happens not only after modifying ISO/CDROM but also when modifying other VM parameters, e.g. comment. (Originally by Lucia Jelinkova) *** Bug 1723574 has been marked as a duplicate of this bug. *** Verified on: ovirt-engine-4.3.5.1-0.1.el7.noarch Steps: 1. Create a vm (console disabled). 2. Using the API, enable serial console curl -s -k --header 'Accept: application/xml' --request PUT --header 'Content-Type: application/xml' --data ' <vm> <console> <enabled>true</enabled> </console> </vm>' -u 'admin@internal:<password>' https://rhvm.example.com/ovirt-engine/api/vms/1eaf8b00-bc51-4062-893a-3fbf80b68793 | grep -A 2 '<console>' <console> <enabled>true</enabled> </console> 3. Adding ISO: curl -s -k --header 'Accept: application/xml' --request PUT --header 'Content-Type: application/xml' --data ' <cdrom> <file id="rhel-server-7.4-x86_64-dvd.iso"/> </cdrom> ' -u 'admin@internal:<password>' 'https://rhvm.example.com/ovirt-engine/api/vms/1eaf8b00-bc51-4062-893a-3fbf80b68793/cdroms/00000000-0000-0000-0000-000000000000?current=false' 4. Test if the console is true: curl -s -k --header 'Accept: application/xml' --request GET --header 'All-Content: true' --header 'Content-Type: application/xml' \ -u "${upw}" https://${host}/ovirt-engine/api/vms/1eaf8b00-bc51-4062-893a-3fbf80b68793 | grep -A 2 '<console>' 5. Add comment to the VM: curl -s -k --header 'Accept: application/xml' --request 'PUT' --header 'Content-Type: application/xml' --data ' <vm> <comment>'"$(date)"'</comment> </vm> ' -u "${upw}" "https://${host}/ovirt-engine/api/vms/1eaf8b00-bc51-4062-893a-3fbf80b68793" | egrep -A2 '<comment>|<console>' 6. Test if the console is true (repeat step 4) or get it from the egrep of step 5. Results: After step 3 and 6 in both result the CDROM/comment were set and the console stayed enabled: <console> <enabled>true</enabled> </console> Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2019:2431 |