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