OpenStack Block Storage (Cinder)
Go to file
Francois Deppierraz 937af5be0e cinder-volume: Stop masking IOError different than ENOSPC
When glanceclient raises an IOError with a different errno than ENOSPC,
cinder-volume silently masked it and continued its volume creation
process. The result was volumes with invalid content being successfuly
created.

With the patch, an ImageDownloadFailed exception is raised in this case,
which makes the volume creation process fail and gives enough
information to operators for troubleshooting.

As explained in detail below, this patch is a squash of four cherry
picks to fix Bug #1799221.  The cherry-picks are being squashed
instead of done separately per normal cinder practice because they
are dependent; this will make sure that one of them isn't further
backported without the supporting patches.

Here's the relationship between the four cherry-picks:
(1) The purpose of this backport is to fix Bug #1799221, which was
    introduced in Pike.  It is fixed in Stein and Rocky by
    Ic011fe30b4840e5098db1a594ea276ec98768bff
(2) That change requires an exception introduced in Stein and backported
    to Rocky by If7c22ac4516f8c2a6ccd8bf6b6ed98409312b138 to fix Bug
    #1798147 (which defect is also present in Queens and Pike)
(3) The change in (2) introduced Bug #1808443 which was fixed in Stein
    and Rocky by I6d8dedfd056add3414f8f4bf7f7279eae4763286
(4) The change in (2) also introduced Bug #1811184, which is fixed by
    I6d8dedfd056add3414f8f4bf7f7279eae4763286 in Stein and Rocky, and
    which adds a unit test for Bug #1798147.
In short, in order to backport the fix for (1), we need to backport (2),
but in order to backport (2) we need to follow up immediately with
backports of (3) and (4) to fix the defects (2) introduces.

The attentive reader will note that this patch smuggles in the fix for
Bug #1798147.  We could have left this out, but it's a very small
isolated change, the defect is present in Queens and Pike (remember that
Bug #1799221, the subject of this patch, was introduced in Pike), and it
has a unit test (see (4), above).  Finally, leaving out the fix for
Bug #1798147 and backporting only the exception would still require
backporting the fixes for Bug #1808443 and Bug #1811184, so it really
would not simplify this patch.

To summarize what's being included here:
commit   changeId                                    fixed bug
805368e  If7c22ac4516f8c2a6ccd8bf6b6ed98409312b138   Bug #1798147
9c696ce  I2aa56da73660794c6dedcbb8a66e84bcec511a9c   Bug #1808443
844b627  I6d8dedfd056add3414f8f4bf7f7279eae4763286   Bug #1811184
bf89f76  Ic011fe30b4840e5098db1a594ea276ec98768bff   Bug #1799221

Change-Id: Ic011fe30b4840e5098db1a594ea276ec98768bff
Closes-Bug: #1799221
(cherry picked from commit 864c074ff1)
(cherry picked from commit bf89f76fb1)
Related-Bug: #1798147
(cherry picked from commit d3afc39467)
(cherry picked from commit 805368e902)
Related-Bug: #1808443
(cherry picked from commit 80fdc0a71b)
(cherry picked from commit 9c696ce29f)
Related-bug: #1811184
(cherry picked from commit 16b4346171)
(cherry picked from commit 844b627c38)
2019-01-22 22:39:01 -05:00
api-ref/source Merge "Remove unused parameters in v2/v3 parameters.yaml" 2018-02-08 12:44:33 +00:00
cinder cinder-volume: Stop masking IOError different than ENOSPC 2019-01-22 22:39:01 -05:00
contrib/block-box Bump up the API microversion in cinder.rc 2017-12-22 06:18:09 -08:00
doc Merge "Storwize: modify hyperswap host_site configuration" into stable/queens 2018-10-29 17:34:16 +00:00
etc/cinder Add cg policies and clean up old policy handling 2017-12-04 10:07:54 +08:00
playbooks/legacy/cinder-tempest-dsvm-lvm-lio-barbican Rename lio job to lio-barbican 2018-01-30 14:41:56 -05:00
rally-jobs Switch Rally Task To format V2 2017-10-13 08:37:57 +00:00
releasenotes cinder-volume: Stop masking IOError different than ENOSPC 2019-01-22 22:39:01 -05:00
tools Add policy documentation and sample file 2017-10-20 10:47:34 +08:00
.coveragerc Update .coveragerc after the removal of openstack directory 2016-10-17 19:09:37 +05:30
.gitignore Add doc/source/_static/cinder.policy.yaml.sample to .gitignore 2017-11-15 16:46:57 +09:00
.gitreview Update .gitreview for stable/queens 2018-02-08 17:26:56 +00:00
.stestr.conf Add .stestr.conf configuration 2017-10-10 00:46:42 +00:00
.zuul.yaml Remove cinder-tox-compliance job 2018-11-28 11:44:55 -06:00
CONTRIBUTING.rst Optimize the link address 2017-04-08 15:03:44 +08:00
HACKING.rst Fix wrong links in Cinder 2017-09-07 11:55:44 +08:00
LICENSE Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
README.rst Update Documentation link 2017-07-13 12:12:20 +00:00
babel.cfg Initial fork out of Nova. 2012-05-03 10:48:26 -07:00
bindep.txt Do not explicitly list thin provisioning tools for RPM 2018-01-02 10:52:44 -06:00
driver-requirements.txt Add driver-requirements entry for storpool 2018-01-02 09:54:49 -05:00
pylintrc Use six to fix imports on Python 3 2015-06-11 17:19:19 +02:00
requirements.txt Updated from global requirements 2018-02-01 07:06:24 +00:00
setup.cfg Remove In-repo cinder tempest plugin 2017-12-20 17:11:51 +00:00
setup.py Updated from global requirements 2017-03-02 23:53:29 +00:00
test-requirements.txt Updated from global requirements 2018-02-01 07:06:24 +00:00
tox.ini Update UPPER_CONSTRAINTS_FILE for stable/queens 2018-02-08 17:26:59 +00:00

README.rst

Team and repository tags

image

CINDER

You have come across a storage service for an open cloud computing service. It has identified itself as Cinder. It was abstracted from the Nova project.

Getting Started

If you'd like to run from the master branch, you can clone the git repo:

git clone https://git.openstack.org/openstack/cinder.git

For developer information please see HACKING.rst

You can raise bugs here https://bugs.launchpad.net/cinder

Python client

https://git.openstack.org/cgit/openstack/python-cinderclient