55e47c630b
It turns out that eventlet has been injecting a ``Transfer-Encoding`` header as of recent into WSGI application response headers. The result of this ultimately depends on how the HTTP client which is passing the request to the server is written to handle data. Apache, for example, will return that an invalid response was received. In part because it sees the request end, with an HTTP 204 response code, but also an encoding indicating there is a multipart body encoding inbound. Which is confusing. Other C based HTTP clients can have any number of reactions up to and including disconnecting sessions. Curl, depending on the headers present either returns success but notes body weirdness or actually returns return code 18. Python-Requests kind of has it a little worse, and we see this with clients. With it, it tries to prepare a respones content body based upon the presence of the header indicating there is a body. But it blows up thinking there is more data to read on the socket when there is not more data to read. Regardless, all of this is an RFC7230 violation. Neither Content-Length nor Transfer-Encoding should be on an HTTP 204 response. However, Content-Length is the lesser evil, and we have a similar endpoing in Ironic which *does* explicitly get returned with a zero length content-length, and does not demonstrate such issues. As such, in the interest of the lesser evils until Eventlet's evil ways of header injection are remedied, we're explicitly going to force a Content-Length header to be sent indicating a zero length response. For more information, please see: https://github.com/eventlet/eventlet/issues/746 Change-Id: I014cc65c79222f4d4d7c2b6ff11a76e56659340c |
||
---|---|---|
api-ref/source | ||
devstack | ||
doc | ||
ironic_inspector | ||
releasenotes | ||
rootwrap.d | ||
tools | ||
zuul.d | ||
.gitignore | ||
.gitreview | ||
.stestr.conf | ||
CONTRIBUTING.rst | ||
LICENSE | ||
README.rst | ||
bindep.txt | ||
ironic-inspector.8 | ||
lower-constraints.txt | ||
requirements.txt | ||
rootwrap.conf | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
README.rst
Hardware introspection for OpenStack Bare Metal
Introduction
This is an auxiliary service for discovering hardware properties for a node managed by Ironic. Hardware introspection or hardware properties discovery is a process of getting hardware parameters required for scheduling from a bare metal node, given its power management credentials (e.g. IPMI address, user name and password).
- Free software: Apache license
- Source: https://opendev.org/openstack/ironic-inspector/
- Bugs: https://storyboard.openstack.org/#!/project/944
- Downloads: https://tarballs.openstack.org/ironic-inspector/
- Documentation: https://docs.openstack.org/ironic-inspector/latest/
- Python client library and CLI tool: python-ironic-inspector-client (documentation).
Note
ironic-inspector was called ironic-discoverd before version 2.0.0.
Release Notes
For information on any current or prior version, see the release notes.