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

log warnings when response status != 200

parent ab4e03e3
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,7 @@ import logging
import os
from flask import Flask
from inventory_provider import environment
def create_app():
"""
......@@ -21,6 +22,8 @@ def create_app():
app = Flask(__name__)
app.secret_key = "super secret session key"
environment.setup_logging()
from inventory_provider.routes import default
app.register_blueprint(default.routes, url_prefix='/')
......
......@@ -56,7 +56,7 @@
},
"root": {
"level": "WARNING",
"level": "DEBUG",
"handlers": ["console", "syslog_handler"]
}
}
\ No newline at end of file
......@@ -38,6 +38,11 @@ def handle_request_error(error):
status=error.status_code)
@routes.after_request
def after_request(resp):
return common.after_request(resp)
def base_interface_name(interface):
m = re.match(r'(.*?)(\.\d+)?$', interface)
assert m # sanity: anything should match
......
import functools
import logging
from flask import request, Response, current_app, g
import redis
logger = logging.getLogger(__name__)
def get_redis():
if 'redis_db' not in g:
......@@ -31,3 +34,26 @@ def require_accepts_json(f):
mimetype="text/html")
return f(*args, **kwargs)
return decorated_function
def after_request(response):
"""
generic function to do additional logging of requests & responses
:param response:
:return:
"""
if response.status_code != 200:
try:
data = response.data.decode('utf-8')
except Exception:
# never expected to happen, but we don't want any failures here
logging.exception('INTERNAL DECODING ERROR')
data = 'decoding error (see logs)'
logger.warning('"%s %s" "%s" %s' % (
request.method,
request.path,
data,
str(response.status_code)))
return response
......@@ -10,6 +10,11 @@ from inventory_provider.db import opsdb
routes = Blueprint("inventory-data-query-routes", __name__)
@routes.after_request
def after_request(resp):
return common.after_request(resp)
@routes.route("/routers", methods=['GET', 'POST'])
@common.require_accepts_json
def routers():
......
......@@ -8,6 +8,11 @@ routes = Blueprint("inventory-data-default-routes", __name__)
API_VERSION = '0.1'
@routes.after_request
def after_request(resp):
return common.after_request(resp)
@routes.route("/version", methods=['GET', 'POST'])
@common.require_accepts_json
def version():
......
......@@ -5,6 +5,11 @@ from inventory_provider.routes import common
routes = Blueprint("inventory-data-job-routes", __name__)
@routes.after_request
def after_request(resp):
return common.after_request(resp)
@routes.route("/update", methods=['GET', 'POST'])
@common.require_accepts_json
def update():
......
......@@ -8,6 +8,11 @@ from inventory_provider.routes import common
routes = Blueprint('poller-support-routes', __name__)
@routes.after_request
def after_request(resp):
return common.after_request(resp)
@routes.route('/interfaces/<hostname>', methods=['GET', 'POST'])
@common.require_accepts_json
def poller_interface_oids(hostname):
......
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