Skip to content

Commit 154f97f

Browse files
authored
TUI fixes + rsync log (#477)
* Get machine config based on client-supplied instrument name * Fixed visit creation logic in TUI * Added rsync log to track rsync remote path used
1 parent 32f8ef7 commit 154f97f

File tree

4 files changed

+28
-13
lines changed

4 files changed

+28
-13
lines changed

src/murfey/cli/transfer.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
from rich.prompt import Confirm
1111

1212
from murfey.client import read_config
13+
from murfey.util.config import MachineConfig
1314

1415

1516
def run():
1617
config = read_config()
17-
known_server = config["Murfey"].get("server")
18+
known_server = config["Murfey"].get("server", "")
19+
instrument_name = config["Murfey"].get("instrument_name", "")
1820

1921
parser = argparse.ArgumentParser(description="Transfer using a remote rsync daemon")
2022

@@ -35,7 +37,11 @@ def run():
3537
console = Console()
3638
murfey_url = urlparse(args.server, allow_fragments=False)
3739

38-
machine_data = requests.get(f"{murfey_url.geturl()}/machine").json()
40+
machine_data = MachineConfig(
41+
requests.get(
42+
f"{murfey_url.geturl()}/instruments/{instrument_name}/machine"
43+
).json()
44+
)
3945
if Path(args.source or ".").resolve() in machine_data.data_directories:
4046
console.print("[red]Source directory is the base directory, exiting")
4147
return

src/murfey/client/rsync.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,16 @@ def __init__(
7575
self._local = local
7676
self._server_url = server_url
7777
self._notify = notify
78+
79+
# Set rsync destination
7880
if local:
7981
self._remote = str(basepath_remote)
8082
else:
8183
self._remote = (
8284
f"{server_url.hostname}::{self._rsync_module}/{basepath_remote}/"
8385
)
86+
logger.debug(f"rsync destination path set to {self._remote}")
87+
8488
# For local tests you can use something along the lines of
8589
# self._remote = f"wra62962@ws133:/dls/tmp/wra62962/junk/{basepath_remote}"
8690
# to avoid having to set up an rsync daemon

src/murfey/client/tui/app.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
ReactiveType = TypeVar("ReactiveType")
4747

4848
token = read_config()["Murfey"].get("token", "")
49+
instrument_name = read_config()["Murfey"].get("instrument_name", "")
4950

5051
requests.get = partial(requests.get, headers={"Authorization": f"Bearer {token}"})
5152
requests.post = partial(requests.post, headers={"Authorization": f"Bearer {token}"})
@@ -154,7 +155,9 @@ def _start_rsyncer_multigrid(
154155
):
155156
log.info(f"starting multigrid rsyncer: {source}")
156157
destination_overrides = destination_overrides or {}
157-
machine_data = requests.get(f"{self._environment.url.geturl()}/machine").json()
158+
machine_data = requests.get(
159+
f"{self._environment.url.geturl()}/instruments/{instrument_name}/machine"
160+
).json()
158161
if destination_overrides.get(source):
159162
destination = destination_overrides[source] + f"/{extra_directory}"
160163
else:

src/murfey/client/tui/screens.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
ReactiveType = TypeVar("ReactiveType")
6565

6666
token = read_config()["Murfey"].get("token", "")
67+
instrument_name = read_config()["Murfey"].get("instrument_name", "")
6768

6869
requests.get = partial(requests.get, headers={"Authorization": f"Bearer {token}"})
6970
requests.post = partial(requests.post, headers={"Authorization": f"Bearer {token}"})
@@ -264,8 +265,9 @@ def __init__(
264265
self._context = SPAModularContext
265266

266267
def compose(self):
268+
267269
machine_data = requests.get(
268-
f"{self.app._environment.url.geturl()}/machine"
270+
f"{self.app._environment.url.geturl()}/instruments/{instrument_name}/machine"
269271
).json()
270272
self._dir_tree = _DirectoryTree(
271273
str(self._selected_dir),
@@ -699,7 +701,7 @@ def on_button_pressed(self, event: Button.Pressed):
699701
)
700702
log.info(f"Posted visit registration: {response.status_code}")
701703
machine_data = requests.get(
702-
f"{self.app._environment.url.geturl()}/machine"
704+
f"{self.app._environment.url.geturl()}/instruments/{instrument_name}/machine"
703705
).json()
704706

705707
if self._switch_status:
@@ -766,12 +768,16 @@ def on_button_pressed(self, event: Button.Pressed):
766768
)
767769
log.info(f"Posted visit registration: {response.status_code}")
768770
machine_data = requests.get(
769-
f"{self.app._environment.url.geturl()}/machine"
771+
f"{self.app._environment.url.geturl()}/instruments/{instrument_name}/machine"
770772
).json()
771773

772774
self.app.install_screen(
773775
DirectorySelection(
774-
[p for p in machine_data.get("data_directories", []) if p.exists()]
776+
[
777+
p
778+
for p in machine_data.get("data_directories", [])
779+
if Path(p).exists()
780+
]
775781
),
776782
"directory-select",
777783
)
@@ -787,11 +793,7 @@ def on_button_pressed(self, event: Button.Pressed):
787793
)
788794
self.app.push_screen("gain-ref-select")
789795
else:
790-
if self._switch_status:
791-
self.app.push_screen("directory-select")
792-
else:
793-
self.app.install_screen(LaunchScreen(basepath=Path("./")), "launcher")
794-
self.app.push_screen("launcher")
796+
self.app.push_screen("directory-select")
795797

796798
if machine_data.get("upstream_data_directories"):
797799
upstream_downloads = requests.get(
@@ -817,7 +819,7 @@ def compose(self):
817819

818820
def on_button_pressed(self, event: Button.Pressed):
819821
machine_data = requests.get(
820-
f"{self.app._environment.url.geturl()}/machine"
822+
f"{self.app._environment.url.geturl()}/instruments/{instrument_name}/machine"
821823
).json()
822824
if machine_data.get("upstream_data_download_directory"):
823825
# Create the directory locally to save files to

0 commit comments

Comments
 (0)