From f101d4fa71e4eb20ce1ef245b6e4da96584f5e03 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 16 Mar 2019 18:13:52 +0200 Subject: Add: tomjon update-member --- effitool | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/effitool b/effitool index 7c90a9a..df448a9 100755 --- a/effitool +++ b/effitool @@ -142,18 +142,21 @@ class HTTPAPI: def post_json(self, token, path, obj): return self.send_json('POST', token, path, obj) - def put_json(self, token, path, obj): - return self.send_json('PUT', token, path, obj) + def put_json(self, token, path, obj, headers=None): + return self.send_json('PUT', token, path, obj, headers=headers) - def send_json(self, method, token, path, obj): + def send_json(self, method, token, path, obj, headers=None): url = self.url(path) host, port, path = self.parse_url(url) data = json.dumps(obj).encode('UTF-8') - headers = { + + if headers is None: + headers = {} + headers.update({ 'Content-type': JSON, 'Authorization': 'Bearer {}'.format(token), - } + }) req = urllib.request.Request( url, data=data, headers=headers, method=method) @@ -297,6 +300,32 @@ class Tool: api = HTTPAPI(server['url']) api.post_json(token, '/memb', memb) + def show_member(self, args): + server = self.get_chosen_server(args) + token = self.get_admin_token(server) + api = HTTPAPI(server['url']) + + headers = { + 'Muck-Id': args['rid'], + } + + memb = api.get_json(token, '/memb', headers=headers) + print(memb) + + def update_member(self, args): + rid = args['rid'] + with open(args['filename']) as f: + memb = json.load(f) + + headers = { + 'Muck-Id': args['rid'], + } + + server = self.get_chosen_server(args) + token = self.get_admin_token(server) + api = HTTPAPI(server['url']) + api.put_json(token, '/memb', memb, headers=headers) + def list_members(self, args): server = self.get_chosen_server(args) token = self.get_admin_token(server) @@ -351,6 +380,13 @@ def process_args(config): ('add-member', tool.add_member, [ ('filename', {}), ]), + ('show-member', tool.show_member, [ + ('rid', {}), + ]), + ('update-member', tool.update_member, [ + ('rid', {}), + ('filename', {}), + ]), ] p = argparse.ArgumentParser() -- cgit v1.2.1