summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2019-03-16 18:13:52 +0200
committerLars Wirzenius <liw@liw.fi>2019-03-16 18:13:52 +0200
commitf101d4fa71e4eb20ce1ef245b6e4da96584f5e03 (patch)
tree12549c38bab0c7b04e2e74891ecd7069c2b26f36
parentfbe2e21c4bc9c27d3e5d615d787c90837a424d13 (diff)
downloadeffitool-f101d4fa71e4eb20ce1ef245b6e4da96584f5e03.tar.gz
Add: tomjon update-member
-rwxr-xr-xeffitool46
1 files 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()