|
13 | 13 | ENDPOINT = "https://registry-test.cilogon.org/registry/"
|
14 | 14 | OSG_CO_ID = 8
|
15 | 15 |
|
| 16 | +GET = "GET" |
| 17 | +PUT = "PUT" |
| 18 | +POST = "POST" |
| 19 | +DELETE = "DELETE" |
| 20 | + |
16 | 21 |
|
17 | 22 | _usage = f"""\
|
18 | 23 | usage: [PASS=...] {SCRIPT} [OPTIONS]
|
@@ -74,17 +79,34 @@ def mkauthstr(user, passwd):
|
74 | 79 |
|
75 | 80 |
|
76 | 81 | def mkrequest(target, **kw):
|
| 82 | + return mkrequest2(GET, target, **kw) |
| 83 | + |
| 84 | + |
| 85 | +def mkrequest2(method, target, **kw): |
| 86 | + return mkrequest3(method, target, data=None, **kw) |
| 87 | + |
| 88 | + |
| 89 | +def mkrequest3(method, target, data, **kw): |
77 | 90 | url = os.path.join(options.endpoint, target)
|
78 | 91 | if kw:
|
79 | 92 | url += "?" + "&".join( "{}={}".format(k,v) for k,v in kw.items() )
|
80 |
| - req = urllib.request.Request(url) |
| 93 | + req = urllib.request.Request(url, json.dumps(data).encode("utf-8")) |
81 | 94 | req.add_header("Authorization", "Basic %s" % options.authstr)
|
82 |
| - req.get_method = lambda: 'GET' |
| 95 | + req.add_header("Content-Type", "application/json") |
| 96 | + req.get_method = lambda: method |
83 | 97 | return req
|
84 | 98 |
|
85 | 99 |
|
86 | 100 | def call_api(target, **kw):
|
87 |
| - req = mkrequest(target, **kw) |
| 101 | + return call_api2(GET, target, **kw) |
| 102 | + |
| 103 | + |
| 104 | +def call_api2(method, target, **kw): |
| 105 | + return call_api3(method, target, data=None, **kw) |
| 106 | + |
| 107 | + |
| 108 | +def call_api3(method, target, data, **kw): |
| 109 | + req = mkrequest3(method, target, data, **kw) |
88 | 110 | resp = urllib.request.urlopen(req)
|
89 | 111 | payload = resp.read()
|
90 | 112 | return json.loads(payload) if payload else None
|
|
0 commit comments