statd: fix 'show system' regression, broken in b826bcb

The table_width() class method was lost in b826bcb9d, so we take the
opportunit to refactor to SimpleTable.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2026-01-18 21:39:38 +01:00
parent 95eb04645b
commit c23009d7a2
+17 -30
View File
@@ -186,14 +186,6 @@ class PadLldp:
port_id = 20
class PadDiskUsage:
mount = 18
size = 12
used = 12
avail = 12
percent = 6
def format_memory_bytes(bytes_val):
"""Convert bytes to human-readable format"""
if bytes_val == 0:
@@ -221,11 +213,6 @@ def format_uptime_seconds(seconds):
else:
return f"{seconds // 86400}d"
@classmethod
def table_width(cls):
"""Total width of disk usage table"""
return cls.mount + cls.size + cls.used + cls.avail + cls.percent
class Column:
"""Column definition for SimpleTable"""
@@ -2939,7 +2926,7 @@ def show_system(json):
except (ValueError, KeyError):
pass
width = PadDiskUsage.table_width()
width = 62
print(Decore.invert(f"{'SYSTEM INFORMATION':<{width}}"))
print(f"{'OS Name':<20}: {platform.get('os-name', 'Unknown')}")
print(f"{'OS Version':<20}: {platform.get('os-version', 'Unknown')}")
@@ -3022,23 +3009,23 @@ def show_system(json):
disk_filtered = [d for d in disk if d.get("mount") != "/"]
if disk_filtered:
Decore.title("Disk Usage", width)
hdr = (f"{'MOUNTPOINT':<{PadDiskUsage.mount}}"
f"{'SIZE':>{PadDiskUsage.size}}"
f"{'USED':>{PadDiskUsage.used}}"
f"{'AVAIL':>{PadDiskUsage.avail}}"
f"{'USE%':>{PadDiskUsage.percent}}")
print(Decore.invert(hdr))
disk_table = SimpleTable([
Column('MOUNTPOINT', flexible=True),
Column('SIZE', 'right'),
Column('USED', 'right'),
Column('AVAIL', 'right'),
Column('USE%', 'right')
], min_width=width)
for d in disk_filtered:
mount = d.get("mount", "?")
size = d.get("size", "?")
used = d.get("used", "?")
avail = d.get("available", "?")
percent = d.get("percent", "?")
print(f"{mount:<{PadDiskUsage.mount}}"
f"{size:>{PadDiskUsage.size}}"
f"{used:>{PadDiskUsage.used}}"
f"{avail:>{PadDiskUsage.avail}}"
f"{percent:>{PadDiskUsage.percent}}")
disk_table.row(
d.get("mount", "?"),
d.get("size", "?"),
d.get("used", "?"),
d.get("available", "?"),
d.get("percent", "?")
)
disk_table.print()
def show_dhcp_server(json, stats):