]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume tests verify strategy validators for minimum size
authorAlfredo Deza <adeza@redhat.com>
Tue, 11 Sep 2018 16:57:21 +0000 (12:57 -0400)
committerAlfredo Deza <adeza@redhat.com>
Wed, 12 Sep 2018 18:58:51 +0000 (14:58 -0400)
Signed-off-by: Alfredo Deza <adeza@redhat.com>
src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/__init__.py [new file with mode: 0644]
src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_validate.py [new file with mode: 0644]

diff --git a/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/__init__.py b/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_validate.py b/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_validate.py
new file mode 100644 (file)
index 0000000..315ec7c
--- /dev/null
@@ -0,0 +1,52 @@
+import pytest
+from ceph_volume.util import disk
+from ceph_volume.devices.lvm.strategies import validators
+
+
+class TestMinimumDeviceSize(object):
+
+    def test_size_is_larger_than_5gb(self, fakedevice):
+        devices = [fakedevice(sys_api=dict(size=6073740000))]
+        assert validators.minimum_device_size(devices) is None
+
+    def test_size_is_smaller_than_5gb(self, fakedevice):
+        devices = [fakedevice(sys_api=dict(size=1073740000))]
+        with pytest.raises(RuntimeError) as error:
+            validators.minimum_device_size(devices)
+        msg = "LVs would be smaller than 5GB"
+        assert msg in str(error)
+
+    def test_large_device_multiple_osds_fails(self, fakedevice):
+        devices = [fakedevice(sys_api=dict(size=6073740000))]
+        with pytest.raises(RuntimeError) as error:
+            validators.minimum_device_size(
+                devices, osds_per_device=4
+            )
+        msg = "LVs would be smaller than 5GB"
+        assert msg in str(error)
+
+
+class TestMinimumCollocatedDeviceSize(object):
+
+    def setup(self):
+        self.journal_size = disk.Size(gb=5)
+
+    def test_size_is_larger_than_5gb_large_journal(self, fakedevice):
+        devices = [fakedevice(sys_api=dict(size=6073740000))]
+        assert validators.minimum_device_collocated_size(devices, disk.Size(mb=1)) is None
+
+    def test_size_is_larger_than_5gb_large_journal_fails(self, fakedevice):
+        devices = [fakedevice(sys_api=dict(size=1073740000))]
+        with pytest.raises(RuntimeError) as error:
+            validators.minimum_device_collocated_size(devices, self.journal_size)
+        msg = "LVs would be smaller than 5GB"
+        assert msg in str(error)
+
+    def test_large_device_multiple_osds_fails(self, fakedevice):
+        devices = [fakedevice(sys_api=dict(size=16073740000))]
+        with pytest.raises(RuntimeError) as error:
+            validators.minimum_device_collocated_size(
+                devices, self.journal_size, osds_per_device=3
+            )
+        msg = "LVs would be smaller than 5GB"
+        assert msg in str(error)