Merge "Don't check thin provisioning when manage volumes"
This commit is contained in:
commit
a14dfe4274
|
@ -61,6 +61,10 @@ class CapacityFilter(filters.BaseBackendFilter):
|
|||
'grouping_name': backend_state.backend_id, 'id': volid,
|
||||
'size': requested_size})
|
||||
|
||||
# requested_size is 0 means that it's a manage request.
|
||||
if requested_size == 0:
|
||||
return True
|
||||
|
||||
if backend_state.free_capacity_gb is None:
|
||||
# Fail Safe
|
||||
LOG.error("Free capacity not set: "
|
||||
|
@ -95,6 +99,7 @@ class CapacityFilter(filters.BaseBackendFilter):
|
|||
"grouping": grouping,
|
||||
"grouping_name": backend_state.backend_id})
|
||||
return False
|
||||
|
||||
# Calculate how much free space is left after taking into account
|
||||
# the reserved space.
|
||||
free = free_space - math.floor(total * reserved)
|
||||
|
|
|
@ -123,6 +123,24 @@ class CapacityFilterTestCase(BackendFiltersTestCase):
|
|||
'service': service})
|
||||
self.assertFalse(filt_cls.backend_passes(host, filter_properties))
|
||||
|
||||
def test_filter_with_size_0(self, _mock_serv_is_up):
|
||||
_mock_serv_is_up.return_value = True
|
||||
filt_cls = self.class_map['CapacityFilter']()
|
||||
filter_properties = {'size': 0,
|
||||
'request_spec': {'volume_id': fake.VOLUME_ID}}
|
||||
service = {'disabled': False}
|
||||
host = fakes.FakeBackendState('host1',
|
||||
{'total_capacity_gb': 500,
|
||||
'free_capacity_gb': 200,
|
||||
'provisioned_capacity_gb': 1500,
|
||||
'max_over_subscription_ratio': 2.0,
|
||||
'reserved_percentage': 5,
|
||||
'thin_provisioning_support': True,
|
||||
'thick_provisioning_support': False,
|
||||
'updated_at': None,
|
||||
'service': service})
|
||||
self.assertTrue(filt_cls.backend_passes(host, filter_properties))
|
||||
|
||||
def test_filter_passes_infinite(self, _mock_serv_is_up):
|
||||
_mock_serv_is_up.return_value = True
|
||||
filt_cls = self.class_map['CapacityFilter']()
|
||||
|
|
Loading…
Reference in New Issue