Bug 1468999
Summary: | [downstream clone - 4.1.4] Command via API can cause host in Maintenance mode to be fenced | ||
---|---|---|---|
Product: | Red Hat Enterprise Virtualization Manager | Reporter: | rhev-integ |
Component: | ovirt-engine | Assignee: | Maor <mlipchuk> |
Status: | CLOSED ERRATA | QA Contact: | Kevin Alon Goldblatt <kgoldbla> |
Severity: | medium | Docs Contact: | |
Priority: | unspecified | ||
Version: | 4.1.1 | CC: | amureini, ebenahar, eheftman, juan.hernandez, lsurette, mlipchuk, mperina, oourfali, pkliczew, rbalakri, Rhev-m-bugs, srevivo, tnisan, ykaul, ylavi |
Target Milestone: | ovirt-4.1.4 | Keywords: | ZStream |
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: |
Previously, if a host is in maintenance mode and a user calls GET /ovirt-engine/api/hosts/64fc087f-821b-429a-b274-5e8597a88f3d/storage through the REST API, the Manager would try to call getDeviceList on the host, and as a result it would be fenced.
In this release, a validation has been added which first checks to see if the host is in maintenance mode. The Manager will only call getDeviceList if the host is up.
|
Story Points: | --- |
Clone Of: | 1464296 | Environment: | |
Last Closed: | 2017-07-27 18:02:44 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | Storage | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1464296 | ||
Bug Blocks: |
Description
rhev-integ
2017-07-10 08:27:55 UTC
Just FYI, I did some random GETs via the API and the only one I found with this behavior is "storage". The others seem fine. (Originally by Germano Veit Michel) Won't it be better to add the validation only in the REST command? GetDeviceList is being called in numerous flows, and it will be hard to anticipate how it will be reflected on every flow which using it. Propagate the error upwards should be done also on every flow which uses GetDeviceList. Is this type of solution is suitable is suitable for 4.1.4? (Originally by Maor Lipchuk) (In reply to Maor from comment #7) > Won't it be better to add the validation only in the REST command? > > GetDeviceList is being called in numerous flows, and it will be hard to > anticipate how it will be reflected on every flow which using it. > Propagate the error upwards should be done also on every flow which uses > GetDeviceList. > Is this type of solution is suitable is suitable for 4.1.4? Sounds legit. Note that the REST code shouldn't have this validation itself, but should probably pass an indicator on the parameters objects down to the qeury so it can decide whether or not it should perform this validation. (Originally by Allon Mureinik) Or else create a new query, used only by the API, that performs the validation and calls the existing GetDeviceList query. In any case the API is not the place to perform this kind of validation. (Originally by juan.hernandez) (In reply to Juan Hernández from comment #9) > Or else create a new query, used only by the API, that performs the > validation and calls the existing GetDeviceList query. In any case the API > is not the place to perform this kind of validation. sure, I implemented what Allon suggested and added the validation only in the vdc query (Originally by Maor Lipchuk) WARN: Bug status wasn't changed from MODIFIED to ON_QA due to the following reason: [Found non-acked flags: '{'rhevm-4.1.z': '?'}', ] For more info please contact: rhv-devops: Bug status wasn't changed from MODIFIED to ON_QA due to the following reason: [Found non-acked flags: '{'rhevm-4.1.z': '?'}', ] For more info please contact: rhv-devops (Originally by rhev-integ) Verified with the following code: --------------------------------- ovirt-engine-4.1.4-0.2.el7.noarch rhevm-4.1.4-0.2.el7.noarch vdsm-4.19.21-1.el7ev.x86_64 Verified with the following scenario: ------------------------------------- Steps to Reproduce: 1. Switch host to maintenance 2. systemctl stop vdsmd 3. Point your browser to https://<rhv-m>/ovirt-engine/api/hosts/<host id>/storage Actual results: Host continues in Maintenance mode. Moving to VERIFIED! Maor, this fix changes the behavior of the public API in a visible way. Can you please add some doctext here? 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-2017:1814 |