summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2019-03-23 13:33:24 +0200
committerLars Wirzenius <liw@liw.fi>2019-03-23 13:33:24 +0200
commit61f1fc798cd3447d1b926d33e7da450eb6273766 (patch)
treef9d50b9871baf0c534e689bd70a676545016b18c
parentcbd569a83ceb14935a3a4505ae898f0b532c4e1e (diff)
downloadeffitool-61f1fc798cd3447d1b926d33e7da450eb6273766.tar.gz
Add: effitool dump-members
-rwxr-xr-xeffitool30
1 files changed, 30 insertions, 0 deletions
diff --git a/effitool b/effitool
index d466ca5..611c932 100755
--- a/effitool
+++ b/effitool
@@ -370,6 +370,35 @@ class Tool:
for rid in sorted(obj.get('resources', [])):
print(rid)
+ def dump_members(self, args):
+ server = self.get_chosen_server(args)
+ token = self.get_admin_token(server)
+ api = HTTPAPI(server['url'])
+ cond = {
+ 'cond': [
+ {
+ 'where': 'meta',
+ 'op': '>=',
+ 'field': 'id',
+ 'pattern': '',
+ }
+ ]
+ }
+ body = json.dumps(cond).encode('utf-8')
+ headers = {
+ 'Content-Type': 'application/json',
+ }
+ obj = api.get_list(token, '/search', headers=headers, body=body)
+ rids = obj.get('resources', [])
+
+ members = {}
+ for rid in rids:
+ headers = {
+ 'Muck-Id': rid,
+ }
+ members[rid] = api.get_json(token, '/memb', headers=headers)
+ json.dump(members, sys.stdout, indent=4)
+
def uniq(items):
return list(sorted(set(items)))
@@ -399,6 +428,7 @@ def process_args(config):
('scope', {'nargs':'*'}),
]),
('list-members', tool.list_members, []),
+ ('dump-members', tool.dump_members, []),
('add-member', tool.add_member, [
('filename', {}),
]),