Skip to content

Commit 14bc081

Browse files
committed
Clear URLs from app.py
1 parent 533d47b commit 14bc081

File tree

4 files changed

+60
-47
lines changed

4 files changed

+60
-47
lines changed

src/murfey/client/tui/app.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -653,7 +653,7 @@ async def on_mount(self) -> None:
653653
else:
654654
session_name = "Client connection"
655655
resp = capture_post(
656-
f"{self._environment.url.geturl()}/instruments/{self._environment.instrument_name}/clients/{self._environment.client_id}/session",
656+
f"{self._environment.url.geturl()}{session_router.url_path_for('link_client_to_session', instrument_name=self._environment.instrument_name, client_id=self._environment.client_id)}",
657657
json={"session_id": None, "session_name": session_name},
658658
)
659659
if resp:
@@ -672,7 +672,7 @@ async def reset(self):
672672
sources = "\n".join(str(k) for k in self.rsync_processes.keys())
673673
prompt = f"Remove files from the following:\n {sources} \n"
674674
rsync_instances = requests.get(
675-
f"{self._environment.url.geturl()}/sessions/{self._environment.murfey_session}/rsyncers"
675+
f"{self._environment.url.geturl()}{session_router.url_path_for('get_rsyncers_for_session', session_id=self._environment.murfey_session)}"
676676
).json()
677677
prompt += f"Copied {sum(r['files_counted'] for r in rsync_instances)} / {sum(r['files_transferred'] for r in rsync_instances)}"
678678
self.install_screen(
@@ -696,7 +696,7 @@ async def action_quit(self) -> None:
696696

697697
async def action_remove_session(self) -> None:
698698
requests.delete(
699-
f"{self._environment.url.geturl()}/sessions/{self._environment.murfey_session}"
699+
f"{self._environment.url.geturl()}{session_router.url_path_for('remove_session', session_id=self._environment.murfey_session)}"
700700
)
701701
if self.rsync_processes:
702702
for rp in self.rsync_processes.values():
@@ -710,7 +710,7 @@ async def action_remove_session(self) -> None:
710710

711711
def clean_up_quit(self) -> None:
712712
requests.delete(
713-
f"{self._environment.url.geturl()}/sessions/{self._environment.murfey_session}"
713+
f"{self._environment.url.geturl()}{session_router.url_path_for('remove_session', session_id=self._environment.murfey_session)}"
714714
)
715715
self.exit()
716716

@@ -753,10 +753,10 @@ def _remove_data(self, listener: Callable[..., Awaitable[None] | None], **kwargs
753753
removal_rp.stop()
754754
log.info(f"rsyncer {rp} rerun with removal")
755755
requests.post(
756-
f"{self._environment.url.geturl()}/sessions/{self._environment.murfey_session}/successful_processing"
756+
f"{self._environment.url.geturl()}{session_router.url_path_for('register_processing_success_in_ispyb', session_id=self._environment.murfey_session)}"
757757
)
758758
requests.delete(
759-
f"{self._environment.url.geturl()}/sessions/{self._environment.murfey_session}"
759+
f"{self._environment.url.geturl()}{session_router.url_path_for('remove_session', session_id=self._environment.murfey_session)}"
760760
)
761761
self.exit()
762762

src/murfey/server/api/__init__.py

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
RsyncInstance,
1919
Session,
2020
)
21-
from murfey.util.models import ClientInfo, RsyncerSource
21+
from murfey.util.models import ClientInfo
2222

2323
log = logging.getLogger("murfey.server.api")
2424

@@ -82,34 +82,6 @@ def delete_rsyncer(session_id: int, source: Path, db=murfey_db):
8282
)
8383

8484

85-
@router.post("/sessions/{session_id}/rsyncer_stopped")
86-
def register_stopped_rsyncer(
87-
session_id: int, rsyncer_source: RsyncerSource, db=murfey_db
88-
):
89-
rsyncer = db.exec(
90-
select(RsyncInstance)
91-
.where(RsyncInstance.session_id == session_id)
92-
.where(RsyncInstance.source == rsyncer_source.source)
93-
).one()
94-
rsyncer.transferring = False
95-
db.add(rsyncer)
96-
db.commit()
97-
98-
99-
@router.post("/sessions/{session_id}/rsyncer_started")
100-
def register_restarted_rsyncer(
101-
session_id: int, rsyncer_source: RsyncerSource, db=murfey_db
102-
):
103-
rsyncer = db.exec(
104-
select(RsyncInstance)
105-
.where(RsyncInstance.session_id == session_id)
106-
.where(RsyncInstance.source == rsyncer_source.source)
107-
).one()
108-
rsyncer.transferring = True
109-
db.add(rsyncer)
110-
db.commit()
111-
112-
11385
@router.get("/prometheus/{metric_name}")
11486
def inspect_prometheus_metrics(
11587
metric_name: str,

src/murfey/server/api/session_control.py

Lines changed: 53 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@
66
from pydantic import BaseModel
77
from sqlmodel import select
88

9-
import murfey.server.ispyb
109
import murfey.server.prometheus as prom
10+
11+
try:
12+
from murfey.server.ispyb import DB
13+
except ImportError:
14+
DB = None
1115
from murfey.server import _transport_object
1216
from murfey.server.api.auth import MurfeySessionID, validate_token
1317
from murfey.server.api.shared import get_foil_hole as _get_foil_hole
@@ -99,7 +103,7 @@ def remove_session(session_id: MurfeySessionID, db=murfey_db):
99103

100104
@router.post("/sessions/{session_id}/successful_processing")
101105
def register_processing_success_in_ispyb(
102-
session_id: MurfeySessionID, db=murfey.server.ispyb.DB, murfey_db=murfey_db
106+
session_id: MurfeySessionID, db=DB, murfey_db=murfey_db
103107
):
104108
collected_ids = murfey_db.exec(
105109
select(DataCollectionGroup, DataCollection, ProcessingJob, AutoProcProgram)
@@ -110,12 +114,13 @@ def register_processing_success_in_ispyb(
110114
).all()
111115
appids = [c[3].id for c in collected_ids]
112116
if _transport_object:
113-
apps = db.query(ISPyBAutoProcProgram).filter(
114-
ISPyBAutoProcProgram.autoProcProgramId.in_(appids)
115-
)
116-
for updated in apps:
117-
updated.processingStatus = True
118-
_transport_object.do_update_processing_status(updated)
117+
if db is not None:
118+
apps = db.query(ISPyBAutoProcProgram).filter(
119+
ISPyBAutoProcProgram.autoProcProgramId.in_(appids)
120+
)
121+
for updated in apps:
122+
updated.processingStatus = True
123+
_transport_object.do_update_processing_status(updated)
119124

120125

121126
class PostInfo(BaseModel):
@@ -178,6 +183,46 @@ def register_rsyncer(session_id: int, rsyncer_info: RsyncerInfo, db=murfey_db):
178183
return rsyncer_info
179184

180185

186+
@router.get("/sessions/{session_id}/rsyncers", response_model=List[RsyncInstance])
187+
def get_rsyncers_for_session(session_id: MurfeySessionID, db=murfey_db):
188+
rsync_instances = db.exec(
189+
select(RsyncInstance).where(RsyncInstance.session_id == session_id)
190+
)
191+
return rsync_instances.all()
192+
193+
194+
class RsyncerSource(BaseModel):
195+
source: str
196+
197+
198+
@router.post("/sessions/{session_id}/rsyncer_stopped")
199+
def register_stopped_rsyncer(
200+
session_id: int, rsyncer_source: RsyncerSource, db=murfey_db
201+
):
202+
rsyncer = db.exec(
203+
select(RsyncInstance)
204+
.where(RsyncInstance.session_id == session_id)
205+
.where(RsyncInstance.source == rsyncer_source.source)
206+
).one()
207+
rsyncer.transferring = False
208+
db.add(rsyncer)
209+
db.commit()
210+
211+
212+
@router.post("/sessions/{session_id}/rsyncer_started")
213+
def register_restarted_rsyncer(
214+
session_id: int, rsyncer_source: RsyncerSource, db=murfey_db
215+
):
216+
rsyncer = db.exec(
217+
select(RsyncInstance)
218+
.where(RsyncInstance.session_id == session_id)
219+
.where(RsyncInstance.source == rsyncer_source.source)
220+
).one()
221+
rsyncer.transferring = True
222+
db.add(rsyncer)
223+
db.commit()
224+
225+
181226
spa_router = APIRouter(
182227
prefix="/session_control/spa",
183228
dependencies=[Depends(validate_token)],

src/murfey/util/models.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,6 @@ class ClientInfo(BaseModel):
5656
id: int
5757

5858

59-
class RsyncerSource(BaseModel):
60-
source: str
61-
62-
6359
class RsyncerInfo(BaseModel):
6460
source: str
6561
destination: str

0 commit comments

Comments
 (0)