From 63ea060fb9dc4df994cc266b7084e4ba7c4c48db Mon Sep 17 00:00:00 2001 From: David Perl Date: Wed, 12 Aug 2026 15:36:01 +0200 Subject: [PATCH] fix: rename recover beamline to force maintenance --- src/aare/daq/server.py | 6 +++--- src/aare/gui/panels/beamline_recovery_panel.py | 18 +++++++++--------- src/aare/gui/threads/daq_worker.py | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/aare/daq/server.py b/src/aare/daq/server.py index 6d847d30..6a473545 100644 --- a/src/aare/daq/server.py +++ b/src/aare/daq/server.py @@ -1508,8 +1508,8 @@ async def force_clear_busy( return "OK" -@app.post("/recovery/recover_beamline") -async def recover_beamline( +@app.post("/recovery/force_maintenance_state") +async def force_maintenance_state( payload: RecoveryActionRequest, token: str = Depends(oauth2_scheme) ) -> dict: """ @@ -1535,7 +1535,7 @@ async def recover_beamline( cfg.state = BeamlineStateEnum.Maintenance logger.warning( - "Beamline recovery action executed.", + "Beamline recovery action executed - forced maintenance state.", extra={ "session": getattr(data, "session", None), "previous_state": getattr(prev_state, "name", str(prev_state)), diff --git a/src/aare/gui/panels/beamline_recovery_panel.py b/src/aare/gui/panels/beamline_recovery_panel.py index 09baee07..7e4a5822 100644 --- a/src/aare/gui/panels/beamline_recovery_panel.py +++ b/src/aare/gui/panels/beamline_recovery_panel.py @@ -119,8 +119,8 @@ class RecoveryPanel(QWidget): self._force_clear_busy_btn.clicked.connect(self._force_clear_busy) layout.addWidget(self._force_clear_busy_btn) - self._recover_beamline_btn = QPushButton("Recover beamline", self) - self._recover_beamline_btn.setStyleSheet( + self._force_maintenance_state_btn = QPushButton("Force to maintenance state", self) + self._force_maintenance_state_btn.setStyleSheet( card_style( CHIP_BAD_BG, BAD_CARD_BORDER, @@ -130,8 +130,8 @@ class RecoveryPanel(QWidget): extra="padding: 10px; font-weight: 700;", ) ) - self._recover_beamline_btn.clicked.connect(self._recover_beamline) - layout.addWidget(self._recover_beamline_btn) + self._force_maintenance_state_btn.clicked.connect(self._force_maintenance_state) + layout.addWidget(self._force_maintenance_state_btn) self._recovery_unmount_btn = QPushButton("Unmount sample (recovery)", self) self._recovery_unmount_btn.setStyleSheet( @@ -251,10 +251,10 @@ class RecoveryPanel(QWidget): self._daq.force_clear_busy(code) @Slot() - def _recover_beamline(self) -> None: + def _force_maintenance_state(self) -> None: if self._sample_appears_mounted(): if not self._confirm( - "Recover beamline", + "Force maintenance mode", "A sample appears to be mounted.\n\n" "Recovering the beamline may damage the sample or leave hardware in an unsafe state.\n\n" "Only continue if you are sure this is the correct recovery action.", @@ -262,17 +262,17 @@ class RecoveryPanel(QWidget): return else: if not self._confirm( - "Recover beamline", + "Force maintenance mode", "This will take over the beamline, clear the busy flag, and set the state to Maintenance.\n\n" "Do you want to continue?", ): return - code = self._prompt_recovery_code("Recover beamline") + code = self._prompt_recovery_code("Force maintenance mode") if not code: return self._last_action.setText("Last action: Recovering beamline to Maintenance...") - self._daq.recover_beamline(code) + self._daq.force_maintenance_state(code) @Slot() def _recovery_unmount_sample(self) -> None: diff --git a/src/aare/gui/threads/daq_worker.py b/src/aare/gui/threads/daq_worker.py index 98e6e5e9..2973063a 100644 --- a/src/aare/gui/threads/daq_worker.py +++ b/src/aare/gui/threads/daq_worker.py @@ -902,12 +902,12 @@ class DAQWorker(QObject): ) @Slot(str) - def recover_beamline(self, confirmation_code: str): + def force_maintenance_state(self, confirmation_code: str): if self._base_url is None: - logger.info("POST /recovery/recover_beamline") + logger.info("POST /recovery/force_maintenance_state") return - request = QNetworkRequest(QUrl(f"{self._base_url}/recovery/recover_beamline")) + request = QNetworkRequest(QUrl(f"{self._base_url}/recovery/force_maintenance_state")) request.setRawHeader(b"Authorization", f"Bearer {self._token}".encode()) request.setRawHeader(b"Content-Type", b"application/json") body = json.dumps({"confirmation_code": confirmation_code})