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
Zap(['--destroy', '--osd-id', osd_id]).main()
-common_args = {
+common_args: Dict[str, Any] = {
'--objectstore': {
'dest': 'objectstore',
'help': 'The OSD objectstore.',
},
}
-bluestore_args = {
+bluestore_args: Dict[str, Any] = {
'--bluestore': {
'action': 'store_true',
'help': 'Use the bluestore objectstore. (DEPRECATED: use --objectstore instead)',
}
-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
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 "
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())
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,