Check min config requirements for rbd driver
The RBD driver should check that required configs are set on startup and fail to start if they are not. Co-Authored-By: Ivan Kolodyazhny <e0ne@e0ne.info> Change-Id: I73c9b65f6351b46210de2da29fe73df00d839b52 Closes-Bug: 1276626
This commit is contained in:
parent
e8efa5b364
commit
1a9d98bef3
@ -15,7 +15,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
import ddt
|
||||
import math
|
||||
import os
|
||||
import tempfile
|
||||
@ -121,6 +121,7 @@ CEPH_MON_DUMP = """dumped monmap epoch 1
|
||||
"""
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class RBDTestCase(test.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
@ -153,6 +154,17 @@ class RBDTestCase(test.TestCase):
|
||||
self.snapshot = dict(volume_name=self.volume_name,
|
||||
name=self.snapshot_name)
|
||||
|
||||
@ddt.data({'cluster_name': None, 'pool_name': 'rbd'},
|
||||
{'cluster_name': 'volumes', 'pool_name': None})
|
||||
@ddt.unpack
|
||||
def test_min_config(self, cluster_name, pool_name):
|
||||
self.cfg.rbd_cluster_name = cluster_name
|
||||
self.cfg.rbd_pool = pool_name
|
||||
|
||||
with mock.patch('cinder.volume.drivers.rbd.rados'):
|
||||
self.assertRaises(exception.InvalidConfigurationValue,
|
||||
self.driver.check_for_setup_error)
|
||||
|
||||
@common_mocks
|
||||
def test_create_volume(self):
|
||||
client = self.mock_client.return_value
|
||||
|
@ -290,6 +290,11 @@ class RBDDriver(driver.TransferVD, driver.ExtendVD,
|
||||
msg = _('rados and rbd python libraries not found')
|
||||
raise exception.VolumeBackendAPIException(data=msg)
|
||||
|
||||
for attr in ['rbd_cluster_name', 'rbd_pool']:
|
||||
val = getattr(self.configuration, attr)
|
||||
if not val:
|
||||
raise exception.InvalidConfigurationValue(option=attr,
|
||||
value=val)
|
||||
# NOTE: Checking connection to ceph
|
||||
# RADOSClient __init__ method invokes _connect_to_rados
|
||||
# so no need to check for self.rados.Error here.
|
||||
|
Loading…
Reference in New Issue
Block a user