Skip to content

Commit dd5540a

Browse files
committed
add support for postdata and methods other than GET (SOFTWARE-5057)
1 parent a9559aa commit dd5540a

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

group_fixup.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@
1313
ENDPOINT = "https://registry-test.cilogon.org/registry/"
1414
OSG_CO_ID = 8
1515

16+
GET = "GET"
17+
PUT = "PUT"
18+
POST = "POST"
19+
DELETE = "DELETE"
20+
1621

1722
_usage = f"""\
1823
usage: [PASS=...] {SCRIPT} [OPTIONS]
@@ -74,17 +79,34 @@ def mkauthstr(user, passwd):
7479

7580

7681
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):
7790
url = os.path.join(options.endpoint, target)
7891
if kw:
7992
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"))
8194
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
8397
return req
8498

8599

86100
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)
88110
resp = urllib.request.urlopen(req)
89111
payload = resp.read()
90112
return json.loads(payload) if payload else None

0 commit comments

Comments
 (0)