ungleich-ceph tool initial commit.
This commit is contained in:
parent
a67c72124b
commit
dc191f6fe5
1 changed files with 57 additions and 0 deletions
57
ungleich-ceph.py
Executable file
57
ungleich-ceph.py
Executable file
|
@ -0,0 +1,57 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
|
||||
|
||||
def do_full_disk(args):
|
||||
print("full disk mode")
|
||||
|
||||
|
||||
def do_rest_of_disk(args):
|
||||
print("rest of disk mode")
|
||||
|
||||
|
||||
MODES = {
|
||||
"full-disk": do_full_disk,
|
||||
"rest-of-disk": do_rest_of_disk,
|
||||
}
|
||||
|
||||
|
||||
def check_mode(value):
|
||||
if value not in MODES:
|
||||
raise argparse.ArgumentTypeError("Invalid mode {}".format(value))
|
||||
return value
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-c', action='store', dest='class', required=False,
|
||||
help=('device class, e.g. hdd or ssd (only used in '
|
||||
'rest-of-disk mode)'))
|
||||
parser.add_argument('-F', action='store_true', dest='fullsize',
|
||||
required=False, default=False,
|
||||
help='use fullsize (only used in full-disk mode)')
|
||||
parser.add_argument('-m', action='store', dest='mode', required=True,
|
||||
type=check_mode,
|
||||
help=('operate in specified mode: full-disk, '
|
||||
'rest-of-disk'))
|
||||
parser.add_argument('-n', action='store_true', dest='dry_run',
|
||||
required=False, default=False,
|
||||
help=('do not execute code, only print what would '
|
||||
'be done'))
|
||||
parser.add_argument('-w', action='store', dest='weight', required=False,
|
||||
help=('OSD weight (only used in rest-of-disk mode)'))
|
||||
parser.add_argument('device', nargs='+', help='device to create OSD on')
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
print(args)
|
||||
mode = args.mode
|
||||
MODES[mode](args)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in a new issue