Skip to content

Commit 23119cb

Browse files
committed
Move grid square and foil hole endpoints
1 parent c3e03d8 commit 23119cb

File tree

7 files changed

+267
-190
lines changed

7 files changed

+267
-190
lines changed

src/murfey/client/contexts/spa.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
)
1818
from murfey.server.api.file_manip import router as file_manip_router
1919
from murfey.server.api.session_control import router as session_router
20+
from murfey.server.api.session_control import spa_router as session_spa_router
2021
from murfey.server.api.workflow import spa_router as workflow_spa_router
2122
from murfey.util.client import (
2223
authorised_requests,
@@ -429,7 +430,7 @@ def _position_analysis(
429430
local_atlas_path,
430431
grid_square=str(grid_square),
431432
)[str(grid_square)]
432-
gs_url = f"{str(environment.url.geturl())}/sessions/{environment.murfey_session}/grid_square/{grid_square}"
433+
gs_url = f"{str(environment.url.geturl())}{session_spa_router.url_path_for('register_grid_square', session_id=environment.murfey_session, gsid=grid_square)}"
433434
gs = grid_square_data(
434435
grid_square_metadata_file,
435436
grid_square,
@@ -470,7 +471,7 @@ def _position_analysis(
470471
)
471472
foil_hole = foil_hole_from_file(transferred_file)
472473
if foil_hole not in self._foil_holes[grid_square]:
473-
fh_url = f"{str(environment.url.geturl())}/sessions/{environment.murfey_session}/grid_square/{grid_square}/foil_hole"
474+
fh_url = f"{str(environment.url.geturl())}{session_spa_router.url_path_for('register_foil_hole', session_id=environment.murfey_session, gs_name=grid_square)}"
474475
if environment.murfey_session is not None:
475476
fh = foil_hole_data(
476477
grid_square_metadata_file,

src/murfey/client/contexts/spa_metadata.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from murfey.client.context import Context
99
from murfey.client.contexts.spa import _file_transferred_to, _get_source
1010
from murfey.client.instance_environment import MurfeyInstanceEnvironment, SampleInfo
11+
from murfey.server.api.session_control import spa_router as session_spa_router
1112
from murfey.server.api.workflow import router as workflow_router
1213
from murfey.util.client import (
1314
authorised_requests,
@@ -203,7 +204,7 @@ def post_transfer(
203204
for gs, pos_data in gs_pix_positions.items():
204205
if pos_data:
205206
capture_post(
206-
f"{str(environment.url.geturl())}/sessions/{environment.murfey_session}/grid_square/{gs}",
207+
f"{str(environment.url.geturl())}{session_spa_router.url_path_for('register_grid_square', session_id=environment.murfey_session, gsid=gs)}",
207208
json={
208209
"tag": dcg_tag,
209210
"x_location": pos_data[0],
@@ -271,7 +272,7 @@ def post_transfer(
271272
visitless_source = str(visitless_source_images_dirs[-1])
272273

273274
if fh_positions:
274-
gs_url = f"{str(environment.url.geturl())}/sessions/{environment.murfey_session}/grid_square/{gs_name}"
275+
gs_url = f"{str(environment.url.geturl())}{session_spa_router.url_path_for('register_grid_square', session_id=environment.murfey_session, gsid=gs_name)}"
275276
gs_info = grid_square_data(
276277
transferred_file,
277278
int(gs_name),
@@ -296,7 +297,7 @@ def post_transfer(
296297

297298
for fh, fh_data in fh_positions.items():
298299
capture_post(
299-
f"{str(environment.url.geturl())}/sessions/{environment.murfey_session}/grid_square/{gs_name}/foil_hole",
300+
f"{str(environment.url.geturl())}{session_spa_router.url_path_for('register_foil_hole', session_id=environment.murfey_session, gs_name=gs_name)}",
300301
json={
301302
"name": fh,
302303
"x_location": fh_data.x_location,

src/murfey/server/api/__init__.py

Lines changed: 1 addition & 174 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import logging
44
from pathlib import Path
5-
from typing import Dict, List, Optional
5+
from typing import List, Optional
66

77
from fastapi import APIRouter, Depends, Request
88
from fastapi.responses import FileResponse, HTMLResponse
@@ -30,8 +30,6 @@
3030
ClientEnvironment,
3131
DataCollection,
3232
DataCollectionGroup,
33-
FoilHole,
34-
GridSquare,
3533
MagnificationLookup,
3634
ProcessingJob,
3735
RsyncInstance,
@@ -44,20 +42,12 @@
4442
BLSampleParameters,
4543
BLSubSampleParameters,
4644
ClientInfo,
47-
CurrentGainRef,
48-
FoilHoleParameters,
49-
GridSquareParameters,
5045
MillingParameters,
51-
PostInfo,
5246
RegistrationMessage,
5347
RsyncerInfo,
5448
RsyncerSource,
5549
Sample,
5650
)
57-
from murfey.workflows.spa.flush_spa_preprocess import (
58-
register_foil_hole,
59-
register_grid_square,
60-
)
6151

6252
log = logging.getLogger("murfey.server.api")
6353

@@ -132,50 +122,6 @@ def register_client_to_visit(visit_name: str, client_info: ClientInfo, db=murfey
132122
return client_info
133123

134124

135-
@router.post("/sessions/{session_id}/rsyncer")
136-
def register_rsyncer(session_id: int, rsyncer_info: RsyncerInfo, db=murfey_db):
137-
visit_name = db.exec(select(Session).where(Session.id == session_id)).one().visit
138-
rsync_instance = RsyncInstance(
139-
source=rsyncer_info.source,
140-
session_id=rsyncer_info.session_id,
141-
transferring=rsyncer_info.transferring,
142-
destination=rsyncer_info.destination,
143-
tag=rsyncer_info.tag,
144-
)
145-
db.add(rsync_instance)
146-
db.commit()
147-
db.close()
148-
prom.seen_files.labels(rsync_source=rsyncer_info.source, visit=visit_name)
149-
prom.seen_data_files.labels(rsync_source=rsyncer_info.source, visit=visit_name)
150-
prom.transferred_files.labels(rsync_source=rsyncer_info.source, visit=visit_name)
151-
prom.transferred_files_bytes.labels(
152-
rsync_source=rsyncer_info.source, visit=visit_name
153-
)
154-
prom.transferred_data_files.labels(
155-
rsync_source=rsyncer_info.source, visit=visit_name
156-
)
157-
prom.transferred_data_files_bytes.labels(
158-
rsync_source=rsyncer_info.source, visit=visit_name
159-
)
160-
prom.seen_files.labels(rsync_source=rsyncer_info.source, visit=visit_name).set(0)
161-
prom.transferred_files.labels(
162-
rsync_source=rsyncer_info.source, visit=visit_name
163-
).set(0)
164-
prom.transferred_files_bytes.labels(
165-
rsync_source=rsyncer_info.source, visit=visit_name
166-
).set(0)
167-
prom.seen_data_files.labels(rsync_source=rsyncer_info.source, visit=visit_name).set(
168-
0
169-
)
170-
prom.transferred_data_files.labels(
171-
rsync_source=rsyncer_info.source, visit=visit_name
172-
).set(0)
173-
prom.transferred_data_files_bytes.labels(
174-
rsync_source=rsyncer_info.source, visit=visit_name
175-
).set(0)
176-
return rsyncer_info
177-
178-
179125
@router.delete("/sessions/{session_id}/rsyncer")
180126
def delete_rsyncer(session_id: int, source: Path, db=murfey_db):
181127
try:
@@ -288,84 +234,6 @@ class ProcessingDetails(BaseModel):
288234
feedback_params: SPAFeedbackParameters
289235

290236

291-
@router.get("/sessions/{session_id}/grid_squares")
292-
def get_grid_squares(session_id: MurfeySessionID, db=murfey_db):
293-
grid_squares = db.exec(
294-
select(GridSquare).where(GridSquare.session_id == session_id)
295-
).all()
296-
tags = {gs.tag for gs in grid_squares}
297-
res = {}
298-
for t in tags:
299-
res[t] = [gs for gs in grid_squares if gs.tag == t]
300-
return res
301-
302-
303-
@router.get("/sessions/{session_id}/data_collection_groups/{dcgid}/grid_squares")
304-
def get_grid_squares_from_dcg(
305-
session_id: int, dcgid: int, db=murfey_db
306-
) -> List[GridSquare]:
307-
grid_squares = db.exec(
308-
select(GridSquare, DataCollectionGroup)
309-
.where(GridSquare.session_id == session_id)
310-
.where(GridSquare.tag == DataCollectionGroup.tag)
311-
.where(DataCollectionGroup.id == dcgid)
312-
).all()
313-
return [gs[0] for gs in grid_squares]
314-
315-
316-
@router.get(
317-
"/sessions/{session_id}/data_collection_groups/{dcgid}/grid_squares/{gsid}/foil_holes"
318-
)
319-
def get_foil_holes_from_grid_square(
320-
session_id: int, dcgid: int, gsid: int, db=murfey_db
321-
) -> List[FoilHole]:
322-
foil_holes = db.exec(
323-
select(FoilHole, GridSquare, DataCollectionGroup)
324-
.where(FoilHole.grid_square_id == GridSquare.id)
325-
.where(GridSquare.name == gsid)
326-
.where(GridSquare.session_id == session_id)
327-
.where(GridSquare.tag == DataCollectionGroup.tag)
328-
.where(DataCollectionGroup.id == dcgid)
329-
).all()
330-
return [fh[0] for fh in foil_holes]
331-
332-
333-
@router.post("/sessions/{session_id}/grid_square/{gsid}")
334-
def posted_grid_square(
335-
session_id: MurfeySessionID,
336-
gsid: int,
337-
grid_square_params: GridSquareParameters,
338-
db=murfey_db,
339-
):
340-
return register_grid_square(session_id, gsid, grid_square_params, db)
341-
342-
343-
@router.get("/sessions/{session_id}/foil_hole/{fh_name}")
344-
def get_foil_hole(
345-
session_id: MurfeySessionID, fh_name: int, db=murfey_db
346-
) -> Dict[str, int]:
347-
foil_holes = db.exec(
348-
select(FoilHole, GridSquare)
349-
.where(FoilHole.name == fh_name)
350-
.where(FoilHole.session_id == session_id)
351-
.where(GridSquare.id == FoilHole.grid_square_id)
352-
).all()
353-
return {f[1].tag: f[0].id for f in foil_holes}
354-
355-
356-
@router.post("/sessions/{session_id}/grid_square/{gs_name}/foil_hole")
357-
def post_foil_hole(
358-
session_id: MurfeySessionID,
359-
gs_name: int,
360-
foil_hole_params: FoilHoleParameters,
361-
db=murfey_db,
362-
):
363-
log.info(
364-
f"Registering foil hole {foil_hole_params.name} with position {(foil_hole_params.x_location, foil_hole_params.y_location)}"
365-
)
366-
return register_foil_hole(session_id, gs_name, foil_hole_params, db)
367-
368-
369237
@router.get("/visit/{visit_name}/samples")
370238
def get_samples(visit_name: str, db=murfey.server.ispyb.DB) -> List[Sample]:
371239
return murfey.server.ispyb.get_sub_samples_from_visit(visit_name, db=db)
@@ -470,17 +338,6 @@ def change_monitoring_status(visit_name: str, on: int):
470338
prom.monitoring_switch.labels(visit=visit_name).set(on)
471339

472340

473-
@router.post("/instruments/{instrument_name}/failed_client_post")
474-
def failed_client_post(instrument_name: str, post_info: PostInfo):
475-
zocalo_message = {
476-
"register": "failed_client_post",
477-
"url": post_info.url,
478-
"json": post_info.data,
479-
}
480-
if _transport_object:
481-
_transport_object.send(_transport_object.feedback_queue, zocalo_message)
482-
483-
484341
@router.get("/sessions/{session_id}/upstream_visits")
485342
async def find_upstream_visits(session_id: MurfeySessionID, db=murfey_db):
486343
murfey_session = db.exec(select(Session).where(Session.id == session_id)).one()
@@ -558,36 +415,6 @@ async def get_tiff(visit_name: str, session_id: int, tiff_path: str, db=murfey_d
558415
return FileResponse(path=test_path)
559416

560417

561-
@router.post("/instruments/{instrument_name}/visits/{visit}/session/{name}")
562-
def create_session(instrument_name: str, visit: str, name: str, db=murfey_db) -> int:
563-
s = Session(name=name, visit=visit, instrument_name=instrument_name)
564-
db.add(s)
565-
db.commit()
566-
sid = s.id
567-
return sid
568-
569-
570-
@router.post("/sessions/{session_id}")
571-
def update_session(
572-
session_id: MurfeySessionID, process: bool = True, db=murfey_db
573-
) -> None:
574-
session = db.exec(select(Session).where(session_id == session_id)).one()
575-
session.process = process
576-
db.add(session)
577-
db.commit()
578-
return None
579-
580-
581-
@router.put("/sessions/{session_id}/current_gain_ref")
582-
def update_current_gain_ref(
583-
session_id: MurfeySessionID, new_gain_ref: CurrentGainRef, db=murfey_db
584-
):
585-
session = db.exec(select(Session).where(Session.id == session_id)).one()
586-
session.current_gain_ref = new_gain_ref.path
587-
db.add(session)
588-
db.commit()
589-
590-
591418
@router.get("/prometheus/{metric_name}")
592419
def inspect_prometheus_metrics(
593420
metric_name: str,

0 commit comments

Comments
 (0)