diff --git a/README.md b/README.md
index 43c2c71f5cef66797d45f307487eb946619ffc49..f8215567e6b9cd389fa3cc0ee52fd82728da27d3 100644
--- a/README.md
+++ b/README.md
@@ -355,7 +355,7 @@ Any non-empty responses are JSON formatted messages.
   alarms database
 
 
-* /classifier/trap-metadata/*`source-equipment`*/*`source-interface`*
+* /classifier/juniper-link-info/*`source-equipment`*/*`source-interface`*
 
   The source-equipment is the equipment that causes the trap, not the NMS that
   sends it.
@@ -579,7 +579,7 @@ Any non-empty responses are JSON formatted messages.
     ```
 
 
-* /infinera-classifier/trap-metadata/*`source-equipment`*/*`source-interface`*
+* /classifier/infinera-lambda-info/*`source-equipment`*/*`source-interface`*
 
   The source-equipment is the equipment that causes the trap, not the NMS that
   sends it.
diff --git a/inventory_provider/__init__.py b/inventory_provider/__init__.py
index a4eadc4c3bbbc55f13e7ba88ed0c633ec87c1aea..024fac841eb30cde1e859612856db2bc2b1e1293 100644
--- a/inventory_provider/__init__.py
+++ b/inventory_provider/__init__.py
@@ -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')
 
diff --git a/inventory_provider/db/alarmsdb.py b/inventory_provider/db/alarmsdb.py
index 23e1e9249c48cb4c6594aa52b3d5480c3dbf1f53..f638acda7b89d965922a70cccdaf812fad155ba9 100644
--- a/inventory_provider/db/alarmsdb.py
+++ b/inventory_provider/db/alarmsdb.py
@@ -1,3 +1,5 @@
+# TODO: remove all of this, as well as config parameters,
+#         ...  and from puppet
 from inventory_provider.db import db
 
 
diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py
index 2c9f7f415224944f5df175290a8d941275de0540..5e6f2c9d906a95975af360e4d0fb155884070ea8 100644
--- a/inventory_provider/routes/classifier.py
+++ b/inventory_provider/routes/classifier.py
@@ -50,13 +50,14 @@ def related_interfaces(hostname, interface):
         yield k[len(prefix):]
 
 
-@routes.route("/trap-metadata/<source_equipment>/<path:interface>",
+@routes.route("/juniper-link-info/<source_equipment>/<path:interface>",
               methods=['GET', 'POST'])
 @common.require_accepts_json
-def get_trap_metadata(source_equipment, interface):
+def get_juniper_link_info(source_equipment, interface):
     r = common.get_redis()
 
-    cache_key = 'classifier:cache:%s:%s' % (source_equipment, interface)
+    cache_key = 'classifier-cache:juniper:%s:%s' % (
+        source_equipment, interface)
     result = r.get(cache_key)
 
     if result:
@@ -201,7 +202,7 @@ def peer_info(address):
 
     r = common.get_redis()
 
-    cache_key = 'classifier:peer-cache:%s' % address
+    cache_key = 'classifier-cache:peer:%s' % address
 
     result = r.get(cache_key)
     if result:
@@ -235,3 +236,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-cache:infinera:%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")
diff --git a/inventory_provider/routes/data.py b/inventory_provider/routes/data.py
index 2f893435ba9c7b88a657ad8bf37072a5f2d6fd73..3bbe8d02dd464a44cc5ddae84394286ec7faa4e2 100644
--- a/inventory_provider/routes/data.py
+++ b/inventory_provider/routes/data.py
@@ -88,33 +88,36 @@ def bgp_configs(hostname):
     return jsonify(routes)
 
 
-@routes.route("/interfaces/status/<hostname>/<path:interface>",
-              methods=['GET', 'POST'])
-@common.require_accepts_json
-def interface_statuses(hostname, interface):
-    r = common.get_redis()
-    status = r.get(
-        'alarmsdb:interface_status:%s:%s'
-        % (hostname, interface))
-    if not status:
-        return Response(
-            response="no available info for {} {}".format(hostname, interface),
-            status=404,
-            mimetype="text/html")
-    return jsonify({"status": status.decode('utf-8')})
-
-
-@routes.route("/services/<hostname>/<path:interface>",
-              methods=['GET', 'POST'])
-@common.require_accepts_json
-def services_for_interface(hostname, interface):
-    r = common.get_redis()
-    services = r.get(
-        'opsdb:interface_services:%s:%s'
-        % (hostname, interface))
-    if not services:
-        return Response(
-            response="no available info for {} {}".format(hostname, interface),
-            status=404,
-            mimetype="text/html")
-    return jsonify(json.loads(services.decode('utf-8')))
+# TODO: remove all alarmsdb i/o, and then remove the following
+# @routes.route("/interfaces/status/<hostname>/<path:interface>",
+#               methods=['GET', 'POST'])
+# @common.require_accepts_json
+# def interface_statuses(hostname, interface):
+#     r = common.get_redis()
+#     status = r.get(
+#         'alarmsdb:interface_status:%s:%s'
+#         % (hostname, interface))
+#     if not status:
+#         return Response(
+#             response="no available info for {} {}".format(
+#               hostname, interface),
+#             status=404,
+#             mimetype="text/html")
+#     return jsonify({"status": status.decode('utf-8')})
+#
+#
+# @routes.route("/services/<hostname>/<path:interface>",
+#               methods=['GET', 'POST'])
+# @common.require_accepts_json
+# def services_for_interface(hostname, interface):
+#     r = common.get_redis()
+#     services = r.get(
+#         'opsdb:interface_services:%s:%s'
+#         % (hostname, interface))
+#     if not services:
+#         return Response(
+#             response="no available info for {} {}".format(
+#               hostname, interface),
+#             status=404,
+#             mimetype="text/html")
+#     return jsonify(json.loads(services.decode('utf-8')))
diff --git a/inventory_provider/routes/infinera_classifier.py b/inventory_provider/routes/infinera_classifier.py
deleted file mode 100644
index e522811f9b6a751a6d081e795dcb1831b1ae419a..0000000000000000000000000000000000000000
--- a/inventory_provider/routes/infinera_classifier.py
+++ /dev/null
@@ -1,66 +0,0 @@
-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")
diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index 19c94dbdd1508ffcb4125550868956774d8136c2..5a7a424c5fcb86431e0cd5fe5970ee4ba04bcd22 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -279,11 +279,11 @@ def clear_cached_classifier_responses(hostname=None):
     r = get_redis(InventoryTask.config)
 
     def _hostname_keys():
-        for k in r.keys('classifier:cache:%s:*' % hostname):
+        for k in r.keys('classifier-cache:juniper:%s:*' % hostname):
             yield k
 
         # TODO: very inefficient ... but logically simplest at this point
-        for k in r.keys('classifier:peer-cache:*'):
+        for k in r.keys('classifier-cache:peer:*'):
             value = r.get(k.decode('utf-8'))
             if not value:
                 # deleted in another thread
@@ -294,7 +294,7 @@ def clear_cached_classifier_responses(hostname=None):
                 yield k
 
     def _all_keys():
-        return r.keys('classifier:*')
+        return r.keys('classifier-cache:*')
 
     keys_to_delete = _hostname_keys() if hostname else _all_keys()
     for k in keys_to_delete:
diff --git a/test/per_router/test_classifier_data.py b/test/per_router/test_classifier_data.py
index b0d7f5b099e130759a8e94b5c8a5c7de7b5b3729..74f26360e36ef00230a853539b07ce3085efc764 100644
--- a/test/per_router/test_classifier_data.py
+++ b/test/per_router/test_classifier_data.py
@@ -17,4 +17,4 @@ def test_clear_classifier_cache(
     backend_db().update(classifier_cache_test_entries)
     worker.clear_cached_classifier_responses(router)
     for k in backend_db():
-        assert not k.startswith('classifier:cache:%s:' % router)
+        assert not k.startswith('classifier-cache:%s:' % router)
diff --git a/test/test_classifier_routes.py b/test/test_classifier_routes.py
index 50e434244edf62d023fbd46ce8777ab89857eb5e..2d8603417c7f93a220156064a88c5b7f98fa8ebe 100644
--- a/test/test_classifier_routes.py
+++ b/test/test_classifier_routes.py
@@ -117,9 +117,9 @@ JUNIPER_LINK_METADATA = {
 }
 
 
-def test_trap_metadata(client_with_mocked_data):
+def test_juniper_link_info(client_with_mocked_data):
     rv = client_with_mocked_data.get(
-        '/classifier/trap-metadata/mx1.ams.nl.geant.net/ae15.1500',
+        '/classifier/juniper-link-info/mx1.ams.nl.geant.net/ae15.1500',
         headers=DEFAULT_REQUEST_HEADERS)
     assert rv.status_code == 200
     assert rv.is_json
diff --git a/test/test_infinera_classifier.py b/test/test_infinera_classifier.py
index 81d36d2329b02446e2ba0b0a14b87e3447e4abe4..591b2c0dbf9c3cffd0c70ee19654f644986a98e9 100644
--- a/test/test_infinera_classifier.py
+++ b/test/test_infinera_classifier.py
@@ -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