From: Alfredo Deza Date: Tue, 11 Sep 2018 16:57:21 +0000 (-0400) Subject: ceph-volume tests verify strategy validators for minimum size X-Git-Tag: v12.2.9~127^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3382af978975b223fe9384ca73688214ae2c858f;p=ceph.git ceph-volume tests verify strategy validators for minimum size Signed-off-by: Alfredo Deza (cherry picked from commit 9167f76c2a7107c82b781cbe5f51e24ee72e4db4) --- 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 index 00000000000..e69de29bb2d 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 index 00000000000..315ec7c5b74 --- /dev/null +++ b/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_validate.py @@ -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)