From 115b2a48f32bca5939600a66767cce5069098bf8 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 21 Apr 2018 16:55:22 +0300 Subject: Add: /status endpoint for getting status of all projects Also change icktool to use it, for speed. --- ick2/projectapi.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'ick2/projectapi.py') diff --git a/ick2/projectapi.py b/ick2/projectapi.py index d689b4a..a1a4ac6 100644 --- a/ick2/projectapi.py +++ b/ick2/projectapi.py @@ -40,9 +40,15 @@ class ProjectAPI(ick2.ResourceApiBase): return super().get_routes(path) + self.get_status_routes(path) def get_status_routes(self, path): # pragma: no cover + all_statuses_path = '/status' status_path = '{}//status'.format(path) trigger_path = '{}//+trigger'.format(path) return [ + { + 'method': 'GET', + 'path': all_statuses_path, + 'callback': self.GET(self.get_all_statuses), + }, { 'method': 'GET', 'path': status_path, @@ -61,7 +67,18 @@ class ProjectAPI(ick2.ResourceApiBase): }, ] + def get_all_statuses(self, **kwargs): # pragma: no cover + all_projects = self.list() + projects = all_projects['projects'] + ick2.log.log( + 'trace', msg_text='get_all_statuses', projects=projects) + return { + project['project']: self.get_status(project['project']) + for project in projects + } + def get_status(self, project, **kwargs): + ick2.log.log('trace', msg_text='get_status', project=project) _ = self._state.get_resource(self._type_name, project) ps = self._ps.get_instance(project) return { -- cgit v1.2.1