summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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()