]>
git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/test/bdev/bdevio/tests.py
3 from rpc
.client
import print_dict
, JSONRPCException
12 from shlex
import quote
14 from pipes
import quote
18 print(" ".join((quote(v
) for v
in a
)))
21 def perform_tests_func(client
, name
=None):
25 name: bdev name to perform bdevio tests on (optional; if omitted, test all bdevs)
28 Number of failures in tests. 0 means no errors found.
33 return client
.call('perform_tests', params
)
36 if __name__
== "__main__":
37 parser
= argparse
.ArgumentParser(
38 description
='SPDK RPC command line interface. NOTE: spdk/scripts/ is expected in PYTHONPATH')
39 parser
.add_argument('-s', dest
='server_addr',
40 help='RPC domain socket path or IP address', default
='/var/tmp/spdk.sock')
41 parser
.add_argument('-p', dest
='port',
42 help='RPC port number (if server_addr is IP address)',
43 default
=5260, type=int)
44 parser
.add_argument('-t', dest
='timeout',
45 help='Timeout as a floating point number expressed in seconds waiting for response. Default: 60.0',
46 default
=60.0, type=float)
47 parser
.add_argument('-v', dest
='verbose', action
='store_const', const
="INFO",
48 help='Set verbose mode to INFO', default
="ERROR")
49 parser
.add_argument('--verbose', dest
='verbose', choices
=['DEBUG', 'INFO', 'ERROR'],
50 help="""Set verbose level. """)
51 subparsers
= parser
.add_subparsers(help='RPC methods')
53 def perform_tests(args
):
54 print_dict(perform_tests_func(args
.client
, name
=args
.name
))
56 p
= subparsers
.add_parser('perform_tests', help='Perform all bdevio tests on select bdev')
57 p
.add_argument('-b', '--name', help="Name of the Blockdev. Example: Nvme0n1")
58 p
.set_defaults(func
=perform_tests
)
60 def call_rpc_func(args
):
63 except JSONRPCException
as ex
:
67 def execute_script(parser
, client
, fd
):
68 for rpc_call
in map(str.rstrip
, fd
):
69 if not rpc_call
.strip():
71 args
= parser
.parse_args(shlex
.split(rpc_call
))
75 args
= parser
.parse_args()
76 args
.client
= rpc
.client
.JSONRPCClient(args
.server_addr
, args
.port
, args
.timeout
, log_level
=getattr(logging
, args
.verbose
.upper()))
77 if hasattr(args
, 'func'):
79 elif sys
.stdin
.isatty():
80 # No arguments and no data piped through stdin
84 execute_script(parser
, args
.client
, sys
.stdin
)