![Takashi Kajinami](/assets/img/avatar_default.png)
pysendfile[1] was added as an optional dependency but the library hasn't been maintained and has got no release since 2014. What is worse, the sendfile implementation is not actually working since The SendFileIterator class was removed[2]. (Follow-up[3] removed the remaining reference to the class). The broken implementation has not been detected because the client is not currently used to upload contents. Remove the incomplete implementation to get rid of the dependency on the unmaintained library. [1] https://pypi.org/project/pysendfile/ [2]76c3620c7e
[3]0c151d7d7e
Closes-Bug: #2062573 Change-Id: Ia4784f59d16660e8d40c0e409f092ac4e46870b4
3.3 KiB
Requirements
External Requirements Affecting Glance
Like other OpenStack projects, Glance uses some external libraries
for a subset of its features. Some examples include the
qemu-img
utility used by the tasks feature,
pydev
to debug using popular IDEs,
python-xattr
for Image Cache using "xattr" driver.
On the other hand, if dnspython
is installed in the
environment, Glance provides a workaround to make it work with IPV6.
Additionally, some libraries like xattr
are not
compatible when using Glance on Windows (see the documentation on config options
affecting the Image Cache <configuring>
).
Guideline to include your requirement in the requirements.txt file
As described above, we don't include all the possible requirements needed by Glance features in the source tree requirements file. So, when an operator decides to use an advanced feature in Glance, we ask them to check the documentation/guidelines for those features to set up the feature in a workable way. In order to reduce the operator pain, the development team likes to work with different operators to figure out when a popular feature should have its dependencies included in the requirements file. However, there's a tradeoff in including more of requirements in source tree as it becomes more painful for packagers. So, it is a bit of a haggle among different stakeholders and a judicious decision is taken by the project PTL or release liaison to determine the outcome.
To simplify the identification of an advanced feature in Glance we can think of it as something not being used and deployed by most of the upstream/known community members.
To name a few features that have been identified as advanced:
- glance tasks
- image signing
- image prefetcher
- glance db purge utility
- image locations
Steps to include your requirement in the requirements.txt file
1. First step is to propose a change against the
openstack/requirements
project to include the
requirement(s) as a part of global-requirements
and
upper-constraints
files.
2. If your requirement is not a part of the project, you will have to
propose a change adding that requirement to the requirements.txt file in
Glance. Please include a Depends-On: <ChangeID>
flag
in the commit message, where the ChangeID
is the gerrit ID
of corresponding change against openstack/requirements
project.
3. A sync bot then syncs the global requirements into project requirements on a regular basis, so any updates to the requirements are synchronized on a timely basis.