From df1497d8730094ec431d0eff953ce03663277ac9 Mon Sep 17 00:00:00 2001 From: Stephen Riggs <122790971+stephen-riggs@users.noreply.github.com> Date: Mon, 14 Oct 2024 13:42:37 +0100 Subject: [PATCH] Changes needed to make the old gui work with the recent updates (#368) --- src/murfey/client/contexts/clem.py | 4 +++- src/murfey/client/contexts/spa_metadata.py | 4 +++- src/murfey/client/tui/app.py | 15 +++++++++++---- src/murfey/server/api/__init__.py | 11 +++++++++-- src/murfey/util/__init__.py | 7 ++++++- tests/client/test_context.py | 2 +- 6 files changed, 33 insertions(+), 10 deletions(-) diff --git a/src/murfey/client/contexts/clem.py b/src/murfey/client/contexts/clem.py index e2191fc9..d0ef8b64 100644 --- a/src/murfey/client/contexts/clem.py +++ b/src/murfey/client/contexts/clem.py @@ -27,7 +27,9 @@ def _file_transferred_to( Returns the Path of the transferred file on the DLS file system. """ machine_config = get_machine_config( - str(environment.url.geturl()), demo=environment.demo + str(environment.url.geturl()), + instrument_name=environment.instrument_name, + demo=environment.demo, ) # rsync basepath and modules are set in the microscope's configuration YAML file return ( diff --git a/src/murfey/client/contexts/spa_metadata.py b/src/murfey/client/contexts/spa_metadata.py index ef4d061c..f3ca9ee2 100644 --- a/src/murfey/client/contexts/spa_metadata.py +++ b/src/murfey/client/contexts/spa_metadata.py @@ -19,7 +19,9 @@ def _atlas_destination( environment: MurfeyInstanceEnvironment, source: Path, file_path: Path ) -> Path: machine_config = get_machine_config( - str(environment.url.geturl()), demo=environment.demo + str(environment.url.geturl()), + instrument_name=environment.instrument_name, + demo=environment.demo, ) if environment.visit in environment.default_destinations[source]: return ( diff --git a/src/murfey/client/tui/app.py b/src/murfey/client/tui/app.py index 44c93188..9d313660 100644 --- a/src/murfey/client/tui/app.py +++ b/src/murfey/client/tui/app.py @@ -129,7 +129,9 @@ def _launch_multigrid_watcher( ): log.info(f"Launching multigrid watcher for source {source}") machine_config = get_machine_config( - str(self._environment.url.geturl()), demo=self._environment.demo + str(self._environment.url.geturl()), + instrument_name=self._environment.instrument_name, + demo=self._environment.demo, ) self._multigrid_watcher = MultigridDirWatcher( source, @@ -154,6 +156,7 @@ def _start_rsyncer_multigrid( remove_files: bool = False, analyse: bool = True, limited: bool = False, + **kwargs, ): log.info(f"starting multigrid rsyncer: {source}") destination_overrides = destination_overrides or {} @@ -257,7 +260,7 @@ def rsync_result(update: RSyncerUpdate): ), secondary=True, ) - url = f"{str(self._url.geturl())}/visits/{str(self._visit)}/rsyncer" + url = f"{str(self._url.geturl())}/sessions/{str(self._environment.murfey_session)}/rsyncer" rsyncer_data = { "source": str(source), "destination": destination, @@ -686,7 +689,9 @@ def on_log_book_log(self, message): async def reset(self): machine_config = get_machine_config( - str(self._environment.url.geturl()), demo=self._environment.demo + str(self._environment.url.geturl()), + instrument_name=self._environment.instrument_name, + demo=self._environment.demo, ) if self.rsync_processes and machine_config.get("allow_removal"): sources = "\n".join(str(k) for k in self.rsync_processes.keys()) @@ -739,7 +744,9 @@ def clean_up_quit(self) -> None: async def action_clear(self) -> None: machine_config = get_machine_config( - str(self._environment.url.geturl()), demo=self._environment.demo + str(self._environment.url.geturl()), + instrument_name=self._environment.instrument_name, + demo=self._environment.demo, ) if self.rsync_processes and machine_config.get("allow_removal"): sources = "\n".join(str(k) for k in self.rsync_processes.keys()) diff --git a/src/murfey/server/api/__init__.py b/src/murfey/server/api/__init__.py index 8315f45d..89a1b5cb 100644 --- a/src/murfey/server/api/__init__.py +++ b/src/murfey/server/api/__init__.py @@ -208,11 +208,16 @@ def register_client_to_visit(visit_name: str, client_info: ClientInfo, db=murfey client_env = db.exec( select(ClientEnvironment).where(ClientEnvironment.client_id == client_info.id) ).one() + session = db.exec(select(Session).where(Session.id == client_env.session_id)).one() if client_env: client_env.visit = visit_name db.add(client_env) db.commit() - db.close() + if session: + session.visit = visit_name + db.add(session) + db.commit() + db.close() return client_info @@ -1127,7 +1132,9 @@ async def request_spa_preprocessing( "particle_diameter": proc_params["particle_diameter"] or 0, "fm_int_file": proc_file.eer_fractionation_file, "do_icebreaker_jobs": default_spa_parameters.do_icebreaker_jobs, - "cryolo_model_weights": str(_cryolo_model_path(visit_name)), + "cryolo_model_weights": str( + _cryolo_model_path(visit_name, instrument_name) + ), }, } # log.info(f"Sending Zocalo message {zocalo_message}") diff --git a/src/murfey/util/__init__.py b/src/murfey/util/__init__.py index 9ef38db7..382f0226 100644 --- a/src/murfey/util/__init__.py +++ b/src/murfey/util/__init__.py @@ -97,7 +97,12 @@ def capture_post(url: str, json: dict | list = {}) -> requests.Response | None: f"{response.status_code}. The reason given was {response.reason}" ) split_url = urlparse(url) - failure_url = urlunparse(split_url._replace(path="/failed_client_post")) + client_config = read_config() + failure_url = urlunparse( + split_url._replace( + path=f"/instruments/{client_config['Murfey']['instrument_name']}/failed_client_post" + ) + ) try: resend_response = requests.post( failure_url, json={"url": url, "data": json} diff --git a/tests/client/test_context.py b/tests/client/test_context.py index 4f5d2a2e..f4a1eaed 100644 --- a/tests/client/test_context.py +++ b/tests/client/test_context.py @@ -245,7 +245,7 @@ def test_tomography_context_initialisation_for_serialem(tmp_path): def test_setting_tilt_series_size_and_completion_from_mdoc_parsing( mock_post, mock_get, tmp_path ): - mock_post.post().status_code = 200 + mock_post().status_code = 200 env = MurfeyInstanceEnvironment( url=urlparse("http://localhost:8000"),