From 97eda5217606ad5e2eed4ed767cfb50d43a4c104 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Wed, 28 Nov 2018 12:11:15 +0100 Subject: [PATCH] added /data/debug-dump/<hostname> route --- inventory_provider/app.py | 3 ++- inventory_provider/routes/data.py | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/inventory_provider/app.py b/inventory_provider/app.py index 96316f23..689f2d3e 100644 --- a/inventory_provider/app.py +++ b/inventory_provider/app.py @@ -20,4 +20,5 @@ logging.basicConfig( app = inventory_provider.create_app() if __name__ == "__main__": - app.run(host="::", port="7777") + # app.run(host="::", port="7777") + app.run(host="::", port="7878") diff --git a/inventory_provider/routes/data.py b/inventory_provider/routes/data.py index d882cc4b..45309fef 100644 --- a/inventory_provider/routes/data.py +++ b/inventory_provider/routes/data.py @@ -83,3 +83,24 @@ def router_interfaces(hostname): return Response( json.dumps(interfaces), mimetype="application/json") + + +@routes.route("/debug-dump/<hostname>", methods=['GET', 'POST']) +@require_accepts_json +def debug_dump_router_info(hostname): + redis_config = current_app.config["INVENTORY_PROVIDER_CONFIG"]["redis"] + r = redis.StrictRedis( + host=redis_config["hostname"], + port=redis_config["port"]) + + info = dict([(k.decode('utf-8'), json.loads(v.decode('utf-8'))) + for k,v in r.hgetall(hostname).items()]) + if not info: + return Response( + response="no info found for router '%s'" % hostname, + status=404, + mimetype="text/html") + + return Response( + json.dumps(info), + mimetype="application/json") -- GitLab