Skip to content

Commit 197bd2f

Browse files
committed
Fix datetime related problems
1 parent 9d3827f commit 197bd2f

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
@@ -211,11 +211,11 @@ def stop_multigrid_watcher(session_id: MurfeySessionID, label: str):
211211
watchers[label].request_stop()
212212

213213

214-
@router.post("/sessions/{session_id}/multigrid_controller/visit_end_time/{timestamp}")
214+
@router.post("/sessions/{session_id}/multigrid_controller/visit_end_time")
215215
def update_multigrid_controller_visit_end_time(
216-
session_id: MurfeySessionID, timestamp: float
216+
session_id: MurfeySessionID, end_time: datetime
217217
):
218-
controllers[session_id].update_visit_time(datetime.fromtimestamp(timestamp))
218+
controllers[session_id].update_visit_time(end_time)
219219

220220

221221
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: []
@@ -529,6 +534,11 @@ murfey.server.api.instrument.router:
529534
path_params: []
530535
methods:
531536
- POST
537+
- path: /instrument_server/sessions/{session_id}/multigrid_controller/visit_end_time
538+
function: update_visit_end_time
539+
path_params: []
540+
methods:
541+
- POST
532542
- path: /instrument_server/sessions/{session_id}/abandon_session
533543
function: abandon_session
534544
path_params: []
@@ -1059,14 +1069,14 @@ murfey.server.api.workflow.router:
10591069
function: register_dc_group
10601070
path_params:
10611071
- name: visit_name
1062-
type: typing.Any
1072+
type: Any
10631073
methods:
10641074
- POST
10651075
- path: /workflow/visits/{visit_name}/{session_id}/start_data_collection
10661076
function: start_dc
10671077
path_params:
10681078
- name: visit_name
1069-
type: typing.Any
1079+
type: Any
10701080
methods:
10711081
- POST
10721082
- path: /workflow/visits/{visit_name}/{session_id}/register_processing_job

0 commit comments

Comments
 (0)