diff options
-rw-r--r-- | qvisqve/management_router.py | 19 | ||||
-rwxr-xr-x | qvisqvetool | 12 |
2 files changed, 31 insertions, 0 deletions
diff --git a/qvisqve/management_router.py b/qvisqve/management_router.py index 6095d41..5592677 100644 --- a/qvisqve/management_router.py +++ b/qvisqve/management_router.py @@ -69,6 +69,11 @@ class ManagementEndpoint: }, { 'method': 'PUT', + 'path': '{}/<id>'.format(self._path), + 'callback': self._update, + }, + { + 'method': 'PUT', 'path': '{}/<id>/secret'.format(self._path), 'callback': self._set_secret, }, @@ -93,6 +98,20 @@ class ManagementEndpoint: location = '{}{}/{}'.format(self._baseurl, self._path, entity_id) return qvisqve.created_response(entity, location) + def _update(self, content_type, body, **kwargs): + qvisqve.log.log('info', msg_text='Updating', path=self._path) + + entity_id = kwargs['id'] + try: + entity = self._entities.get(entity_id) + except qvisqve.ResourceDoesNotExist as e: + return qvisqve.not_found_response() + + self._entities.create(entity_id, body) + + entity = self._entities.get(entity_id) + return qvisqve.ok_response(entity) + def _list(self, content_type, body, **kwargs): qvisqve.log.log('info', msg_text='Listing', path=self._path) entity_ids = list(self._entities.list()) diff --git a/qvisqvetool b/qvisqvetool index 731606e..bfd92fe 100755 --- a/qvisqvetool +++ b/qvisqvetool @@ -150,6 +150,17 @@ class QvisqveTool(cliapp.Application): self.output.write('Set secret for {}\n'.format(name)) + def cmd_add_callback(self, args): + name, callback = args + + api, token = self.get_api() + + path = '/applications/{}'.format(name) + r = api.GET(token, path) + app = r.json() + app['callbacks'] = app.get('callbacks', []) + [callback] + api.PUT(token, path, json.dumps(app), json_content_type) + def cmd_GET(self, args): api, token = self.get_api() r = api.GET(token, args[0]) @@ -313,6 +324,7 @@ def default_scopes(): scopes.append('uapi_{}_post'.format(resource_type)) scopes.append('uapi_{}_get'.format(resource_type)) scopes.append('uapi_{}_id_get'.format(resource_type)) + scopes.append('uapi_{}_id_put'.format(resource_type)) scopes.append('uapi_{}_id_secret_put'.format(resource_type)) scopes.append('uapi_{}_id_delete'.format(resource_type)) return ' '.join(scopes) |