11from __future__ import print_function
22import logging
3+ import argparse
34from textwrap import dedent
45from ceph_volume import objectstore
56from .common import prepare_parser
6-
7+ from typing import List , Optional
78
89logger = logging .getLogger (__name__ )
910
@@ -12,13 +13,13 @@ class Prepare(object):
1213
1314 help = 'Format an LVM device and associate it with an OSD'
1415
15- def __init__ (self , argv , args = None ):
16- self .objectstore = None
16+ def __init__ (self , argv : Optional [ List [ str ]] = None , args : Optional [ argparse . Namespace ] = None ) -> None :
17+ self .objectstore : Optional [ objectstore . baseobjectstore . BaseObjectStore ] = None
1718 self .argv = argv
1819 self .args = args
1920 self .osd_id = None
2021
21- def main (self ):
22+ def main (self ) -> None :
2223 sub_command_help = dedent ("""
2324 Prepare an OSD by assigning an ID and FSID, registering them with the
2425 cluster with an ID and FSID, formatting and mounting the volume, and
@@ -48,6 +49,8 @@ def main(self):
4849 prog = 'ceph-volume lvm prepare' ,
4950 description = sub_command_help ,
5051 )
52+ if self .argv is None :
53+ self .argv = []
5154 if len (self .argv ) == 0 and self .args is None :
5255 print (sub_command_help )
5356 return
@@ -56,4 +59,7 @@ def main(self):
5659 if self .args .bluestore :
5760 self .args .objectstore = 'bluestore'
5861 self .objectstore = objectstore .mapping ['LVM' ][self .args .objectstore ](args = self .args )
59- self .objectstore .safe_prepare ()
62+ if self .objectstore is not None :
63+ self .objectstore .safe_prepare ()
64+ else :
65+ raise RuntimeError ('Unexpected error while setting objectore backend.' )
0 commit comments