Skip to content

Commit d775661

Browse files
committed
Fix datetime related problems
1 parent 8f8b512 commit d775661

File tree

3 files changed

+20
-9
lines changed

3 files changed

+20
-9
lines changed

src/murfey/instrument_server/api.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,11 +214,11 @@ def stop_multigrid_watcher(session_id: MurfeySessionID, label: str):
214214
watchers[label].request_stop()
215215

216216

217-
@router.post("/sessions/{session_id}/multigrid_controller/visit_end_time/{timestamp}")
217+
@router.post("/sessions/{session_id}/multigrid_controller/visit_end_time")
218218
def update_multigrid_controller_visit_end_time(
219-
session_id: MurfeySessionID, timestamp: float
219+
session_id: MurfeySessionID, end_time: datetime
220220
):
221-
controllers[session_id].update_visit_time(datetime.fromtimestamp(timestamp))
221+
controllers[session_id].update_visit_time(end_time)
222222

223223

224224
class RsyncerSource(BaseModel):

src/murfey/server/api/instrument.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import asyncio
44
import datetime
55
import logging
6+
import urllib
67
from pathlib import Path
78
from typing import Annotated, List, Optional
89

@@ -123,7 +124,7 @@ async def setup_multigrid_watcher(
123124
str(k): v for k, v in watcher_spec.destination_overrides.items()
124125
},
125126
"rsync_restarts": watcher_spec.rsync_restarts,
126-
"visit_end_time": session.visit_end_time,
127+
"visit_end_time": str(session.visit_end_time),
127128
},
128129
headers={
129130
"Authorization": f"Bearer {instrument_server_tokens[session_id]['access_token']}"
@@ -394,9 +395,9 @@ async def finalise_session(session_id: MurfeySessionID, db=murfey_db):
394395
return data
395396

396397

397-
@router.post("/sessions/{session_id}/multigrid_controller/visit_end_time/{timestamp}")
398+
@router.post("/sessions/{session_id}/multigrid_controller/visit_end_time")
398399
async def update_visit_end_time(
399-
session_id: MurfeySessionID, timestamp: float, db=murfey_db
400+
session_id: MurfeySessionID, end_time: datetime.datetime, db=murfey_db
400401
):
401402
data = {}
402403
instrument_name = (
@@ -408,7 +409,7 @@ async def update_visit_end_time(
408409
if machine_config.instrument_server_url:
409410
async with aiohttp.ClientSession() as clientsession:
410411
async with clientsession.post(
411-
f"{machine_config.instrument_server_url}{url_path_for('api.router', 'update_multigrid_controller_visit_end_time', session_id=session_id, timestamp=timestamp)}",
412+
f"{machine_config.instrument_server_url}{url_path_for('api.router', 'update_multigrid_controller_visit_end_time', session_id=session_id)}?end_time={urllib.parse.quote(end_time.isoformat())}",
412413
headers={
413414
"Authorization": f"Bearer {instrument_server_tokens[session_id]['access_token']}"
414415
},

src/murfey/util/route_manifest.yaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ murfey.instrument_server.api.router:
3838
type: str
3939
methods:
4040
- DELETE
41+
- path: /sessions/{session_id}/multigrid_controller/visit_end_time
42+
function: update_multigrid_controller_visit_end_time
43+
path_params: []
44+
methods:
45+
- POST
4146
- path: /sessions/{session_id}/stop_rsyncer
4247
function: stop_rsyncer
4348
path_params: []
@@ -535,6 +540,11 @@ murfey.server.api.instrument.router:
535540
path_params: []
536541
methods:
537542
- POST
543+
- path: /instrument_server/sessions/{session_id}/multigrid_controller/visit_end_time
544+
function: update_visit_end_time
545+
path_params: []
546+
methods:
547+
- POST
538548
- path: /instrument_server/sessions/{session_id}/abandon_session
539549
function: abandon_session
540550
path_params: []
@@ -1065,14 +1075,14 @@ murfey.server.api.workflow.router:
10651075
function: register_dc_group
10661076
path_params:
10671077
- name: visit_name
1068-
type: typing.Any
1078+
type: Any
10691079
methods:
10701080
- POST
10711081
- path: /workflow/visits/{visit_name}/{session_id}/start_data_collection
10721082
function: start_dc
10731083
path_params:
10741084
- name: visit_name
1075-
type: typing.Any
1085+
type: Any
10761086
methods:
10771087
- POST
10781088
- path: /workflow/visits/{visit_name}/{session_id}/register_processing_job

0 commit comments

Comments
 (0)