From 7ccd4dde3902c70cfabfddb6f8e2dd995e8fa91e Mon Sep 17 00:00:00 2001 From: Travis Rhoden Date: Tue, 30 Jun 2015 13:44:29 -0700 Subject: [PATCH] [RM-12151] Move disk subcmds to subparser Signed-off-by: Travis Rhoden --- ceph_deploy/osd.py | 69 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 17 deletions(-) diff --git a/ceph_deploy/osd.py b/ceph_deploy/osd.py index c7ea7dd..9a1e9c8 100644 --- a/ceph_deploy/osd.py +++ b/ceph_deploy/osd.py @@ -767,46 +767,81 @@ def make_disk(parser): """ 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, ) -- 2.47.3