diff options
Diffstat (limited to 'api.py')
-rwxr-xr-x | api.py | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -404,7 +404,7 @@ class Controller(API): def __init__(self, token): super().__init__() self._token = token - self._builds = [] + self._builds = {} def get_routes(self): return [ @@ -430,7 +430,7 @@ class Controller(API): def _status(self): return { - 'builds': list(self._builds), + 'builds': {name: self._builds[name] for name in sorted(self._builds)}, } def _trigger(self): @@ -441,8 +441,13 @@ class Controller(API): logging.debug('Request: %r', bottle.request.body.read()) raise bottle.HTTPError(400) - logging.info('Triggering build of %r', spec) - self._builds.append(spec) + name = spec.get('gitlab') + if name is None: + logging.error('Request spec has no gitlab') + raise bottle.HTTPError(400) + + logging.info('Triggering build of %s', name) + self._builds[name] = None url = '{}/updaterepo'.format(self.VCSWORKER) argv = [ @@ -466,6 +471,7 @@ class Controller(API): if kind == 'build' and r is not None: name = r.get('name') logging.info('Repository %s build status %s', name, status) + self._builds[name] = status |