diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-04-24 17:03:17 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-04-25 19:07:44 +0300 |
commit | 224afe3b367cba9b978115e969e714c14c71caa6 (patch) | |
tree | 89f578874c9e75b6ebb93f46f5ecddfb8d94adf0 /ick2/workerapi.py | |
parent | df60c28287900478ced251123c9887e61e0dc17c (diff) | |
download | ick2-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.py | 19 |
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) |