Merge "Add argument 'osd_id' to 'osdize'"
This commit is contained in:
commit
0d8bfe8e10
|
@ -1514,11 +1514,11 @@ def get_devices(name):
|
|||
|
||||
|
||||
def osdize(dev, osd_format, osd_journal, ignore_errors=False, encrypt=False,
|
||||
bluestore=False, key_manager=CEPH_KEY_MANAGER):
|
||||
bluestore=False, key_manager=CEPH_KEY_MANAGER, osd_id=None):
|
||||
if dev.startswith('/dev'):
|
||||
osdize_dev(dev, osd_format, osd_journal,
|
||||
ignore_errors, encrypt,
|
||||
bluestore, key_manager)
|
||||
bluestore, key_manager, osd_id)
|
||||
else:
|
||||
if cmp_pkgrevno('ceph', '14.0.0') >= 0:
|
||||
log("Directory backed OSDs can not be created on Nautilus",
|
||||
|
@ -1528,7 +1528,8 @@ def osdize(dev, osd_format, osd_journal, ignore_errors=False, encrypt=False,
|
|||
|
||||
|
||||
def osdize_dev(dev, osd_format, osd_journal, ignore_errors=False,
|
||||
encrypt=False, bluestore=False, key_manager=CEPH_KEY_MANAGER):
|
||||
encrypt=False, bluestore=False, key_manager=CEPH_KEY_MANAGER,
|
||||
osd_id=None):
|
||||
"""
|
||||
Prepare a block device for use as a Ceph OSD
|
||||
|
||||
|
@ -1593,7 +1594,8 @@ def osdize_dev(dev, osd_format, osd_journal, ignore_errors=False,
|
|||
osd_journal,
|
||||
encrypt,
|
||||
bluestore,
|
||||
key_manager)
|
||||
key_manager,
|
||||
osd_id)
|
||||
else:
|
||||
cmd = _ceph_disk(dev,
|
||||
osd_format,
|
||||
|
@ -1677,7 +1679,7 @@ def _ceph_disk(dev, osd_format, osd_journal, encrypt=False, bluestore=False):
|
|||
|
||||
|
||||
def _ceph_volume(dev, osd_journal, encrypt=False, bluestore=False,
|
||||
key_manager=CEPH_KEY_MANAGER):
|
||||
key_manager=CEPH_KEY_MANAGER, osd_id=None):
|
||||
"""
|
||||
Prepare and activate a device for usage as a Ceph OSD using ceph-volume.
|
||||
|
||||
|
@ -1689,6 +1691,7 @@ def _ceph_volume(dev, osd_journal, encrypt=False, bluestore=False,
|
|||
:param: encrypt: Use block device encryption
|
||||
:param: bluestore: Use bluestore storage for OSD
|
||||
:param: key_manager: dm-crypt Key Manager to use
|
||||
:param: osd_id: The OSD-id to recycle, or None to create a new one
|
||||
:raises subprocess.CalledProcessError: in the event that any supporting
|
||||
LVM operation failed.
|
||||
:returns: list. 'ceph-volume' command and required parameters for
|
||||
|
@ -1710,6 +1713,9 @@ def _ceph_volume(dev, osd_journal, encrypt=False, bluestore=False,
|
|||
if encrypt and key_manager == CEPH_KEY_MANAGER:
|
||||
cmd.append('--dmcrypt')
|
||||
|
||||
if osd_id is not None:
|
||||
cmd.extend(['--osd-id', str(osd_id)])
|
||||
|
||||
# On-disk journal volume creation
|
||||
if not osd_journal and not bluestore:
|
||||
journal_lv_type = 'journal'
|
||||
|
|
|
@ -127,7 +127,41 @@ class CephTestCase(unittest.TestCase):
|
|||
_is_active_bluestore_device.return_value = False
|
||||
utils.osdize('/dev/sdb', osd_format='xfs', osd_journal=None,
|
||||
bluestore=False)
|
||||
_ceph_volume.assert_called_with('/dev/sdb', None, False, False, 'ceph')
|
||||
_ceph_volume.assert_called_with('/dev/sdb', None, False, False,
|
||||
'ceph', None)
|
||||
_check_call.assert_called_with(['ceph-volume', 'prepare'])
|
||||
db.get.assert_called_with('osd-devices', [])
|
||||
db.set.assert_called_with('osd-devices', ['/dev/sdb'])
|
||||
db.flush.assert_called_once()
|
||||
|
||||
@patch.object(utils, 'kv')
|
||||
@patch.object(utils.subprocess, 'check_call')
|
||||
@patch.object(utils, '_ceph_volume')
|
||||
@patch.object(utils, 'is_mapped_luks_device')
|
||||
@patch.object(utils, 'is_active_bluestore_device')
|
||||
@patch.object(utils.os.path, 'exists')
|
||||
@patch.object(utils, 'is_device_mounted')
|
||||
@patch.object(utils, 'cmp_pkgrevno')
|
||||
@patch.object(utils, 'is_block_device')
|
||||
def test_osdize_dev_ceph_volume_with_osdid(self, _is_blk, _cmp, _mounted,
|
||||
_exists, _is_mapped_luks_device,
|
||||
_is_active_bluestore_device,
|
||||
_ceph_volume, _check_call, _kv):
|
||||
"""Test that _ceph_volume is called with an OSD id."""
|
||||
db = MagicMock()
|
||||
_kv.return_value = db
|
||||
db.get.return_value = []
|
||||
_is_blk.return_value = True
|
||||
_mounted.return_value = False
|
||||
_exists.return_value = True
|
||||
_cmp.return_value = 1
|
||||
_ceph_volume.return_value = ['ceph-volume', 'prepare']
|
||||
_is_mapped_luks_device.return_value = False
|
||||
_is_active_bluestore_device.return_value = False
|
||||
utils.osdize('/dev/sdb', osd_format='xfs', osd_journal=None,
|
||||
bluestore=False, osd_id=123)
|
||||
_ceph_volume.assert_called_with('/dev/sdb', None, False, False,
|
||||
'ceph', 123)
|
||||
_check_call.assert_called_with(['ceph-volume', 'prepare'])
|
||||
db.get.assert_called_with('osd-devices', [])
|
||||
db.set.assert_called_with('osd-devices', ['/dev/sdb'])
|
||||
|
|
Loading…
Reference in New Issue