diff options
Diffstat (limited to 'ick2/controllerapi.py')
-rw-r--r-- | ick2/controllerapi.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/ick2/controllerapi.py b/ick2/controllerapi.py index 09d14bc..63daa94 100644 --- a/ick2/controllerapi.py +++ b/ick2/controllerapi.py @@ -226,6 +226,28 @@ class ProjectAPI(ResourceApiBase): def get_resource_name(self, resource): return resource['project'] + def get_routes(self, path): # pragma: no cover + return super().get_routes(path) + self.get_pipeline_routes(path) + + def get_pipeline_routes(self, path): # pragma: no cover + pipeline_path = '{}/<project>/pipelines/<pipeline>'.format(path) + return [ + { + 'method': 'GET', + 'path': pipeline_path, + 'callback': self.GET(self.get_pipeline), + }, + ] + + def get_pipeline(self, project, pipeline): + p = self._state.get_resource(self._type_name, project) + for pl in p['pipelines']: + if pl['name'] == pipeline: + return { + 'status': pl.get('status', 'idle'), + } + raise ick2.NotFound() + def response(status_code, body, headers): # pragma: no cover obj = { |