From 81432d32e2d536057dee7a233a586481eff255e4 Mon Sep 17 00:00:00 2001
From: Robert Latta <robert.latta@geant.org>
Date: Tue, 8 Jan 2019 08:28:08 +0000
Subject: [PATCH] Added in routes for circuit hierarchy and tidied up other
 routes

---
 inventory_provider/routes/opsdb.py | 48 ++++++++++++------------------
 1 file changed, 19 insertions(+), 29 deletions(-)

diff --git a/inventory_provider/routes/opsdb.py b/inventory_provider/routes/opsdb.py
index e3e5c2a5..a9c06014 100644
--- a/inventory_provider/routes/opsdb.py
+++ b/inventory_provider/routes/opsdb.py
@@ -1,9 +1,9 @@
 import functools
 import json
 
-from flask import Blueprint, request, Response, current_app
-from inventory_provider import opsdb
+from flask import Blueprint, request, Response
 from inventory_provider import db
+from inventory_provider.storage import external_inventory
 
 routes = Blueprint("inventory-opsdb-query-routes", __name__)
 
@@ -39,17 +39,6 @@ def _decode_utf8_dict(d):
     return {k.decode('utf8'): json.loads(v) for k, v in d.items()}
 
 
-@routes.route("/circuit-hierarchy", methods=['GET', ])
-@require_accepts_json
-def opsdb_circuit_hierarchy():
-    #  todo - Retrieve data from redis
-    result = [{"Parent Name": "circuit 1"}, {"Parent Name": "Circuit 2"}]
-
-    return Response(
-        json.dumps(result),
-        mimetype="application/json")
-
-
 @routes.route("/interfaces")
 def get_all_interface_details():
     r = db.get_redis()
@@ -95,28 +84,29 @@ def get_all_equipment_locations():
         mimetype="application/json")
 
 
-@routes.route("/equipment-location/<equipment_name>")
+@routes.route("/equipment-location/<path:equipment_name>")
 def get_equipment_location(equipment_name):
     r = db.get_redis()
     return Response(
         r.hget(equipment_locations_key, equipment_name),
         mimetype="application/json")
 
-#  todo - Add in the routes for the circuit hierarchy, the actual load of the data is already done
-
-
-# todo - Below are temporary routes that need to be removed
-
-@routes.route("/circuit-sql")
-def get_circuits_sql():
-    return Response(opsdb._generate_get_circuits_sql(), mimetype="text/plain")
 
-
-@routes.route("/infinera-circuit-sql", methods=['GET',])
-def get_infinera_circuits_sql():
-    return Response(opsdb.generate_infinera_sql(), mimetype="text/plain")
+@routes.route("/circuit-hierarchy/children/<parent_id>")
+def get_children(parent_id):
+    r = db.get_redis()
+    return Response(
+        r.hget(
+            external_inventory.service_parent_to_children_key,
+            parent_id),
+        mimetype="application/json")
 
 
-@routes.route("/equipment-location-sql", methods=['GET',])
-def get_equipment_location_sql():
-    return Response(opsdb.equipment_location_query, mimetype="text/plain")
\ No newline at end of file
+@routes.route("/circuit-hierarchy/parents/<child_id>")
+def get_parents(child_id):
+    r = db.get_redis()
+    return Response(
+        r.hget(
+            external_inventory.service_child_to_parents_key,
+            child_id),
+        mimetype="application/json")
\ No newline at end of file
-- 
GitLab