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