Change-Id: Ia01b0a89e21af18b898becd8f5440c32936772b7changes/68/14968/2
parent
cacbc2b37d
commit
a008e62523
@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
import requests
|
||||
|
||||
version = "0.1"
|
||||
|
||||
#access rest
|
||||
def build_url(suffix):
|
||||
BASE_PATH = "/api/backend/v1"
|
||||
return ("http://" + server_host + ":" + server_port + BASE_PATH + suffix)
|
||||
|
||||
def rest_get(suffix):
|
||||
if verbose:
|
||||
print("GET "+ build_url(suffix))
|
||||
try:
|
||||
resp = requests.get(build_url(suffix))
|
||||
except:
|
||||
print("REST GET failed")
|
||||
return
|
||||
if resp.ok:
|
||||
try:
|
||||
js = resp.json()
|
||||
print("%s: %s" % (suffix, js))
|
||||
except:
|
||||
return
|
||||
else:
|
||||
return None
|
||||
|
||||
def rest_post(suffix, js = None):
|
||||
if verbose:
|
||||
print("POST "+ build_url(suffix)+ str(js))
|
||||
resp = requests.post(build_url(suffix), json=js)
|
||||
if not resp.ok:
|
||||
print("post failed")
|
||||
|
||||
def rest_delete(suffix):
|
||||
if verbose:
|
||||
print("DELETE "+ build_url(suffix))
|
||||
resp = requests.delete(build_url(suffix))
|
||||
if not resp.ok:
|
||||
print("delete failed")
|
||||
|
||||
#rest calls
|
||||
def slotmap_create(bank_id, bank_slot, client_id, client_slot):
|
||||
js = {
|
||||
'bank': {'bankId': bank_id, 'slotNr': bank_slot},
|
||||
'client': {'clientId': client_id, 'slotNr': client_slot},
|
||||
}
|
||||
return rest_post('/slotmaps', js)
|
||||
|
||||
def slotmap_delete(bank_id, bank_slot):
|
||||
slotmap_id = bank_id * 65536 + bank_slot
|
||||
return rest_delete("/slotmaps/%u"%slotmap_id)
|
||||
|
||||
def reset_global():
|
||||
return rest_post('/global-reset')
|
||||
|
||||
def main(argv):
|
||||
global server_port, server_host, verbose
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-H", "--host", help="host to connect to", default="127.0.0.1")
|
||||
parser.add_argument("-p", "--port", help="port to connect to", default="9997")
|
||||
parser.add_argument("-v", "--verbose", help="increase output verbosity", action="count", default=0)
|
||||
group = parser.add_mutually_exclusive_group()
|
||||
group.add_argument("-r", "--reset", help="remove all mappings (POST /global-reset)", action="store_true")
|
||||
group.add_argument("-c", "--show-clients", help="show clients (GET /clients)",nargs='?',const="all",default=None)
|
||||
group.add_argument("-b", "--show-banks", help="show banks (GET /banks)",nargs='?',const="all",default=None)
|
||||
group.add_argument("-s", "--show-slotmaps", help="show slotmaps (GET /slotmaps)",nargs='?',const="all",default=None)
|
||||
group.add_argument("-m", "--create-slotmap", help="create new slotmap (POST /slotmaps)",nargs=4,metavar=('bank_id', 'bank_slot','client_id','client_slot'))
|
||||
group.add_argument("-d", "--delete-slotmap", help="delete slotmapping (DELETE /slotmaps/<id>)", type=int, nargs=2, metavar=('bank_id','bank_slot'))
|
||||
group.add_argument("-a", "--show-all", help="show all (default if no argument given)", action="store_true")
|
||||
|
||||
args = parser.parse_args()
|
||||
if args.verbose:
|
||||
print("verbosity = ", args.verbose)
|
||||
|
||||
server_host = args.host
|
||||
server_port = args.port
|
||||
verbose = args.verbose
|
||||
|
||||
if args.reset:
|
||||
reset_global()
|
||||
return
|
||||
if args.show_clients:
|
||||
if args.show_clients == "all":
|
||||
rest_get("/clients")
|
||||
else:
|
||||
rest_get("/clients/" + str(args.show_clients))
|
||||
return
|
||||
if args.show_banks:
|
||||
if args.show_banks == "all":
|
||||
rest_get("/banks")
|
||||
else:
|
||||
rest_get("/banks/" + str(args.show_banks))
|
||||
return
|
||||
if args.show_slotmaps:
|
||||
if args.show_slotmaps == "all":
|
||||
rest_get("/slotmaps")
|
||||
else:
|
||||
rest_get("/slotmaps/" + str(args.show_slotmaps))
|
||||
return
|
||||
if args.create_slotmap:
|
||||
slotmap_create(args.create_slotmap[0],args.create_slotmap[1],args.create_slotmap[2],args.create_slotmap[3])
|
||||
return
|
||||
if args.delete_slotmap:
|
||||
slotmap_delete(args.delete_slotmap[0],args.delete_slotmap[1])
|
||||
return
|
||||
rest_get("/clients")
|
||||
rest_get("/banks")
|
||||
rest_get("/slotmaps")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv)
|
||||
|
Loading…
Reference in new issue