summaryrefslogtreecommitdiff
path: root/ick2/workapi.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-04-24 17:03:17 +0300
committerLars Wirzenius <liw@liw.fi>2018-04-25 19:07:44 +0300
commit224afe3b367cba9b978115e969e714c14c71caa6 (patch)
tree89f578874c9e75b6ebb93f46f5ecddfb8d94adf0 /ick2/workapi.py
parentdf60c28287900478ced251123c9887e61e0dc17c (diff)
downloadick2-224afe3b367cba9b978115e969e714c14c71caa6.tar.gz
Change: GET /work, POST /worker use access token to identify worker
Diffstat (limited to 'ick2/workapi.py')
-rw-r--r--ick2/workapi.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/ick2/workapi.py b/ick2/workapi.py
index 1f8c827..32c988e 100644
--- a/ick2/workapi.py
+++ b/ick2/workapi.py
@@ -30,7 +30,7 @@ class WorkAPI(ick2.APIbase):
return [
{
'method': 'GET',
- 'path': '{}/<worker>'.format(path),
+ 'path': '{}'.format(path),
'callback': self.GET(self.get_work),
},
{
@@ -40,7 +40,8 @@ class WorkAPI(ick2.APIbase):
},
]
- def get_work(self, worker, **kwargs):
+ def get_work(self, **kwargs):
+ worker = self._get_client_id(**kwargs)
worker_state = self._workers.get_worker(worker)
if not worker_state.get('doing'):
project = self._pick_triggered_project()
@@ -73,6 +74,13 @@ class WorkAPI(ick2.APIbase):
return worker_state['doing']
+ def _get_client_id(self, **kwargs):
+ claims = kwargs.get('claims', {})
+ client_id = claims.get('aud')
+ if client_id is None: # pragma: no cover
+ raise ick2.ClientIdMissing()
+ return client_id
+
def _pick_build_number(self, project):
old_build_no = project.get('next_build_id')
build_no = (old_build_no or 0) + 1