summaryrefslogtreecommitdiff
path: root/ick2/workerapi.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/workerapi.py
parentdf60c28287900478ced251123c9887e61e0dc17c (diff)
downloadick2-224afe3b367cba9b978115e969e714c14c71caa6.tar.gz
Change: GET /work, POST /worker use access token to identify worker
Diffstat (limited to 'ick2/workerapi.py')
-rw-r--r--ick2/workerapi.py19
1 files changed, 11 insertions, 8 deletions
diff --git a/ick2/workerapi.py b/ick2/workerapi.py
index 7f2f0b7..2af240e 100644
--- a/ick2/workerapi.py
+++ b/ick2/workerapi.py
@@ -24,14 +24,17 @@ class WorkerAPI(ick2.ResourceApiBase): # pragma: no cover
def get_resource_name(self, resource):
return resource['worker']
+ def _get_client_id(self, **kwargs):
+ claims = kwargs.get('claims', {})
+ client_id = claims.get('aud')
+ if client_id is None:
+ raise ick2.ClientIdMissing()
+ return client_id
+
def create(self, body, **kwargs):
ick2.log.log(
'trace', msg_text='create worker', body=body, kwargs=kwargs)
- resource = self.mangle_new_resource(body)
- name = self.get_resource_name(resource)
- try:
- self._state.get_resource(self._type_name, name)
- except ick2.NotFound:
- return self._state.add_resource(self._type_name, name, resource)
- else:
- raise ick2.ExistsAlready(name)
+
+ client_id = self._get_client_id(**kwargs)
+ body['worker'] = client_id
+ return super().create(body, **kwargs)