mirror of https://github.com/f4exb/sdrangel.git
73 lines
2.2 KiB
Python
73 lines
2.2 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import requests, traceback, sys, json
|
||
|
from optparse import OptionParser
|
||
|
|
||
|
base_url = "http://127.0.0.1:8091/sdrangel"
|
||
|
|
||
|
# commands list in JSON file. Each command is a list:
|
||
|
# - URL suffix (API function)
|
||
|
# - HTTP method (GET, PATCH, POST, PUT, DELETE)
|
||
|
# - Params as key:value pairs or None if unused
|
||
|
# - JSON body or None if unused
|
||
|
# - Descriptive message fragment
|
||
|
|
||
|
requests_methods = {
|
||
|
"GET": requests.get,
|
||
|
"PATCH": requests.patch,
|
||
|
"POST": requests.post,
|
||
|
"PUT": requests.put,
|
||
|
"DELETE": requests.delete
|
||
|
}
|
||
|
|
||
|
# ======================================================================
|
||
|
def getInputOptions():
|
||
|
|
||
|
parser = OptionParser(usage="usage: %%prog [-t]\n")
|
||
|
parser.add_option("-a", "--address", dest="address", help="address and port", metavar="ADDRESS", type="string")
|
||
|
parser.add_option("-j", "--json-file", dest="json_file", help="JSON file containing commands", metavar="FILE", type="string")
|
||
|
|
||
|
(options, args) = parser.parse_args()
|
||
|
|
||
|
if (options.address == None):
|
||
|
options.address = "127.0.0.1:8091"
|
||
|
|
||
|
return options
|
||
|
|
||
|
# ======================================================================
|
||
|
def main():
|
||
|
try:
|
||
|
options = getInputOptions()
|
||
|
|
||
|
global base_url
|
||
|
base_url = "http://%s/sdrangel" % options.address
|
||
|
|
||
|
with open(options.json_file) as json_file:
|
||
|
commands = json.load(json_file)
|
||
|
for command in commands:
|
||
|
url = base_url + command[0]
|
||
|
method = requests_methods.get(command[1], None)
|
||
|
if method is not None:
|
||
|
r = method(url=url, params=command[2], json=command[3])
|
||
|
if r.status_code // 100 == 2:
|
||
|
print("Done: %s" % command[4])
|
||
|
else:
|
||
|
print("Error %d:%s" % (r.status_code, command[4]))
|
||
|
print(r.text)
|
||
|
exit(1)
|
||
|
else:
|
||
|
print("requests method error")
|
||
|
exit(1)
|
||
|
|
||
|
print("All done!")
|
||
|
|
||
|
except Exception as ex:
|
||
|
tb = traceback.format_exc()
|
||
|
print >> sys.stderr, tb
|
||
|
|
||
|
|
||
|
# ======================================================================
|
||
|
if __name__ == "__main__":
|
||
|
main()
|
||
|
|