1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#!/usr/bin/env python3
import json
import sys
import requests
def get_token(url, client_id, client_secret, scopes):
url = '{}/token'.format(url)
auth = (client_id, client_secret)
data = {
'grant_type': 'client_credentials',
'scope': ' '.join(scopes),
}
r = requests.post(url, auth=auth, data=data)
if not r.ok:
sys.exit('HTTP error: {} {}'.format(r.status_code, r.text))
obj = r.json()
return obj[u'access_token']
def create(url, token, obj):
url = '{}/res'.format(url)
headers = get_authz_headers(token)
r = requests.post(url, headers=headers, data=obj)
if not r.ok:
sys.exit('HTTP error: {} {}'.format(r.status_code, r.text))
return r.headers['Muck-Id']
def show(url, token, rid):
url = '{}/res'.format(url)
headers = get_authz_headers(token)
headers['Muck-Id'] = rid
r = requests.get(url, headers=headers)
if not r.ok:
sys.exit('HTTP error: {} {}'.format(r.status_code, r.text))
return r.json()
def get_authz_headers(token):
return {
'Authorization': 'Bearer {}'.format(token),
}
args = sys.argv[1:]
base_url = args.pop(0)
client_id = args.pop(0)
client_secret = args.pop(0)
cmd = args.pop(0)
if cmd == 'token':
scopes = args
token = get_token(base_url, client_id, client_secret, scopes)
print(token)
elif cmd == 'create':
obj = args.pop(0)
scopes = ['create']
token = get_token(base_url, client_id, client_secret, scopes)
ret = create(base_url, token, obj)
print(ret)
elif cmd == 'show':
rid = args.pop(0)
scopes = ['show']
token = get_token(base_url, client_id, client_secret, scopes)
obj = show(base_url, token, rid)
print(obj)
else:
sys.exit('Do not understand')
|