Do not fail when depth is greater than rbd_max_clone_depth
Removed a sanity check in the code that raised an exception if the clone depth of a volume to be cloned exceeded the rbd_max_clone_depth config value. A consequence of this check was that if an operator lowered the value, volumes whose clone depth was greater than the new value (as would be allowed by the previous, higher setting) could no longer be cloned. Change-Id: I8c445058a25c2eca2fda91bdeb6befedae34ccf2 Closes-bug: #1901241
This commit is contained in:
parent
0f2eff2ec3
commit
8d8d242c39
@ -76,7 +76,9 @@ RBD_OPTS = [
|
||||
default=5,
|
||||
help='Maximum number of nested volume clones that are '
|
||||
'taken before a flatten occurs. Set to 0 to disable '
|
||||
'cloning.'),
|
||||
'cloning. Note: lowering this value will not affect '
|
||||
'existing volumes whose clone depth exceeds the new '
|
||||
'value.'),
|
||||
cfg.IntOpt('rbd_store_chunk_size', default=4,
|
||||
help='Volumes will be chunked into objects of this size '
|
||||
'(in megabytes).'),
|
||||
@ -656,12 +658,6 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD,
|
||||
if not parent:
|
||||
return depth
|
||||
|
||||
# If clone depth was reached, flatten should have occurred so if it has
|
||||
# been exceeded then something has gone wrong.
|
||||
if depth > self.configuration.rbd_max_clone_depth:
|
||||
raise Exception(_("clone depth exceeds limit of %s") %
|
||||
(self.configuration.rbd_max_clone_depth))
|
||||
|
||||
return self._get_clone_depth(client, parent, depth + 1)
|
||||
|
||||
def _extend_if_required(self, volume, src_vref):
|
||||
@ -731,7 +727,7 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD,
|
||||
depth = self._get_clone_depth(client, src_name)
|
||||
# If dest volume is a clone and rbd_max_clone_depth reached,
|
||||
# flatten the dest after cloning. Zero rbd_max_clone_depth means
|
||||
# infinite is allowed.
|
||||
# volumes are always flattened.
|
||||
if depth >= self.configuration.rbd_max_clone_depth:
|
||||
LOG.info("maximum clone depth (%d) has been reached - "
|
||||
"flattening dest volume",
|
||||
|
8
releasenotes/notes/bug-1901241-361b1b361bfa5152.yaml
Normal file
8
releasenotes/notes/bug-1901241-361b1b361bfa5152.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
RBD driver `bug #1901241
|
||||
<https://bugs.launchpad.net/cinder/+bug/1901241>`_:
|
||||
Fixed an issue where decreasing the ``rbd_max_clone_depth`` configuration
|
||||
option would prevent volumes that had already exceeded that depth from
|
||||
being cloned.
|
Loading…
Reference in New Issue
Block a user