diff options
Diffstat (limited to 'effitool')
-rwxr-xr-x | effitool | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -163,6 +163,17 @@ class HTTPAPI: r = urllib.request.urlopen(req) return self.request_json(r) + def delete(self, token, path, headers=None): + url = self.url(path) + host, port, path = self.parse_url(url) + + if headers is None: + headers = {} + headers['Authorization'] = 'Bearer {}'.format(token) + + req = urllib.request.Request(url, headers=headers, method='DELETE') + urllib.request.urlopen(req) + def parse_url(self, url): parse = urllib.parse.urlparse(url) if parse.scheme != 'https': @@ -326,6 +337,16 @@ class Tool: api = HTTPAPI(server['url']) api.put_json(token, '/memb', memb, headers=headers) + def delete_member(self, args): + headers = { + 'Muck-Id': args['rid'], + } + + server = self.get_chosen_server(args) + token = self.get_admin_token(server) + api = HTTPAPI(server['url']) + api.delete(token, '/memb', headers=headers) + def list_members(self, args): server = self.get_chosen_server(args) token = self.get_admin_token(server) @@ -387,6 +408,9 @@ def process_args(config): ('rid', {}), ('filename', {}), ]), + ('delete-member', tool.delete_member, [ + ('rid', {}), + ]), ] p = argparse.ArgumentParser() |