class TestSingleType(object):
def test_hdd_device_is_large_enough(self, fakedevice, factory):
- args = factory(osds_per_device=1, block_db_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, block_db_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
]
computed_osd = bluestore.SingleType(devices, args).computed['osds'][0]
assert computed_osd['data']['percentage'] == 100
assert computed_osd['data']['path'] == '/dev/sda'
def test_sdd_device_is_large_enough(self, fakedevice, factory):
- args = factory(osds_per_device=1, block_db_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, block_db_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
]
computed_osd = bluestore.SingleType(devices, args).computed['osds'][0]
assert computed_osd['data']['percentage'] == 100
assert computed_osd['data']['path'] == '/dev/sda'
def test_device_cannot_have_many_osds_per_device(self, fakedevice, factory):
- args = factory(osds_per_device=3, block_db_size=None)
+ args = factory(filtered_devices=[], osds_per_device=3, block_db_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
]
with pytest.raises(RuntimeError) as error:
bluestore.SingleType(devices, args)
assert 'Unable to use device 5.66 GB /dev/sda' in str(error)
def test_device_is_lvm_member_fails(self, fakedevice, factory):
- args = factory(osds_per_device=1, block_db_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, block_db_size=None)
devices = [
- fakedevice(is_lvm_member=True, sys_api=dict(rotational='1', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=True, sys_api=dict(rotational='1', size=6073740000))
]
with pytest.raises(RuntimeError) as error:
bluestore.SingleType(devices, args)
def test_hdd_device_is_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph):
# 3GB block.db in ceph.conf
conf_ceph(get_safe=lambda *a: 3147483640)
- args = factory(osds_per_device=1, block_db_size=None)
- ssd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
- hdd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ args = factory(filtered_devices=[], osds_per_device=1, block_db_size=None)
+ ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
+ hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
devices = [ssd, hdd]
osd = bluestore.MixedType(devices, args).computed['osds'][0]
def test_ssd_device_is_not_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph):
# 7GB block.db in ceph.conf
conf_ceph(get_safe=lambda *a: 7747483640)
- args = factory(osds_per_device=1, block_db_size=None)
- ssd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
- hdd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ args = factory(filtered_devices=[], osds_per_device=1, block_db_size=None)
+ ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
+ hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
devices = [ssd, hdd]
with pytest.raises(RuntimeError) as error:
def test_multi_hdd_device_is_not_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph):
# 3GB block.db in ceph.conf
conf_ceph(get_safe=lambda *a: 3147483640)
- args = factory(osds_per_device=2, block_db_size=None)
- ssd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=60737400000))
- hdd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ args = factory(filtered_devices=[], osds_per_device=2, block_db_size=None)
+ ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=60737400000))
+ hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
devices = [ssd, hdd]
with pytest.raises(RuntimeError) as error:
def test_hdd_device_is_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: None)
- args = factory(osds_per_device=1, block_db_size=None)
- ssd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
- hdd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ args = factory(filtered_devices=[], osds_per_device=1, block_db_size=None)
+ ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
+ hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
devices = [ssd, hdd]
osd = bluestore.MixedType(devices, args).computed['osds'][0]
def test_multi_hdd_device_is_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: None)
- args = factory(osds_per_device=2, block_db_size=None)
- ssd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=60073740000))
- hdd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=60073740000))
+ args = factory(filtered_devices=[], osds_per_device=2, block_db_size=None)
+ ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=60073740000))
+ hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=60073740000))
devices = [ssd, hdd]
osd = bluestore.MixedType(devices, args).computed['osds'][0]
def test_multi_hdd_device_is_not_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: None)
- args = factory(osds_per_device=2, block_db_size=None)
- ssd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=60737400000))
- hdd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ args = factory(filtered_devices=[], osds_per_device=2, block_db_size=None)
+ ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=60737400000))
+ hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
devices = [ssd, hdd]
with pytest.raises(RuntimeError) as error:
def test_hdd_device_is_large_enough(self, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '5120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=12073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=12073740000))
]
computed_osd = filestore.SingleType(devices, args).computed['osds'][0]
assert computed_osd['data']['percentage'] == 55
def test_hdd_device_with_large_journal(self, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '5120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
]
with pytest.raises(RuntimeError) as error:
filestore.SingleType(devices, args)
def test_ssd_device_is_large_enough(self, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '5120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=12073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=12073740000))
]
computed_osd = filestore.SingleType(devices, args).computed['osds'][0]
assert computed_osd['data']['percentage'] == 55
def test_ssd_device_with_large_journal(self, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '5120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
]
with pytest.raises(RuntimeError) as error:
filestore.SingleType(devices, args)
def test_ssd_device_multi_osd(self, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '5120')
- args = factory(osds_per_device=4, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=4, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=16073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=16073740000))
]
with pytest.raises(RuntimeError) as error:
filestore.SingleType(devices, args)
def test_hdd_device_multi_osd(self, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '5120')
- args = factory(osds_per_device=4, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=4, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=16073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=16073740000))
]
with pytest.raises(RuntimeError) as error:
filestore.SingleType(devices, args)
def test_device_is_lvm_member_fails(self, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '5120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [
- fakedevice(is_lvm_member=True, sys_api=dict(rotational='1', size=12073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=True, sys_api=dict(rotational='1', size=12073740000))
]
with pytest.raises(RuntimeError) as error:
filestore.SingleType(devices, args)
def test_hdd_device_with_small_configured_journal(self, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
]
with pytest.raises(RuntimeError) as error:
filestore.SingleType(devices, args)
def test_ssd_device_with_small_configured_journal(self, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000))
]
with pytest.raises(RuntimeError) as error:
filestore.SingleType(devices, args)
def test_minimum_size_is_not_met(self, stub_vgs, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000)),
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000)),
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
]
with pytest.raises(RuntimeError) as error:
filestore.MixedType(devices, args)
def test_ssd_device_is_not_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '7120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000)),
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000)),
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
]
with pytest.raises(RuntimeError) as error:
filestore.MixedType(devices, args)
def test_hdd_device_is_lvm_member_fails(self, stub_vgs, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '5120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [
- fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000)),
- fakedevice(is_lvm_member=True, sys_api=dict(rotational='1', size=6073740000))
+ fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='0', size=6073740000)),
+ fakedevice(used_by_ceph=False, is_lvm_member=True, sys_api=dict(rotational='1', size=6073740000))
]
with pytest.raises(RuntimeError) as error:
filestore.MixedType(devices, args)
# fast PV, because ssd is an LVM member
CephPV = lvm.PVolume(vg_name='fast', pv_name='/dev/sda', pv_tags='')
ssd = fakedevice(
- is_lvm_member=True, sys_api=dict(rotational='0', size=6073740000), pvs_api=[CephPV]
+ used_by_ceph=False, is_lvm_member=True, sys_api=dict(rotational='0', size=6073740000), pvs_api=[CephPV]
)
- hdd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
# when get_api_vgs() gets called, it will return this one VG
stub_vgs([
dict(
])
conf_ceph(get_safe=lambda *a: '5120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [ssd, hdd]
result = filestore.MixedType(devices, args).computed['osds'][0]
assert result['journal']['path'] == 'vg: fast'
CephPV1 = lvm.PVolume(vg_name='fast1', pv_name='/dev/sda', pv_tags='')
CephPV2 = lvm.PVolume(vg_name='fast2', pv_name='/dev/sdb', pv_tags='')
ssd1 = fakedevice(
- is_lvm_member=True, sys_api=dict(rotational='0', size=6073740000), pvs_api=[CephPV1]
+ used_by_ceph=False, is_lvm_member=True, sys_api=dict(rotational='0', size=6073740000), pvs_api=[CephPV1]
)
ssd2 = fakedevice(
- is_lvm_member=True, sys_api=dict(rotational='0', size=6073740000), pvs_api=[CephPV2]
+ used_by_ceph=False, is_lvm_member=True, sys_api=dict(rotational='0', size=6073740000), pvs_api=[CephPV2]
)
- hdd = fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
+ hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, sys_api=dict(rotational='1', size=6073740000))
# when get_api_vgs() gets called, it will return this one VG
stub_vgs([
dict(
])
conf_ceph(get_safe=lambda *a: '5120')
- args = factory(osds_per_device=1, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=1, journal_size=None)
devices = [ssd1, ssd2, hdd]
with pytest.raises(RuntimeError) as error:
filestore.MixedType(devices, args)
def test_ssd_device_fails_multiple_osds(self, stub_vgs, fakedevice, factory, conf_ceph):
conf_ceph(get_safe=lambda *a: '15120')
- args = factory(osds_per_device=2, journal_size=None)
+ args = factory(filtered_devices=[], osds_per_device=2, journal_size=None)
devices = [
fakedevice(is_lvm_member=False, sys_api=dict(rotational='0', size=16073740000)),
fakedevice(is_lvm_member=False, sys_api=dict(rotational='1', size=16073740000))