summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2019-03-16 18:17:04 +0200
committerLars Wirzenius <liw@liw.fi>2019-03-16 18:17:04 +0200
commit50a5e674ae97c49c1296b2b7d95e4ddaa9088776 (patch)
tree83ed789ffeba15ae67e2323b2489cd8d3ba02052
parentf101d4fa71e4eb20ce1ef245b6e4da96584f5e03 (diff)
downloadeffitool-50a5e674ae97c49c1296b2b7d95e4ddaa9088776.tar.gz
Add: effitool delete-member
-rwxr-xr-xeffitool24
1 files changed, 24 insertions, 0 deletions
diff --git a/effitool b/effitool
index df448a9..1f4ca44 100755
--- a/effitool
+++ b/effitool
@@ -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()