diff --git a/inventory_provider/routes/opsdb.py b/inventory_provider/routes/opsdb.py index e3e5c2a513b45b81d151a3ad66861db080adfb49..a9c06014e538972ec0de0020ae46cdb4e17189b4 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