Skip to content
Snippets Groups Projects
Commit 60ec6911 authored by Erik Reid's avatar Erik Reid
Browse files

moved infinera classifier blueprint routes into classifier

parent 41377885
No related branches found
No related tags found
No related merge requests found
......@@ -33,10 +33,6 @@ def create_app():
from inventory_provider.routes import classifier
app.register_blueprint(classifier.routes, url_prefix='/classifier')
from inventory_provider.routes import infinera_classifier
app.register_blueprint(
infinera_classifier.routes, url_prefix='/infinera-classifier')
from inventory_provider.routes import poller
app.register_blueprint(poller.routes, url_prefix='/poller')
......
......@@ -235,3 +235,47 @@ def peer_info(address):
r.set(cache_key, result.encode('utf-8'))
return Response(result, mimetype="application/json")
@routes.route("/infinera-lambda-info/<source_equipment>/<path:interface>",
methods=['GET', 'POST'])
@common.require_accepts_json
def get_trap_metadata(source_equipment, interface):
r = common.get_redis()
cache_key = 'classifier:infinera:cache:%s:%s' % (
source_equipment, interface)
result = r.get(cache_key)
if result:
result = result.decode('utf-8')
else:
result = {}
services = r.get(
'opsdb:interface_services:%s:%s' % (source_equipment, interface))
if services:
result['services'] = json.loads(services.decode('utf=8'))
geant_lambdas = []
for s in result['services']:
gl = r.get('opsdb:geant_lambdas:%s' % s['name'])
if gl:
t_gl = json.loads(gl.decode('utf=8'))
t_gl['status'] = t_gl['status'].lower()
geant_lambdas.append(t_gl)
if geant_lambdas:
result['geant-lambdas'] = geant_lambdas
if not result:
return Response(
response="no available info for {} {}".format(
source_equipment, interface),
status=404,
mimetype="text/html")
result = json.dumps(result)
# cache this data for the next call
r.set(cache_key, result.encode('utf-8'))
return Response(result, mimetype="application/json")
import json
from inventory_provider.routes import common
from flask import Blueprint, Response
routes = Blueprint("inventory-data-inf-classifier-support-routes", __name__)
@routes.errorhandler(500)
def handle_500_error(error):
return Response(
response=str(error),
status=500)
@routes.errorhandler(422)
def handle_422_error(error):
return Response(
response=str(error),
status=422)
@routes.route("/trap-metadata/<source_equipment>/<path:interface>",
methods=['GET', 'POST'])
@common.require_accepts_json
def get_trap_metadata(source_equipment, interface):
r = common.get_redis()
cache_key = 'classifier:infinera:cache:%s:%s' % (source_equipment,
interface)
result = r.get(cache_key)
if result:
result = result.decode('utf-8')
else:
result = {}
services = r.get(
'opsdb:interface_services:%s:%s' % (source_equipment, interface))
if services:
result['services'] = json.loads(services.decode('utf=8'))
geant_lambdas = []
for s in result['services']:
gl = r.get('opsdb:geant_lambdas:%s' % s['name'])
if gl:
t_gl = json.loads(gl.decode('utf=8'))
t_gl['status'] = t_gl['status'].lower()
geant_lambdas.append(t_gl)
if geant_lambdas:
result['geant-lambdas'] = geant_lambdas
if not result:
return Response(
response="no available info for {} {}".format(
source_equipment, interface),
status=404,
mimetype="text/html")
result = json.dumps(result)
# cache this data for the next call
r.set(cache_key, result.encode('utf-8'))
return Response(result, mimetype="application/json")
......@@ -88,7 +88,7 @@ INFINERA_LINK_METADATA = {
def test_trap_metadata(client_with_mocked_data):
rv = client_with_mocked_data.get(
'/infinera-classifier/trap-metadata/LON01-DTNX10-1/1-B-2-1-3',
'/classifier/infinera-lambda-info/LON01-DTNX10-1/1-B-2-1-3',
headers=DEFAULT_REQUEST_HEADERS)
assert rv.status_code == 200
assert rv.is_json
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment