Add format option to benchmark info
Allows specifying of raw json or json-pretty formats in addition to the "pretty" formatted option.
This commit is contained in:
parent
9f6041b9cf
commit
1daab49b50
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
import math
|
import math
|
||||||
|
|
||||||
|
from json import dumps
|
||||||
from requests_toolbelt.multipart.encoder import MultipartEncoder, MultipartEncoderMonitor
|
from requests_toolbelt.multipart.encoder import MultipartEncoder, MultipartEncoderMonitor
|
||||||
|
|
||||||
import pvc.cli_lib.ansiprint as ansiprint
|
import pvc.cli_lib.ansiprint as ansiprint
|
||||||
|
@ -1601,7 +1602,7 @@ def format_list_benchmark_legacy(config, benchmark_information):
|
||||||
return '\n'.join(benchmark_list_output)
|
return '\n'.join(benchmark_list_output)
|
||||||
|
|
||||||
|
|
||||||
def format_info_benchmark(config, benchmark_information):
|
def format_info_benchmark(config, oformat, benchmark_information):
|
||||||
# This matrix is a list of the possible format functions for a benchmark result
|
# This matrix is a list of the possible format functions for a benchmark result
|
||||||
# It is extensable in the future should newer formats be required.
|
# It is extensable in the future should newer formats be required.
|
||||||
benchmark_matrix = {
|
benchmark_matrix = {
|
||||||
|
@ -1609,7 +1610,13 @@ def format_info_benchmark(config, benchmark_information):
|
||||||
}
|
}
|
||||||
|
|
||||||
benchmark_version = benchmark_information['test_format']
|
benchmark_version = benchmark_information['test_format']
|
||||||
return benchmark_matrix.get(benchmark_version, lambda: 'Invalid format function')(config, benchmark_information)
|
|
||||||
|
if oformat == 'json-pretty':
|
||||||
|
return dumps(benchmark_information, indent=4)
|
||||||
|
elif oformat == 'json':
|
||||||
|
return dumps(benchmark_information)
|
||||||
|
else:
|
||||||
|
return benchmark_matrix.get(benchmark_version, lambda: 'Invalid format function')(config, benchmark_information)
|
||||||
|
|
||||||
|
|
||||||
def format_info_benchmark_legacy(config, benchmark_information):
|
def format_info_benchmark_legacy(config, benchmark_information):
|
||||||
|
|
|
@ -2541,15 +2541,20 @@ def ceph_benchmark_run(pool):
|
||||||
@click.argument(
|
@click.argument(
|
||||||
'job', required=True
|
'job', required=True
|
||||||
)
|
)
|
||||||
|
@click.option(
|
||||||
|
'-f', '--format', 'oformat', default='pretty', show_default=True,
|
||||||
|
type=click.Choice(['pretty', 'json', 'json-pretty']),
|
||||||
|
help='Output format of benchmark information.'
|
||||||
|
)
|
||||||
@cluster_req
|
@cluster_req
|
||||||
def ceph_benchmark_info(job):
|
def ceph_benchmark_info(job, oformat):
|
||||||
"""
|
"""
|
||||||
Show full details of storage benchmark JOB.
|
Show full details of storage benchmark JOB.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
retcode, retdata = pvc_ceph.ceph_benchmark_list(config, job)
|
retcode, retdata = pvc_ceph.ceph_benchmark_list(config, job)
|
||||||
if retcode:
|
if retcode:
|
||||||
retdata = pvc_ceph.format_info_benchmark(config, retdata)
|
retdata = pvc_ceph.format_info_benchmark(config, oformat, retdata)
|
||||||
cleanup(retcode, retdata)
|
cleanup(retcode, retdata)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue