Replace thin/thick capabilities with thin_provisioning

According to new common capabilities documentation
Manila has common capability thin_provisioning with
boolean value. That's why instances of
thin_provisioning_support and thick_provisioning_support
capabilities should be replaced with
thin_provisioning=True/False.

Depends-On: I2c5bdf5ef9bfd6c8e7e06dac1fde08ad56cc6af1
Change-Id: If366fb242e4903f0b2693132d312b9318f4d89a4
Partial-Bug: #1487467
This commit is contained in:
Igor Malinovskiy 2015-08-31 17:04:39 +03:00
parent e46502a8a4
commit 6c63dee78f
7 changed files with 87 additions and 141 deletions

View File

@ -78,13 +78,13 @@ class CapacityFilter(filters.BaseHostFilter):
"%(requested)s/%(available)s", msg_args)
# NOTE(xyang): Only evaluate using max_over_subscription_ratio
# if thin_provisioning_support is True. Check if the ratio of
# if thin_provisioning is True. Check if the ratio of
# provisioned capacity over total capacity would exceed
# subscription ratio.
# If max_over_subscription_ratio = 1, the provisioned_ratio
# should still be limited by the max_over_subscription_ratio;
# otherwise, it could result in infinite provisioning.
if (host_state.thin_provisioning_support and
if (host_state.thin_provisioning and
host_state.max_over_subscription_ratio >= 1):
provisioned_ratio = ((host_state.provisioned_capacity_gb +
share_size) / total)
@ -105,7 +105,7 @@ class CapacityFilter(filters.BaseHostFilter):
adjusted_free_virtual = (
free * host_state.max_over_subscription_ratio)
return adjusted_free_virtual >= share_size
elif host_state.thin_provisioning_support:
elif host_state.thin_provisioning:
LOG.error(_LE("Invalid max_over_subscription_ratio: %(ratio)s. "
"Valid value should be >= 1."),
{"ratio": host_state.max_over_subscription_ratio})

View File

@ -120,8 +120,7 @@ class HostState(object):
# equal to the allocated_capacity_gb.
self.provisioned_capacity_gb = 0
self.max_over_subscription_ratio = 1.0
self.thin_provisioning_support = False
self.thick_provisioning_support = False
self.thin_provisioning = False
self.driver_handles_share_servers = False
self.snapshot_support = True
@ -343,10 +342,8 @@ class PoolState(HostState):
self.max_over_subscription_ratio = capability.get(
'max_over_subscription_ratio',
CONF.max_over_subscription_ratio)
self.thin_provisioning_support = capability.get(
'thin_provisioning_support', False)
self.thick_provisioning_support = capability.get(
'thick_provisioning_support', False)
self.thin_provisioning = capability.get(
'thin_provisioning', False)
def update_pools(self, capability):
# Do nothing, since we don't have pools within pool, yet

View File

@ -61,7 +61,7 @@ class CapacityWeigher(weights.BaseHostWeigher):
free = float('inf')
else:
total = float(total_space)
if host_state.thin_provisioning_support:
if host_state.thin_provisioning:
# NOTE(xyang): Calculate virtual free capacity for thin
# provisioning.
free = math.floor(

View File

@ -37,24 +37,21 @@ SERVICE_STATES_NO_POOLS = {
timestamp=None, reserved_percentage=0,
provisioned_capacity_gb=312,
max_over_subscription_ratio=1.0,
thin_provisioning_support=False,
thick_provisioning_support=True,
thin_provisioning=False,
driver_handles_share_servers=False),
'host2@back1': dict(share_backend_name='BBB',
total_capacity_gb=256, free_capacity_gb=100,
timestamp=None, reserved_percentage=0,
provisioned_capacity_gb=400,
max_over_subscription_ratio=2.0,
thin_provisioning_support=True,
thick_provisioning_support=False,
thin_provisioning=True,
driver_handles_share_servers=False),
'host2@back2': dict(share_backend_name='CCC',
total_capacity_gb=10000, free_capacity_gb=700,
timestamp=None, reserved_percentage=0,
provisioned_capacity_gb=50000,
max_over_subscription_ratio=20.0,
thin_provisioning_support=True,
thick_provisioning_support=True,
thin_provisioning=True,
driver_handles_share_servers=False),
}
@ -83,8 +80,7 @@ SHARE_SERVICE_STATES_WITH_POOLS = {
reserved_percentage=0,
provisioned_capacity_gb=10,
max_over_subscription_ratio=1.0,
thin_provisioning_support=False,
thick_provisioning_support=True)]),
thin_provisioning=False)]),
'host2@BBB': dict(share_backend_name='BBB',
timestamp=None, reserved_percentage=0,
driver_handles_share_servers=False,
@ -95,8 +91,7 @@ SHARE_SERVICE_STATES_WITH_POOLS = {
reserved_percentage=0,
provisioned_capacity_gb=60,
max_over_subscription_ratio=2.0,
thin_provisioning_support=True,
thick_provisioning_support=False)]),
thin_provisioning=True)]),
'host3@CCC': dict(share_backend_name='CCC',
timestamp=None, reserved_percentage=0,
driver_handles_share_servers=False,
@ -107,8 +102,7 @@ SHARE_SERVICE_STATES_WITH_POOLS = {
reserved_percentage=0,
provisioned_capacity_gb=100,
max_over_subscription_ratio=20.0,
thin_provisioning_support=True,
thick_provisioning_support=True)]),
thin_provisioning=True)]),
'host4@DDD': dict(share_backend_name='DDD',
timestamp=None, reserved_percentage=0,
driver_handles_share_servers=False,
@ -119,16 +113,14 @@ SHARE_SERVICE_STATES_WITH_POOLS = {
reserved_percentage=0,
provisioned_capacity_gb=800,
max_over_subscription_ratio=2.0,
thin_provisioning_support=True,
thick_provisioning_support=False),
thin_provisioning=True),
dict(pool_name='pool4b',
total_capacity_gb=542,
free_capacity_gb=442,
reserved_percentage=0,
provisioned_capacity_gb=2000,
max_over_subscription_ratio=10.0,
thin_provisioning_support=True,
thick_provisioning_support=False)]),
thin_provisioning=True)]),
'host5@EEE': dict(share_backend_name='EEE',
timestamp=None, reserved_percentage=0,
driver_handles_share_servers=False,
@ -139,16 +131,14 @@ SHARE_SERVICE_STATES_WITH_POOLS = {
reserved_percentage=0,
provisioned_capacity_gb=100,
max_over_subscription_ratio=1.0,
thin_provisioning_support=False,
thick_provisioning_support=True),
thin_provisioning=False),
dict(pool_name='pool5b',
total_capacity_gb=552,
free_capacity_gb=452,
reserved_percentage=0,
provisioned_capacity_gb=100,
max_over_subscription_ratio=1.0,
thin_provisioning_support=False,
thick_provisioning_support=True)]),
thin_provisioning=False)]),
}
@ -168,8 +158,7 @@ class FakeHostManager(host_manager.HostManager):
'allocated_capacity_gb': 0,
'provisioned_capacity_gb': 0,
'max_over_subscription_ratio': 1.0,
'thin_provisioning_support': False,
'thick_provisioning_support': True,
'thin_provisioning': False,
'reserved_percentage': 10,
'timestamp': None},
'host2': {'total_capacity_gb': 2048,
@ -177,8 +166,7 @@ class FakeHostManager(host_manager.HostManager):
'allocated_capacity_gb': 1748,
'provisioned_capacity_gb': 1748,
'max_over_subscription_ratio': 2.0,
'thin_provisioning_support': True,
'thick_provisioning_support': False,
'thin_provisioning': True,
'reserved_percentage': 10,
'timestamp': None},
'host3': {'total_capacity_gb': 512,
@ -186,8 +174,7 @@ class FakeHostManager(host_manager.HostManager):
'allocated_capacity_gb': 256,
'provisioned_capacity_gb': 256,
'max_over_subscription_ratio': 2.0,
'thin_provisioning_support': False,
'thick_provisioning_support': True,
'thin_provisioning': False,
'reserved_percentage': 0,
'timestamp': None},
'host4': {'total_capacity_gb': 2048,
@ -195,8 +182,7 @@ class FakeHostManager(host_manager.HostManager):
'allocated_capacity_gb': 1848,
'provisioned_capacity_gb': 1848,
'max_over_subscription_ratio': 1.0,
'thin_provisioning_support': True,
'thick_provisioning_support': True,
'thin_provisioning': True,
'reserved_percentage': 5,
'timestamp': None},
'host5': {'total_capacity_gb': 2048,
@ -204,8 +190,7 @@ class FakeHostManager(host_manager.HostManager):
'allocated_capacity_gb': 1548,
'provisioned_capacity_gb': 1548,
'max_over_subscription_ratio': 1.5,
'thin_provisioning_support': True,
'thick_provisioning_support': False,
'thin_provisioning': True,
'reserved_percentage': 5,
'timestamp': None},
}

View File

@ -54,7 +54,7 @@ class CapacityWeigherTestCase(test.TestCase):
ctxt, CONF.share_topic)
return host_states
# NOTE(xyang): If thin_provisioning_support = True and
# NOTE(xyang): If thin_provisioning = True and
# max_over_subscription_ratio >= 1, use the following formula:
# free = math.floor(total * host_state.max_over_subscription_ratio
# - host_state.provisioned_capacity_gb
@ -64,25 +64,25 @@ class CapacityWeigherTestCase(test.TestCase):
def test_default_of_spreading_first(self):
hostinfo_list = self._get_all_hosts()
# host1: thin_provisioning_support = False
# host1: thin_provisioning = False
# free_capacity_gb = 1024
# free = math.floor(1024 - 1024 * 0.1) = 921.0
# weight = 0.40
# host2: thin_provisioning_support = True
# host2: thin_provisioning = True
# max_over_subscription_ratio = 2.0
# free_capacity_gb = 300
# free = math.floor(2048 * 2.0 - 1748 - 2048 * 0.1)=2143.0
# weight = 1.0
# host3: thin_provisioning_support = False
# host3: thin_provisioning = False
# free_capacity_gb = 512
# free = math.floor(256 - 512 * 0)=256.0
# weight = 0.08
# host4: thin_provisioning_support = True
# host4: thin_provisioning = True
# max_over_subscription_ratio = 1.0
# free_capacity_gb = 200
# free = math.floor(2048 * 1.0 - 1848 - 2048 * 0.05) = 97.0
# weight = 0.0
# host5: thin_provisioning_support = True
# host5: thin_provisioning = True
# max_over_subscription_ratio = 1.5
# free_capacity_gb = 500
# free = math.floor(2048 * 1.5 - 1548 - 2048 * 0.05) = 1421.0
@ -98,29 +98,29 @@ class CapacityWeigherTestCase(test.TestCase):
self.flags(capacity_weight_multiplier=-1.0)
hostinfo_list = self._get_all_hosts()
# host1: thin_provisioning_support = False
# host1: thin_provisioning = False
# free_capacity_gb = 1024
# free = math.floor(1024 - 1024 * 0.1) = 921.0
# free * (-1) = -921.0
# weight = -0.40
# host2: thin_provisioning_support = True
# host2: thin_provisioning = True
# max_over_subscription_ratio = 2.0
# free_capacity_gb = 300
# free = math.floor(2048 * 2.0-1748-2048 * 0.1) = 2143.0
# free * (-1) = -2143.0
# weight = -1.0
# host3: thin_provisioning_support = False
# host3: thin_provisioning = False
# free_capacity_gb = 512
# free = math.floor(256 - 512 * 0) = 256.0
# free * (-1) = -256.0
# weight = -0.08
# host4: thin_provisioning_support = True
# host4: thin_provisioning = True
# max_over_subscription_ratio = 1.0
# free_capacity_gb = 200
# free = math.floor(2048 * 1.0 - 1848 - 2048 * 0.05) = 97.0
# free * (-1) = -97.0
# weight = 0.0
# host5: thin_provisioning_support = True
# host5: thin_provisioning = True
# max_over_subscription_ratio = 1.5
# free_capacity_gb = 500
# free = math.floor(2048 * 1.5 - 1548 - 2048 * 0.05) = 1421.0
@ -137,29 +137,29 @@ class CapacityWeigherTestCase(test.TestCase):
self.flags(capacity_weight_multiplier=2.0)
hostinfo_list = self._get_all_hosts()
# host1: thin_provisioning_support = False
# host1: thin_provisioning = False
# free_capacity_gb = 1024
# free = math.floor(1024-1024*0.1) = 921.0
# free * 2 = 1842.0
# weight = 0.81
# host2: thin_provisioning_support = True
# host2: thin_provisioning = True
# max_over_subscription_ratio = 2.0
# free_capacity_gb = 300
# free = math.floor(2048 * 2.0 - 1748 - 2048 * 0.1) = 2143.0
# free * 2 = 4286.0
# weight = 2.0
# host3: thin_provisioning_support = False
# host3: thin_provisioning = False
# free_capacity_gb = 512
# free = math.floor(256 - 512 * 0) = 256.0
# free * 2 = 512.0
# weight = 0.16
# host4: thin_provisioning_support = True
# host4: thin_provisioning = True
# max_over_subscription_ratio = 1.0
# free_capacity_gb = 200
# free = math.floor(2048 * 1.0 - 1848 - 2048 * 0.05) = 97.0
# free * 2 = 194.0
# weight = 0.0
# host5: thin_provisioning_support = True
# host5: thin_provisioning = True
# max_over_subscription_ratio = 1.5
# free_capacity_gb = 500
# free = math.floor(2048 * 1.5 - 1548 - 2048 * 0.05) = 1421.0

View File

@ -129,45 +129,34 @@ class HostFiltersTestCase(test.TestCase):
self.assertFalse(filt_cls.host_passes(host, filter_properties))
@ddt.data(
{'size': 100, 'cap_thin': '<is> True', 'cap_thick': '<is> False',
{'size': 100, 'cap_thin': '<is> True',
'total': 500, 'free': 200, 'provisioned': 500,
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True,
'thick_prov': False},
{'size': 3000, 'cap_thin': '<is> True', 'cap_thick': '<is> False',
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True},
{'size': 3000, 'cap_thin': '<is> True',
'total': 500, 'free': 200, 'provisioned': 7000,
'max_ratio': 20, 'reserved': 5, 'thin_prov': True,
'thick_prov': False},
{'size': 100, 'cap_thin': '<is> False', 'cap_thick': '<is> True',
'max_ratio': 20, 'reserved': 5, 'thin_prov': True},
{'size': 100, 'cap_thin': '<is> False',
'total': 500, 'free': 200, 'provisioned': 300,
'max_ratio': 1.0, 'reserved': 5, 'thin_prov': False,
'thick_prov': True},
{'size': 100, 'cap_thin': '<is> True', 'cap_thick': '<is> False',
'max_ratio': 1.0, 'reserved': 5, 'thin_prov': False},
{'size': 100, 'cap_thin': '<is> True',
'total': 500, 'free': 200, 'provisioned': 400,
'max_ratio': 1.0, 'reserved': 5, 'thin_prov': True,
'thick_prov': False},
{'size': 100, 'cap_thin': '<is> True', 'cap_thick': '<is> True',
'max_ratio': 1.0, 'reserved': 5, 'thin_prov': True},
{'size': 100, 'cap_thin': '<is> True',
'total': 500, 'free': 125, 'provisioned': 400,
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True,
'thick_prov': True},
{'size': 100, 'cap_thin': '<is> True', 'cap_thick': '<is> False',
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True},
{'size': 100, 'cap_thin': '<is> True',
'total': 500, 'free': 80, 'provisioned': 600,
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True,
'thick_prov': False},
{'size': 100, 'cap_thin': '<is> True', 'cap_thick': '<is> True',
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True},
{'size': 100, 'cap_thin': '<is> True',
'total': 500, 'free': 100, 'provisioned': 400,
'max_ratio': 2.0, 'reserved': 0, 'thin_prov': True,
'thick_prov': True})
'max_ratio': 2.0, 'reserved': 0, 'thin_prov': True})
@ddt.unpack
def test_filter_thin_thick_passes(self, size, cap_thin, cap_thick,
total, free, provisioned, max_ratio,
reserved, thin_prov, thick_prov):
def test_filter_thin_passes(self, size, cap_thin, total, free, provisioned,
max_ratio, reserved, thin_prov):
self._stub_service_is_up(True)
filt_cls = self.class_map['CapacityFilter']()
filter_properties = {'size': size,
'capabilities:thin_provisioning_support':
cap_thin,
'capabilities:thick_provisioning_support':
cap_thick}
'capabilities:thin_provisioning': cap_thin}
service = {'disabled': False}
host = fakes.FakeHostState('host1',
{'total_capacity_gb': total,
@ -175,56 +164,43 @@ class HostFiltersTestCase(test.TestCase):
'provisioned_capacity_gb': provisioned,
'max_over_subscription_ratio': max_ratio,
'reserved_percentage': reserved,
'thin_provisioning_support': thin_prov,
'thick_provisioning_support': thick_prov,
'thin_provisioning': thin_prov,
'updated_at': None,
'service': service})
self.assertTrue(filt_cls.host_passes(host, filter_properties))
@ddt.data(
{'size': 200, 'cap_thin': '<is> True', 'cap_thick': '<is> False',
{'size': 200, 'cap_thin': '<is> True',
'total': 500, 'free': 100, 'provisioned': 400,
'max_ratio': 0.8, 'reserved': 0, 'thin_prov': True,
'thick_prov': False},
{'size': 100, 'cap_thin': '<is> True', 'cap_thick': '<is> False',
'max_ratio': 0.8, 'reserved': 0, 'thin_prov': True},
{'size': 100, 'cap_thin': '<is> True',
'total': 500, 'free': 200, 'provisioned': 700,
'max_ratio': 1.5, 'reserved': 5, 'thin_prov': True,
'thick_prov': False},
{'size': 2000, 'cap_thin': '<is> True', 'cap_thick': '<is> False',
'max_ratio': 1.5, 'reserved': 5, 'thin_prov': True},
{'size': 2000, 'cap_thin': '<is> True',
'total': 500, 'free': 30, 'provisioned': 9000,
'max_ratio': 20.0, 'reserved': 0, 'thin_prov': True,
'thick_prov': False},
{'size': 100, 'cap_thin': '<is> True', 'cap_thick': '<is> False',
'max_ratio': 20.0, 'reserved': 0, 'thin_prov': True},
{'size': 100, 'cap_thin': '<is> True',
'total': 500, 'free': 100, 'provisioned': 1000,
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True,
'thick_prov': False},
{'size': 100, 'cap_thin': '<is> False', 'cap_thick': '<is> True',
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True},
{'size': 100, 'cap_thin': '<is> False',
'total': 500, 'free': 100, 'provisioned': 400,
'max_ratio': 1.0, 'reserved': 5, 'thin_prov': False,
'thick_prov': True},
{'size': 100, 'cap_thin': '<is> True', 'cap_thick': '<is> True',
'max_ratio': 1.0, 'reserved': 5, 'thin_prov': False},
{'size': 100, 'cap_thin': '<is> True',
'total': 500, 'free': 0, 'provisioned': 800,
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True,
'thick_prov': True},
{'size': 100, 'cap_thin': '<is> True', 'cap_thick': '<is> True',
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True},
{'size': 100, 'cap_thin': '<is> True',
'total': 500, 'free': 99, 'provisioned': 1000,
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True,
'thick_prov': True},
{'size': 400, 'cap_thin': '<is> True', 'cap_thick': '<is> False',
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True},
{'size': 400, 'cap_thin': '<is> True',
'total': 500, 'free': 200, 'provisioned': 600,
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True,
'thick_prov': False})
'max_ratio': 2.0, 'reserved': 5, 'thin_prov': True})
@ddt.unpack
def test_filter_thin_thick_fails(self, size, cap_thin, cap_thick,
total, free, provisioned, max_ratio,
reserved, thin_prov, thick_prov):
def test_filter_thin_fails(self, size, cap_thin, total, free, provisioned,
max_ratio, reserved, thin_prov):
self._stub_service_is_up(True)
filt_cls = self.class_map['CapacityFilter']()
filter_properties = {'size': size,
'capabilities:thin_provisioning_support':
cap_thin,
'capabilities:thick_provisioning_support':
cap_thick}
'capabilities:thin_provisioning': cap_thin}
service = {'disabled': False}
host = fakes.FakeHostState('host1',
{'total_capacity_gb': total,
@ -232,8 +208,7 @@ class HostFiltersTestCase(test.TestCase):
'provisioned_capacity_gb': provisioned,
'max_over_subscription_ratio': max_ratio,
'reserved_percentage': reserved,
'thin_provisioning_support': thin_prov,
'thick_provisioning_support': thick_prov,
'thin_provisioning': thin_prov,
'updated_at': None,
'service': service})
self.assertFalse(filt_cls.host_passes(host, filter_properties))

View File

@ -190,8 +190,7 @@ class HostManagerTestCase(test.TestCase):
'reserved_percentage': 0,
'provisioned_capacity_gb': 312,
'max_over_subscription_ratio': 1.0,
'thin_provisioning_support': False,
'thick_provisioning_support': True,
'thin_provisioning': False,
'vendor_name': None,
'storage_protocol': None,
'driver_handles_share_servers': False,
@ -211,8 +210,7 @@ class HostManagerTestCase(test.TestCase):
'reserved_percentage': 0,
'provisioned_capacity_gb': 400,
'max_over_subscription_ratio': 2.0,
'thin_provisioning_support': True,
'thick_provisioning_support': False,
'thin_provisioning': True,
'vendor_name': None,
'storage_protocol': None,
'driver_handles_share_servers': False,
@ -232,8 +230,7 @@ class HostManagerTestCase(test.TestCase):
'reserved_percentage': 0,
'provisioned_capacity_gb': 50000,
'max_over_subscription_ratio': 20.0,
'thin_provisioning_support': True,
'thick_provisioning_support': True,
'thin_provisioning': True,
'vendor_name': None,
'storage_protocol': None,
'driver_handles_share_servers': False,
@ -275,8 +272,7 @@ class HostManagerTestCase(test.TestCase):
'reserved_percentage': 0,
'provisioned_capacity_gb': 10,
'max_over_subscription_ratio': 1.0,
'thin_provisioning_support': False,
'thick_provisioning_support': True,
'thin_provisioning': False,
'vendor_name': None,
'storage_protocol': None,
'driver_handles_share_servers': False,
@ -297,8 +293,7 @@ class HostManagerTestCase(test.TestCase):
'reserved_percentage': 0,
'provisioned_capacity_gb': 60,
'max_over_subscription_ratio': 2.0,
'thin_provisioning_support': True,
'thick_provisioning_support': False,
'thin_provisioning': True,
'vendor_name': None,
'storage_protocol': None,
'driver_handles_share_servers': False,
@ -319,8 +314,7 @@ class HostManagerTestCase(test.TestCase):
'reserved_percentage': 0,
'provisioned_capacity_gb': 100,
'max_over_subscription_ratio': 20.0,
'thin_provisioning_support': True,
'thick_provisioning_support': True,
'thin_provisioning': True,
'vendor_name': None,
'storage_protocol': None,
'driver_handles_share_servers': False,
@ -341,8 +335,7 @@ class HostManagerTestCase(test.TestCase):
'reserved_percentage': 0,
'provisioned_capacity_gb': 800,
'max_over_subscription_ratio': 2.0,
'thin_provisioning_support': True,
'thick_provisioning_support': False,
'thin_provisioning': True,
'vendor_name': None,
'storage_protocol': None,
'driver_handles_share_servers': False,
@ -363,8 +356,7 @@ class HostManagerTestCase(test.TestCase):
'reserved_percentage': 0,
'provisioned_capacity_gb': 2000,
'max_over_subscription_ratio': 10.0,
'thin_provisioning_support': True,
'thick_provisioning_support': False,
'thin_provisioning': True,
'vendor_name': None,
'storage_protocol': None,
'driver_handles_share_servers': False,
@ -422,8 +414,7 @@ class HostManagerTestCase(test.TestCase):
'storage_protocol': None,
'provisioned_capacity_gb': 312,
'max_over_subscription_ratio': 1.0,
'thin_provisioning_support': False,
'thick_provisioning_support': True,
'thin_provisioning': False,
},
}, {
'name': 'host2@back1#BBB',
@ -443,8 +434,7 @@ class HostManagerTestCase(test.TestCase):
'storage_protocol': None,
'provisioned_capacity_gb': 400,
'max_over_subscription_ratio': 2.0,
'thin_provisioning_support': True,
'thick_provisioning_support': False,
'thin_provisioning': True,
},
},
]
@ -488,8 +478,7 @@ class HostManagerTestCase(test.TestCase):
'reserved_percentage': 0,
'provisioned_capacity_gb': 60,
'max_over_subscription_ratio': 2.0,
'thin_provisioning_support': True,
'thick_provisioning_support': False,
'thin_provisioning': True,
'vendor_name': None,
'storage_protocol': None
},