Skip to content
Snippets Groups Projects
Commit 4f57da1d authored by Christopher Randolph Rhodes's avatar Christopher Randolph Rhodes
Browse files

Report out session logs on API

parent 0028bde8
No related branches found
No related tags found
2 merge requests!16Completed (de)serialization of RoiSet,!9Session exposes a python log
......@@ -62,6 +62,10 @@ def restart_session(root: str = None) -> dict:
session.restart(root=root)
return session.describe_loaded_models()
@app.get('/session/logs')
def list_session_log() -> list:
return session.get_log_data()
@app.get('/models')
def list_active_models():
return session.describe_loaded_models()
......
......@@ -79,6 +79,15 @@ class Session(object, metaclass=Singleton):
idx += 1
return f'{yyyymmdd}-{idx:04d}'
def get_log_data(self) -> list:
log = []
with open(self.logfile, 'r') as fh:
for line in fh:
k = ['datatime', 'level', 'message']
v = line.strip().split(' - ')[0:3]
log.insert(0, dict(zip(k, v)))
return log
def log_info(self, msg):
logger.info(msg)
......
......@@ -171,4 +171,9 @@ class TestApiFromAutomatedClient(TestServerBaseClass):
)
self.assertEqual(resp_change.status_code, 200)
resp_check = self._get('paths')
self.assertEqual(resp_inpath.json()['outbound_images'], resp_check.json()['outbound_images'])
\ No newline at end of file
self.assertEqual(resp_inpath.json()['outbound_images'], resp_check.json()['outbound_images'])
def test_get_logs(self):
resp = self._get('session/logs')
self.assertEqual(resp.status_code, 200)
self.assertEqual(resp.json()[0]['message'], 'Initialized session')
\ No newline at end of file
......@@ -65,6 +65,15 @@ class TestGetSessionObject(unittest.TestCase):
log = fh.read()
self.assertTrue(msg in log)
def test_get_logs(self):
self.sesh.log_info('Info example 1')
self.sesh.log_warning('Example warning')
self.sesh.log_info('Info example 2')
logs = self.sesh.get_log_data()
self.assertEqual(len(logs), 4)
self.assertEqual(logs[1]['level'], 'WARNING')
self.assertEqual(logs[-1]['message'], 'Initialized session')
def test_session_records_workflow(self):
di = WorkflowRunRecord(
model_id='test_model',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment