diff --git a/show/main.py b/show/main.py index 735ebf1d27..59e4bb2421 100755 --- a/show/main.py +++ b/show/main.py @@ -17,6 +17,7 @@ from swsssdk import SonicV2Connector from tabulate import tabulate import mlnx +import utilities_common.cli as clicommon import utilities_common.multi_asic as multi_asic_util SONIC_CFGGEN_PATH = '/usr/local/bin/sonic-cfggen' @@ -1509,6 +1510,7 @@ def get_hw_info_dict(): hw_info_dict['platform'] = device_info.get_platform() hw_info_dict['hwsku'] = device_info.get_hwsku() hw_info_dict['asic_type'] = version_info['asic_type'] + hw_info_dict['asic_count'] = device_info.get_num_npus() return hw_info_dict @@ -1523,12 +1525,18 @@ def platform(): # 'summary' subcommand ("show platform summary") @platform.command() -def summary(): +@click.option('--json', is_flag=True, help="JSON output") +def summary(json): """Show hardware platform information""" + hw_info_dict = get_hw_info_dict() - click.echo("Platform: {}".format(hw_info_dict['platform'])) - click.echo("HwSKU: {}".format(hw_info_dict['hwsku'])) - click.echo("ASIC: {}".format(hw_info_dict['asic_type'])) + if json: + click.echo(clicommon.json_dump(hw_info_dict)) + else: + click.echo("Platform: {}".format(hw_info_dict['platform'])) + click.echo("HwSKU: {}".format(hw_info_dict['hwsku'])) + click.echo("ASIC: {}".format(hw_info_dict['asic_type'])) + click.echo("ASIC Count: {}".format(hw_info_dict['asic_count'])) # 'syseeprom' subcommand ("show platform syseeprom") @platform.command() diff --git a/utilities_common/cli.py b/utilities_common/cli.py new file mode 100644 index 0000000000..6a8e5de92b --- /dev/null +++ b/utilities_common/cli.py @@ -0,0 +1,9 @@ +import json + +def json_dump(data): + """ + Dump data in JSON format + """ + return json.dumps( + data, sort_keys=True, indent=2, ensure_ascii=False + )