# License for the specific language governing permissions and limitations
# under the License.
-
+import ddt
import math
import os
import tempfile
"""
+@ddt.ddt
class RBDTestCase(test.TestCase):
def setUp(self):
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
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.