From a58d7caa63582b09b2fe3dfaee18fdb5868fec1a Mon Sep 17 00:00:00 2001 From: Tom Dewey Date: Tue, 8 Oct 2024 12:56:24 +0100 Subject: [PATCH 1/3] provisioner: Explicitly delete temporary config signature file --- service/rpi-sb-provisioner.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/service/rpi-sb-provisioner.sh b/service/rpi-sb-provisioner.sh index 6b49909..6929e68 100755 --- a/service/rpi-sb-provisioner.sh +++ b/service/rpi-sb-provisioner.sh @@ -184,6 +184,7 @@ update_eeprom() { --out "${dst_image}" ${sign_args} \ "${dst_image}.intermediate" || die "Failed to update EEPROM image" rm -f "${dst_image}.intermediate" + rm -f "${TMP_CONFIG_SIG}" set +x cat < Date: Tue, 8 Oct 2024 15:30:52 +0100 Subject: [PATCH 2/3] monitor.py: Remove redundant arguments --- monitor/monitor.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/monitor/monitor.py b/monitor/monitor.py index 1b5718a..ec9894f 100755 --- a/monitor/monitor.py +++ b/monitor/monitor.py @@ -37,12 +37,10 @@ def on_mount(self) -> None: self.set_interval(1/20, self.update_devices) class CompletedDevicesList(Widget): - dev_type_g = "" devices=reactive(tuple[str, int]) def compose(self) -> ComposeResult: yield DataTable() - def __init__(self, dev_type): - self.dev_type = dev_type + def __init__(self): super().__init__() def update_devices(self) -> None: self.devices = systemctl_python.list_completed_devices() @@ -61,13 +59,11 @@ def on_mount(self) -> None: table.add_rows(ROWS[1:]) self.set_interval(1/20, self.update_devices) -class Failed_devices_list(Static): - dev_type_g = "" +class FailedDevicesList(Static): devices=reactive(tuple[str, int]) def compose(self) -> ComposeResult: yield DataTable() - def __init__(self, dev_type): - self.dev_type = dev_type + def __init__(self): super().__init__() def update_devices(self) -> None: self.devices = systemctl_python.list_failed_devices() @@ -97,11 +93,11 @@ def compose(self) -> ComposeResult: class Completed_Box(Static): def compose(self) -> ComposeResult: - yield ScrollableContainer(Static("Completed \n----------------"), CompletedDevicesList(dev_type="provision")) + yield ScrollableContainer(Static("Completed \n----------------"), CompletedDevicesList()) class Failed_Box(Static): def compose(self) -> ComposeResult: - yield ScrollableContainer(Static("Failed \n----------------"), Failed_devices_list(dev_type="provision")) + yield ScrollableContainer(Static("Failed \n----------------"), FailedDevicesList()) class Processing(Static): def compose(self) -> ComposeResult: From 22c3e46b12072c88306f704e26f966eda1ca82c9 Mon Sep 17 00:00:00 2001 From: Tom Dewey Date: Tue, 8 Oct 2024 15:31:08 +0100 Subject: [PATCH 3/3] monitor: Find completed devices by logs --- monitor/systemctl_python.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/monitor/systemctl_python.py b/monitor/systemctl_python.py index 0c8f3c9..22ba932 100755 --- a/monitor/systemctl_python.py +++ b/monitor/systemctl_python.py @@ -76,9 +76,11 @@ def list_seen_devices(): return units - +# Completed devices don't show up as systemd units, so we _must_ fall back to the log files def list_completed_devices(): - all_devices = list_seen_devices() + all_devices = [] + if os.path.exists("/var/log/rpi-sb-provisioner/"): + all_devices = os.listdir("/var/log/rpi-sb-provisioner") completed_devices = [] for device in all_devices: if os.path.exists("/var/log/rpi-sb-provisioner/" + device + "/progress"):