mirror of
https://github.com/ceph/ceph
synced 2025-03-11 02:39:05 +00:00
Move teuthology-nuke's arg parsing to scripts/
Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
This commit is contained in:
parent
9177513b58
commit
7ce4dfd97a
83
scripts/nuke.py
Normal file
83
scripts/nuke.py
Normal file
@ -0,0 +1,83 @@
|
||||
import argparse
|
||||
from argparse import RawTextHelpFormatter
|
||||
import textwrap
|
||||
|
||||
import teuthology.nuke
|
||||
|
||||
|
||||
def main():
|
||||
teuthology.nuke.main(parse_args())
|
||||
|
||||
|
||||
def parse_args():
|
||||
from teuthology.run import config_file
|
||||
from teuthology.run import MergeConfig
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Reset test machines',
|
||||
epilog=textwrap.dedent('''
|
||||
Examples:
|
||||
teuthology-nuke -t target.yaml --unlock --owner user@host
|
||||
teuthology-nuke -t target.yaml --pid 1234 --unlock --owner user@host \n
|
||||
'''),
|
||||
formatter_class=RawTextHelpFormatter)
|
||||
parser.add_argument(
|
||||
'-v', '--verbose',
|
||||
action='store_true', default=None,
|
||||
help='be more verbose'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-t', '--targets',
|
||||
nargs='+',
|
||||
type=config_file,
|
||||
action=MergeConfig,
|
||||
default={},
|
||||
dest='config',
|
||||
help='yaml config containing machines to nuke',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-a', '--archive',
|
||||
metavar='DIR',
|
||||
help='archive path for a job to kill and nuke',
|
||||
)
|
||||
parser.add_argument(
|
||||
'--owner',
|
||||
help='job owner',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-p',
|
||||
'--pid',
|
||||
type=int,
|
||||
default=False,
|
||||
help='pid of the process to be killed',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-r', '--reboot-all',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='reboot all machines',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-s', '--synch-clocks',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='synchronize clocks on all machines',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-u', '--unlock',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='Unlock each successfully nuked machine, and output targets that'
|
||||
'could not be nuked.'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-n', '--name',
|
||||
metavar='NAME',
|
||||
help='Name of run to cleanup'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-i', '--noipmi',
|
||||
action='store_true', default=False,
|
||||
help='Skip ipmi checking'
|
||||
)
|
||||
return parser.parse_args()
|
2
setup.py
2
setup.py
@ -17,7 +17,7 @@ setup(
|
||||
entry_points={
|
||||
'console_scripts': [
|
||||
'teuthology = teuthology.run:main',
|
||||
'teuthology-nuke = teuthology.nuke:main',
|
||||
'teuthology-nuke = scripts.nuke:main',
|
||||
'teuthology-suite = teuthology.suite:main',
|
||||
'teuthology-ls = teuthology.suite:ls',
|
||||
'teuthology-worker = teuthology.queue:worker',
|
||||
|
@ -1,82 +1,5 @@
|
||||
import argparse
|
||||
import yaml
|
||||
import textwrap
|
||||
from argparse import RawTextHelpFormatter
|
||||
|
||||
|
||||
def parse_args():
|
||||
from teuthology.run import config_file
|
||||
from teuthology.run import MergeConfig
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Reset test machines',
|
||||
epilog=textwrap.dedent('''
|
||||
Examples:
|
||||
teuthology-nuke -t target.yaml --unlock --owner user@host
|
||||
teuthology-nuke -t target.yaml --pid 1234 --unlock --owner user@host \n
|
||||
'''),
|
||||
formatter_class=RawTextHelpFormatter)
|
||||
parser.add_argument(
|
||||
'-v', '--verbose',
|
||||
action='store_true', default=None,
|
||||
help='be more verbose'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-t', '--targets',
|
||||
nargs='+',
|
||||
type=config_file,
|
||||
action=MergeConfig,
|
||||
default={},
|
||||
dest='config',
|
||||
help='yaml config containing machines to nuke',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-a', '--archive',
|
||||
metavar='DIR',
|
||||
help='archive path for a job to kill and nuke',
|
||||
)
|
||||
parser.add_argument(
|
||||
'--owner',
|
||||
help='job owner',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-p',
|
||||
'--pid',
|
||||
type=int,
|
||||
default=False,
|
||||
help='pid of the process to be killed',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-r', '--reboot-all',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='reboot all machines',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-s', '--synch-clocks',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='synchronize clocks on all machines',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-u', '--unlock',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='Unlock each successfully nuked machine, and output targets that'
|
||||
'could not be nuked.'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-n', '--name',
|
||||
metavar='NAME',
|
||||
help='Name of run to cleanup'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-i', '--noipmi',
|
||||
action='store_true', default=False,
|
||||
help='Skip ipmi checking'
|
||||
)
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
|
||||
def shutdown_daemons(ctx, log):
|
||||
@ -341,10 +264,10 @@ def synch_clocks(remotes, log):
|
||||
proc.exitstatus.get()
|
||||
|
||||
|
||||
def main():
|
||||
def main(ctx):
|
||||
import gevent.monkey
|
||||
gevent.monkey.patch_all(dns=False)
|
||||
from .orchestra import monkey
|
||||
from teuthology.orchestra import monkey
|
||||
monkey.patch_all()
|
||||
from teuthology.run import config_file
|
||||
import os
|
||||
@ -353,15 +276,13 @@ def main():
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
ctx = parse_args()
|
||||
|
||||
loglevel = logging.INFO
|
||||
if ctx.verbose:
|
||||
loglevel = logging.DEBUG
|
||||
|
||||
logging.basicConfig(
|
||||
level=loglevel,
|
||||
)
|
||||
)
|
||||
|
||||
info = {}
|
||||
if ctx.archive:
|
||||
@ -378,7 +299,6 @@ def main():
|
||||
ctx.owner = info.get('owner')
|
||||
if not ctx.owner:
|
||||
ctx.owner = open(ctx.archive + '/owner').read().rstrip('\n')
|
||||
ctx.name = info.get('name')
|
||||
|
||||
from teuthology.misc import read_config
|
||||
read_config(ctx)
|
||||
|
Loading…
Reference in New Issue
Block a user