Merge "Check min config requirements for rbd driver"

This commit is contained in:
Jenkins 2016-01-22 05:47:45 +00:00 committed by Gerrit Code Review
commit 8f8f6cf072
2 changed files with 18 additions and 1 deletions

View File

@ -15,7 +15,7 @@
# License for the specific language governing permissions and limitations
# under the License.
import ddt
import math
import os
import tempfile
@ -122,6 +122,7 @@ CEPH_MON_DUMP = """dumped monmap epoch 1
"""
@ddt.ddt
class RBDTestCase(test.TestCase):
def setUp(self):
@ -154,6 +155,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

View File

@ -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.