"""
Manage disks on a remote host.
"""
- parser.add_argument(
- 'subcommand',
- metavar='SUBCOMMAND',
- choices=[
- 'list',
- 'prepare',
- 'activate',
- 'zap',
- ],
- help='list, prepare, activate, zap',
+ disk_parser = parser.add_subparsers(dest='subcommand')
+
+ disk_zap = disk_parser.add_parser(
+ 'zap',
+ help='destroy existing partition table and content for DISK',
)
- parser.add_argument(
+ disk_zap.add_argument(
'disk',
nargs='+',
metavar='HOST:DISK',
type=colon_separated,
- help='host and disk (or path)',
+ help='host and disk'
+ )
+
+ disk_list = disk_parser.add_parser(
+ 'list',
+ help='List disk info from remote host(s)'
)
- parser.add_argument(
+ disk_list.add_argument(
+ 'disk',
+ nargs='+',
+ metavar='HOST:DISK',
+ type=colon_separated,
+ help='remote host to list OSDs from'
+ )
+
+ disk_prepare = disk_parser.add_parser(
+ 'prepare',
+ help='Prepare a disk for use as Ceph OSD by formatting/partitioning disk'
+ )
+ disk_prepare.add_argument(
'--zap-disk',
action='store_true', default=None,
help='destroy existing partition table and content for DISK',
)
- parser.add_argument(
+ disk_prepare.add_argument(
'--fs-type',
metavar='FS_TYPE',
+ choices=['xfs',
+ 'ext4',
+ 'btrfs'
+ ],
default='xfs',
- help='filesystem to use to format DISK (xfs, btrfs or ext4)'
+ help='filesystem to use to format DISK (xfs, btrfs, or ext4)',
)
- parser.add_argument(
+ disk_prepare.add_argument(
'--dmcrypt',
action='store_true', default=None,
help='use dm-crypt on DISK',
)
- parser.add_argument(
+ disk_prepare.add_argument(
'--dmcrypt-key-dir',
metavar='KEYDIR',
default='/etc/ceph/dmcrypt-keys',
help='directory where dm-crypt keys are stored',
)
+ disk_prepare.add_argument(
+ 'disk',
+ nargs='+',
+ metavar='HOST:DISK',
+ type=colon_separated,
+ help='host and disk to prepare',
+ )
+
+ disk_activate = disk_parser.add_parser(
+ 'activate',
+ help='Start (activate) Ceph OSD from disk that was previously prepared'
+ )
+ disk_activate.add_argument(
+ 'disk',
+ nargs='+',
+ metavar='HOST:DISK',
+ type=colon_separated,
+ help='host and disk to activate',
+ )
parser.set_defaults(
func=disk,
)