From 8093f1bff3385f0dd836bd4b9c349fd0ba0959d3 Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Fri, 24 Apr 2026 10:19:11 +0200 Subject: [PATCH] ceph-volume: add tests for raw prepare --osd-fsid Add unit tests to cover the raw prepare help text for --osd-fsid, assert generate_uuid is used when no osd_fsid is supplied and assert an externally provided osd_fsid is passed through to create_id without generating a new UUID. Signed-off-by: Guillaume Abrioux --- .../tests/devices/raw/test_prepare.py | 1 + .../ceph_volume/tests/objectstore/test_raw.py | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/ceph-volume/ceph_volume/tests/devices/raw/test_prepare.py b/src/ceph-volume/ceph_volume/tests/devices/raw/test_prepare.py index 248121b93645..5d4c2e331403 100644 --- a/src/ceph-volume/ceph_volume/tests/devices/raw/test_prepare.py +++ b/src/ceph-volume/ceph_volume/tests/devices/raw/test_prepare.py @@ -46,6 +46,7 @@ class TestPrepare(object): assert 'Path to bluestore block.db block device' in stdout assert 'Path to bluestore block.wal block device' in stdout assert 'Enable device encryption via dm-crypt' in stdout + assert 'Reuse an existing OSD fsid' in stdout @patch('ceph_volume.util.arg_validators.set_dmcrypt_no_workqueue', return_value=MagicMock()) @patch('ceph_volume.util.arg_validators.ValidRawDevice.__call__') diff --git a/src/ceph-volume/ceph_volume/tests/objectstore/test_raw.py b/src/ceph-volume/ceph_volume/tests/objectstore/test_raw.py index ba244d05e18d..4b297980b163 100644 --- a/src/ceph-volume/ceph_volume/tests/objectstore/test_raw.py +++ b/src/ceph-volume/ceph_volume/tests/objectstore/test_raw.py @@ -92,6 +92,34 @@ class TestRaw: assert self.raw_bs.prepare_osd_req.mock_calls == [call(tmpfs=True)] assert self.raw_bs.osd_mkfs.called assert self.raw_bs.prepare_dmcrypt.called + m_generate_uuid.assert_called_once() + + @patch('ceph_volume.objectstore.raw.nvme_utils.preformat', return_value=False) + @patch('ceph_volume.objectstore.raw.prepare_utils.create_id') + @patch('ceph_volume.objectstore.raw.system.generate_uuid') + def test_prepare_uses_external_osd_fsid(self, + m_generate_uuid, + m_create_id, + m_nvme_preformat, + is_root, + factory): + external = '824f7edf-371f-4b75-9231-4ab62a32d5c0' + m_create_id.return_value = MagicMock() + args = factory(crush_device_class=None, no_tmpfs=True, osd_fsid=external) + args.data = '/dev/sdx' + self.raw_bs.args = args + self.raw_bs.osd_fsid = getattr(args, 'osd_fsid', '') + self.raw_bs.block_device_path = args.data + self.raw_bs.prepare_dmcrypt = MagicMock() + self.raw_bs.prepare_osd_req = MagicMock() + self.raw_bs.osd_mkfs = MagicMock() + self.raw_bs.secrets = {} + self.raw_bs.encrypted = False + self.raw_bs.prepare() + m_generate_uuid.assert_not_called() + m_create_id.assert_called_once() + assert m_create_id.call_args[0][0] == external + assert self.raw_bs.osd_fsid == external @patch('ceph_volume.objectstore.raw.nvme_utils.preformat', return_value=True) @patch('ceph_volume.objectstore.raw.prepare_utils.create_id') -- 2.47.3