]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume: add type annotations to devices.lvm.common
authorGuillaume Abrioux <gabrioux@ibm.com>
Wed, 8 Jan 2025 15:52:21 +0000 (15:52 +0000)
committerGuillaume Abrioux <gabrioux@ibm.com>
Mon, 24 Feb 2025 11:54:16 +0000 (11:54 +0000)
This commit adds the Python type annotations to `devices.lvm.common`.

Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 93827e8703d9c2b8b829d5b6608340b05d65b842)

src/ceph-volume/ceph_volume/devices/lvm/common.py
src/ceph-volume/ceph_volume/devices/lvm/create.py
src/ceph-volume/ceph_volume/objectstore/lvmbluestore.py
src/ceph-volume/ceph_volume/objectstore/rawbluestore.py
src/ceph-volume/ceph_volume/tests/objectstore/test_lvmbluestore.py
src/ceph-volume/ceph_volume/tests/objectstore/test_rawbluestore.py

index e18d98bb6fbd97cc422b9b20de3015e6f90e8f0d..a74931155c25aa933c6aea6f724719701addcae4 100644 (file)
@@ -3,8 +3,9 @@ from ceph_volume import process, conf
 from ceph_volume import terminal
 from ceph_volume.devices.lvm.zap import Zap
 import argparse
+from typing import Any, Dict, Optional
 
-def rollback_osd(args, osd_id=None):
+def rollback_osd(osd_id: Optional[str] = None) -> None:
     """
     When the process of creating or preparing fails, the OSD needs to be
     destroyed so that the ID can be reused.  This prevents from leaving the ID
@@ -35,7 +36,7 @@ def rollback_osd(args, osd_id=None):
     Zap(['--destroy', '--osd-id', osd_id]).main()
 
 
-common_args = {
+common_args: Dict[str, Any] = {
     '--objectstore': {
         'dest': 'objectstore',
         'help': 'The OSD objectstore.',
@@ -95,7 +96,7 @@ common_args = {
     },
 }
 
-bluestore_args = {
+bluestore_args: Dict[str, Any] = {
     '--bluestore': {
         'action': 'store_true',
         'help': 'Use the bluestore objectstore. (DEPRECATED: use --objectstore instead)',
@@ -139,16 +140,16 @@ bluestore_args = {
 }
 
 
-def get_default_args():
+def get_default_args() -> Dict[str, Any]:
     defaults = {}
-    def format_name(name):
+    def format_name(name: str) -> str:
         return name.strip('-').replace('-', '_').replace('.', '_')
     for argset in (common_args, bluestore_args):
         defaults.update({format_name(name): val.get('default', None) for name, val in argset.items()})
     return defaults
 
 
-def common_parser(prog, description):
+def common_parser(prog: str, description: str) -> argparse.ArgumentParser:
     """
     Both prepare and create share the same parser, those are defined here to
     avoid duplication
index c1914fe8e9772ce11a0a301a0e60882718cf65ca..70113346c29e7801d11029f75086e39770a77168 100644 (file)
@@ -38,7 +38,7 @@ class Create(object):
                 except Exception:
                     logger.exception('lvm activate was unable to complete, while creating the OSD')
                     logger.info('will rollback OSD ID creation')
-                    rollback_osd(self.args, osd_id)
+                    rollback_osd(osd_id)
                     raise
                 terminal.success("ceph-volume lvm create successful for: %s" % self.args.data)
 
index 1662ae3f1bce831b03c93fc7b7a38e3996d12588..fa3fb43261fcbcc7e815f83683fc0754b144c5e4 100644 (file)
@@ -131,7 +131,7 @@ class LvmBlueStore(BlueStore):
         except Exception:
             logger.exception('lvm prepare was unable to complete')
             logger.info('will rollback OSD ID creation')
-            rollback_osd(self.args, self.osd_id)
+            rollback_osd(self.osd_id)
             raise
         terminal.success("ceph-volume lvm prepare successful for: %s" %
                          self.args.data)
index 16775042597102a9b782b038f50a685ecff1e4d0..3065342c7a91f1449f48f1246aafbcca1078ecff 100644 (file)
@@ -75,7 +75,7 @@ class RawBlueStore(BlueStore):
         except Exception:
             logger.exception('raw prepare was unable to complete')
             logger.info('will rollback OSD ID creation')
-            rollback_osd(self.args, self.osd_id)
+            rollback_osd(self.osd_id)
             raise
         dmcrypt_log = 'dmcrypt' if hasattr(args, 'dmcrypt') else 'clear'
         terminal.success("ceph-volume raw {} prepare "
index 2dc089267a4b59cd3c5613b8b40af66abc02c6b6..eed1f35f68bd7449b66eac59847d49100c4c81b6 100644 (file)
@@ -188,7 +188,7 @@ class TestLvmBlueStore:
         m_rollback_osd.return_value = MagicMock()
         with pytest.raises(Exception):
             self.lvm_bs.safe_prepare()
-        assert m_rollback_osd.mock_calls == [call(self.lvm_bs.args, '111')]
+        assert m_rollback_osd.mock_calls == [call('111')]
 
     @patch('ceph_volume.objectstore.baseobjectstore.BaseObjectStore.get_ptuuid', Mock(return_value='c6798f59-01'))
     @patch('ceph_volume.api.lvm.Volume.set_tags', MagicMock())
index fd7c468037c5c9e66048532e32eb0335f815546e..138ec828d8b8cafa469bc1ba5fd78ed5512f657a 100644 (file)
@@ -60,7 +60,7 @@ class TestRawBlueStore:
         self.raw_bs.osd_id = self.raw_bs.args.osd_id
         with pytest.raises(Exception):
             self.raw_bs.safe_prepare()
-        assert m_rollback_osd.mock_calls == [call(self.raw_bs.args, '1')]
+        assert m_rollback_osd.mock_calls == [call('1')]
 
     @patch('ceph_volume.objectstore.rawbluestore.RawBlueStore.prepare', MagicMock())
     def test_safe_prepare(self,