ScaleIO: Disable volume creation without padding
Applying previous fix for thick volumes to thin volumes to disallow volume creation without zero padding unless enabled via config option. Change-Id: Ibaf6e9b67d252a5aae1b0f64ec632ec26789c389 Closes-Bug: #1784871 Signed-off-by: Matan Sabag <matan.sabag@emc.com>
This commit is contained in:
parent
681c210444
commit
949cc46e16
@ -40,6 +40,9 @@ class ScaleIODriver(driver.ScaleIODriver):
|
|||||||
def unmanage(self, volume):
|
def unmanage(self, volume):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def _is_volume_creation_safe(self, _pd, _sp, _pt):
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
class MockHTTPSResponse(requests.Response):
|
class MockHTTPSResponse(requests.Response):
|
||||||
"""Mock HTTP Response
|
"""Mock HTTP Response
|
||||||
|
@ -113,6 +113,12 @@ scaleio_opts = [
|
|||||||
'when zero padding is disabled. This option should '
|
'when zero padding is disabled. This option should '
|
||||||
'not be enabled if multiple tenants will utilize '
|
'not be enabled if multiple tenants will utilize '
|
||||||
'thick volumes from a shared Storage Pool.'),
|
'thick volumes from a shared Storage Pool.'),
|
||||||
|
cfg.BoolOpt('sio_allow_non_padded_volumes',
|
||||||
|
default=False,
|
||||||
|
help='Allow volumes to be created in Storage Pools '
|
||||||
|
'when zero padding is disabled. This option should '
|
||||||
|
'not be enabled if multiple tenants will utilize '
|
||||||
|
'volumes from a shared Storage Pool.'),
|
||||||
]
|
]
|
||||||
|
|
||||||
CONF.register_opts(scaleio_opts, group=configuration.SHARED_CONF_GROUP)
|
CONF.register_opts(scaleio_opts, group=configuration.SHARED_CONF_GROUP)
|
||||||
@ -496,17 +502,19 @@ class ScaleIODriver(driver.VolumeDriver):
|
|||||||
protection_domain,
|
protection_domain,
|
||||||
storage_pool,
|
storage_pool,
|
||||||
provision_type):
|
provision_type):
|
||||||
"""Checks if volume creation is safe or not
|
"""Checks if volume creation is safe or not.
|
||||||
|
|
||||||
using thick volumes with zero padding disabled can lead
|
Using volumes with zero padding disabled can lead to existing data
|
||||||
to existing data being read off of a newly created volume
|
being read off of a newly created volume.
|
||||||
"""
|
"""
|
||||||
# if we have been told to allow unsafe volumes
|
# if we have been told to allow unsafe volumes
|
||||||
if self.configuration.sio_allow_non_padded_thick_volumes:
|
if self.configuration.sio_allow_non_padded_volumes:
|
||||||
|
# Enabled regardless of type, so safe to proceed
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# all thin volumes are safe
|
if (provision_type == 'ThickProvisioned' and
|
||||||
if provision_type == 'ThinProvisioned':
|
self.configuration.sio_allow_non_padded_thick_volumes):
|
||||||
|
# Enabled for thick volumes
|
||||||
return True
|
return True
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -613,7 +621,8 @@ class ScaleIODriver(driver.VolumeDriver):
|
|||||||
"zero padding being disabled for pool, %s:%s. "
|
"zero padding being disabled for pool, %s:%s. "
|
||||||
"This behaviour can be changed by setting "
|
"This behaviour can be changed by setting "
|
||||||
"the configuration option "
|
"the configuration option "
|
||||||
"sio_allow_non_padded_thick_volumes = True.",
|
"sio_allow_non_padded_thick_volumes = True or"
|
||||||
|
"sio_allow_non_padded_volumes = True.",
|
||||||
protection_domain_name,
|
protection_domain_name,
|
||||||
storage_pool_name)
|
storage_pool_name)
|
||||||
msg = _("Volume creation rejected due to "
|
msg = _("Volume creation rejected due to "
|
||||||
|
7
releasenotes/notes/bug-1784871-7f67402eb13abca7.yaml
Normal file
7
releasenotes/notes/bug-1784871-7f67402eb13abca7.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
security:
|
||||||
|
- |
|
||||||
|
Removed the ability to create volumes in a ScaleIO Storage Pool
|
||||||
|
that has zero-padding disabled.
|
||||||
|
A new configuration option had been added to override this new
|
||||||
|
behavior and allow volume creation, but should not be enabled if
|
||||||
|
multiple tenants will utilize volumes from a shared Storage Pool.
|
Loading…
x
Reference in New Issue
Block a user