|
1 | 1 | #! /usr/bin/python -u
|
2 | 2 |
|
3 |
| -import click |
4 | 3 | import errno
|
5 |
| -import getpass |
6 | 4 | import json
|
7 | 5 | import os
|
8 | 6 | import re
|
9 | 7 | import subprocess
|
10 | 8 | import sys
|
| 9 | + |
| 10 | +import click |
11 | 11 | from click_default_group import DefaultGroup
|
12 | 12 | from natsort import natsorted
|
13 | 13 | from tabulate import tabulate
|
| 14 | + |
| 15 | +import sonic_platform |
14 | 16 | from swsssdk import ConfigDBConnector
|
15 | 17 | from swsssdk import SonicV2Connector
|
16 | 18 |
|
@@ -878,25 +880,24 @@ def platform():
|
878 | 880 | @platform.command()
|
879 | 881 | def summary():
|
880 | 882 | """Show hardware platform information"""
|
881 |
| - username = getpass.getuser() |
| 883 | + machine_info = sonic_platform.get_machine_info() |
| 884 | + platform = sonic_platform.get_platform_info(machine_info) |
882 | 885 |
|
883 |
| - PLATFORM_TEMPLATE_FILE = "/tmp/cli_platform_{0}.j2".format(username) |
884 |
| - PLATFORM_TEMPLATE_CONTENTS = "Platform: {{ DEVICE_METADATA.localhost.platform }}\n" \ |
885 |
| - "HwSKU: {{ DEVICE_METADATA.localhost.hwsku }}\n" \ |
886 |
| - "ASIC: {{ asic_type }}" |
887 |
| - |
888 |
| - # Create a temporary Jinja2 template file to use with sonic-cfggen |
889 |
| - f = open(PLATFORM_TEMPLATE_FILE, 'w') |
890 |
| - f.write(PLATFORM_TEMPLATE_CONTENTS) |
891 |
| - f.close() |
| 886 | + config_db = ConfigDBConnector() |
| 887 | + config_db.connect() |
| 888 | + data = config_db.get_table('DEVICE_METADATA') |
892 | 889 |
|
893 |
| - cmd = "sonic-cfggen -d -y /etc/sonic/sonic_version.yml -t {0}".format(PLATFORM_TEMPLATE_FILE) |
894 |
| - p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) |
895 |
| - click.echo(p.stdout.read()) |
| 890 | + try: |
| 891 | + hwsku = data['localhost']['hwsku'] |
| 892 | + except KeyError: |
| 893 | + hwsku = "Unknown" |
896 | 894 |
|
897 |
| - # Clean up |
898 |
| - os.remove(PLATFORM_TEMPLATE_FILE) |
| 895 | + version_info = sonic_platform.get_sonic_version_info() |
| 896 | + asic_type = version_info['asic_type'] |
899 | 897 |
|
| 898 | + click.echo("Platform: {}".format(platform)) |
| 899 | + click.echo("HwSKU: {}".format(hwsku)) |
| 900 | + click.echo("ASIC: {}".format(asic_type)) |
900 | 901 |
|
901 | 902 | # 'syseeprom' subcommand ("show platform syseeprom")
|
902 | 903 | @platform.command()
|
@@ -955,33 +956,20 @@ def logging(process, lines, follow, verbose):
|
955 | 956 | @cli.command()
|
956 | 957 | def version():
|
957 | 958 | """Show version information"""
|
958 |
| - username = getpass.getuser() |
959 |
| - |
960 |
| - VERSION_TEMPLATE_FILE = "/tmp/cli_version_{0}.j2".format(username) |
961 |
| - VERSION_TEMPLATE_CONTENTS = "SONiC Software Version: SONiC.{{ build_version }}\n" \ |
962 |
| - "Distribution: Debian {{ debian_version }}\n" \ |
963 |
| - "Kernel: {{ kernel_version }}\n" \ |
964 |
| - "Build commit: {{ commit_id }}\n" \ |
965 |
| - "Build date: {{ build_date }}\n" \ |
966 |
| - "Built by: {{ built_by }}" |
967 |
| - |
968 |
| - # Create a temporary Jinja2 template file to use with sonic-cfggen |
969 |
| - f = open(VERSION_TEMPLATE_FILE, 'w') |
970 |
| - f.write(VERSION_TEMPLATE_CONTENTS) |
971 |
| - f.close() |
972 |
| - |
973 |
| - cmd = "sonic-cfggen -y /etc/sonic/sonic_version.yml -t {0}".format(VERSION_TEMPLATE_FILE) |
974 |
| - p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) |
975 |
| - click.echo(p.stdout.read()) |
| 959 | + version_info = sonic_platform.get_sonic_version_info() |
| 960 | + |
| 961 | + click.echo("SONiC Software Version: SONiC.{}".format(version_info['build_version'])) |
| 962 | + click.echo("Distribution: Debian {}".format(version_info['debian_version'])) |
| 963 | + click.echo("Kernel: {}".format(version_info['kernel_version'])) |
| 964 | + click.echo("Build commit: {}".format(version_info['commit_id'])) |
| 965 | + click.echo("Build date: {}".format(version_info['build_date'])) |
| 966 | + click.echo("Built by: {}".format(version_info['built_by'])) |
976 | 967 |
|
977 |
| - click.echo("Docker images:") |
| 968 | + click.echo("\nDocker images:") |
978 | 969 | cmd = 'sudo docker images --format "table {{.Repository}}\\t{{.Tag}}\\t{{.ID}}\\t{{.Size}}"'
|
979 | 970 | p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
|
980 | 971 | click.echo(p.stdout.read())
|
981 | 972 |
|
982 |
| - # Clean up |
983 |
| - os.remove(VERSION_TEMPLATE_FILE) |
984 |
| - |
985 | 973 | #
|
986 | 974 | # 'environment' command ("show environment")
|
987 | 975 | #
|
|
0 commit comments