RBD: support to report backend state
This patch adds the ability to report backend state to RBD driver. Partial-Implements: blueprint report-backend-state-in-service-list Change-Id: Ib703786d77621ec139e4f3981506ed117b737524
This commit is contained in:
parent
9d263f711d
commit
0062968568
@ -1201,7 +1201,8 @@ class RBDTestCase(test.TestCase):
|
|||||||
provisioned_capacity_gb=mock.sentinel.provisioned_capacity_gb,
|
provisioned_capacity_gb=mock.sentinel.provisioned_capacity_gb,
|
||||||
max_over_subscription_ratio=1.0,
|
max_over_subscription_ratio=1.0,
|
||||||
multiattach=False,
|
multiattach=False,
|
||||||
location_info=expected_location_info)
|
location_info=expected_location_info,
|
||||||
|
backend_state='up')
|
||||||
|
|
||||||
if replication_enabled:
|
if replication_enabled:
|
||||||
targets = [{'backend_id': 'secondary-backend'},
|
targets = [{'backend_id': 'secondary-backend'},
|
||||||
@ -1244,7 +1245,8 @@ class RBDTestCase(test.TestCase):
|
|||||||
thin_provisioning_support=True,
|
thin_provisioning_support=True,
|
||||||
max_over_subscription_ratio=1.0,
|
max_over_subscription_ratio=1.0,
|
||||||
multiattach=False,
|
multiattach=False,
|
||||||
location_info=expected_location_info)
|
location_info=expected_location_info,
|
||||||
|
backend_state='up')
|
||||||
|
|
||||||
my_safe_get = MockDriverConfig(rbd_exclusive_cinder_pool=True)
|
my_safe_get = MockDriverConfig(rbd_exclusive_cinder_pool=True)
|
||||||
self.mock_object(self.driver.configuration, 'safe_get',
|
self.mock_object(self.driver.configuration, 'safe_get',
|
||||||
@ -1280,7 +1282,8 @@ class RBDTestCase(test.TestCase):
|
|||||||
multiattach=False,
|
multiattach=False,
|
||||||
max_over_subscription_ratio=1.0,
|
max_over_subscription_ratio=1.0,
|
||||||
thin_provisioning_support=True,
|
thin_provisioning_support=True,
|
||||||
location_info=expected_location_info)
|
location_info=expected_location_info,
|
||||||
|
backend_state='down')
|
||||||
|
|
||||||
with mock.patch.object(self.driver, '_get_fsid') as mock_get_fsid:
|
with mock.patch.object(self.driver, '_get_fsid') as mock_get_fsid:
|
||||||
mock_get_fsid.return_value = expected_fsid
|
mock_get_fsid.return_value = expected_fsid
|
||||||
|
@ -495,6 +495,7 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD,
|
|||||||
'max_over_subscription_ratio': (
|
'max_over_subscription_ratio': (
|
||||||
self.configuration.safe_get('max_over_subscription_ratio')),
|
self.configuration.safe_get('max_over_subscription_ratio')),
|
||||||
'location_info': location_info,
|
'location_info': location_info,
|
||||||
|
'backend_state': 'down'
|
||||||
}
|
}
|
||||||
|
|
||||||
backend_name = self.configuration.safe_get('volume_backend_name')
|
backend_name = self.configuration.safe_get('volume_backend_name')
|
||||||
@ -514,6 +515,8 @@ class RBDDriver(driver.CloneableImageVD, driver.MigrateVD,
|
|||||||
if not self.configuration.safe_get('rbd_exclusive_cinder_pool'):
|
if not self.configuration.safe_get('rbd_exclusive_cinder_pool'):
|
||||||
total_gbi = self._get_usage_info()
|
total_gbi = self._get_usage_info()
|
||||||
stats['provisioned_capacity_gb'] = total_gbi
|
stats['provisioned_capacity_gb'] = total_gbi
|
||||||
|
|
||||||
|
stats['backend_state'] = 'up'
|
||||||
except self.rados.Error:
|
except self.rados.Error:
|
||||||
# just log and return unknown capacities and let scheduler set
|
# just log and return unknown capacities and let scheduler set
|
||||||
# provisioned_capacity_gb = allocated_capacity_gb
|
# provisioned_capacity_gb = allocated_capacity_gb
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Allow rbd driver to report backend state.
|
Loading…
x
Reference in New Issue
Block a user