diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-04-23 12:40:57 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-04-23 12:53:09 +0300 |
commit | e826bfcbc6ca6c16da0941125f7675d49f5a413e (patch) | |
tree | dee5d472908c27a2ab272511a75345273ecf6663 /ick2/workerapi.py | |
parent | 85dd5c6551845ebc34c490f7fbc27a02d307f206 (diff) | |
download | ick2-e826bfcbc6ca6c16da0941125f7675d49f5a413e.tar.gz |
Add: don't have a PUT for workers, log created worker
Diffstat (limited to 'ick2/workerapi.py')
-rw-r--r-- | ick2/workerapi.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/ick2/workerapi.py b/ick2/workerapi.py index 5a7e835..bed14b4 100644 --- a/ick2/workerapi.py +++ b/ick2/workerapi.py @@ -21,5 +21,41 @@ class WorkerAPI(ick2.ResourceApiBase): # pragma: no cover def __init__(self, state): super().__init__('workers', state) + def get_routes(self, path): + return [ + { + 'method': 'POST', + 'path': path, + 'callback': self.POST(self.create), + }, + { + 'method': 'GET', + 'path': path, + 'callback': self.GET(self.list), + }, + { + 'method': 'GET', + 'path': '{}/<name>'.format(path), + 'callback': self.GET(self.show), + }, + { + 'method': 'DELETE', + 'path': '{}/<name>'.format(path), + 'callback': self.DELETE(self.delete), + }, + ] + def get_resource_name(self, resource): return resource['worker'] + + 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) |