diff --git a/inventory_provider/app.py b/inventory_provider/app.py index 7e55c5918b28f9258938742e65e750f6f241c082..557daa6a27e26d07620f24d4af47e916984ee9c5 100644 --- a/inventory_provider/app.py +++ b/inventory_provider/app.py @@ -5,13 +5,9 @@ import logging import sys import inventory_provider -from inventory_provider import constants +from inventory_provider import environment -logging.basicConfig(stream=sys.stderr, level=logging.WARNING) -logging.getLogger(constants.SNMP_LOGGER_NAME).setLevel(logging.DEBUG) -logging.getLogger(constants.TASK_LOGGER_NAME).setLevel(logging.INFO) -logging.getLogger(constants.JUNIPER_LOGGER_NAME).setLevel(logging.DEBUG) -logging.getLogger(constants.DATABASE_LOGGER_NAME).setLevel(logging.DEBUG) +environment.setup_logging() app = inventory_provider.create_app() diff --git a/inventory_provider/environment.py b/inventory_provider/environment.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f0be27559c16e4a6d82ab529dbcceb1a26474ed0 100644 --- a/inventory_provider/environment.py +++ b/inventory_provider/environment.py @@ -0,0 +1,24 @@ +import logging, os, sys +from inventory_provider import constants + + +def _level_from_env(var_name, default_level=logging.INFO): + level_str = os.getenv(var_name, logging.getLevelName(default_level)) + numeric_level = getattr(logging, level_str.upper(), default_level) + logging.debug('setting %s logging level to %s' + % (var_name, logging.getLevelName(numeric_level))) + return numeric_level + + +def setup_logging(): + logging.basicConfig( + stream=sys.stderr, + level=_level_from_env('DEFAULT_LOGGING', logging.INFO)) + logging.getLogger(constants.SNMP_LOGGER_NAME).setLevel( + _level_from_env('SNMP_LOGGING', logging.INFO)) + logging.getLogger(constants.TASK_LOGGER_NAME).setLevel( + _level_from_env('TASK_LOGGING', logging.INFO)) + logging.getLogger(constants.JUNIPER_LOGGER_NAME).setLevel( + _level_from_env('JUNIPER_LOGGING', logging.INFO)) + logging.getLogger(constants.DATABASE_LOGGER_NAME).setLevel( + _level_from_env('DATABASE_LOGGING', logging.INFO)) diff --git a/inventory_provider/tasks/app.py b/inventory_provider/tasks/app.py index a4a68d2fccb847d18844c556bd0a01c0b6136788..15a42327ee55a1058b513bb32f52a5f388069efa 100644 --- a/inventory_provider/tasks/app.py +++ b/inventory_provider/tasks/app.py @@ -1,13 +1,4 @@ -import logging -import sys -from inventory_provider import constants from celery import Celery -logging.basicConfig(stream=sys.stderr, level=logging.WARNING) -logging.getLogger(constants.SNMP_LOGGER_NAME).setLevel(logging.DEBUG) -logging.getLogger(constants.TASK_LOGGER_NAME).setLevel(logging.DEBUG) -logging.getLogger(constants.JUNIPER_LOGGER_NAME).setLevel(logging.DEBUG) -logging.getLogger(constants.DATABASE_LOGGER_NAME).setLevel(logging.DEBUG) - app = Celery("app") app.config_from_object("inventory_provider.tasks.config") diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index 3458f9e298b8889e667aa1eb41503bb38039b4aa..889097b8dccca22018ebaef22014c0238cb3bfe9 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -1,21 +1,20 @@ import json import logging +import os +import sys from celery import bootsteps, Task import redis - from lxml import etree from inventory_provider.tasks.app import app from inventory_provider import config -from inventory_provider import snmp, juniper from inventory_provider import constants +from inventory_provider import environment +from inventory_provider import snmp +from inventory_provider import juniper -logging.basicConfig(level=logging.WARNING) -logging.getLogger(constants.SNMP_LOGGER_NAME).setLevel(logging.INFO) -logging.getLogger(constants.TASK_LOGGER_NAME).setLevel(logging.INFO) -logging.getLogger(constants.JUNIPER_LOGGER_NAME).setLevel(logging.DEBUG) -logging.getLogger(constants.DATABASE_LOGGER_NAME).setLevel(logging.DEBUG) +environment.setup_logging() class InventoryTask(Task): @@ -78,6 +77,10 @@ app.steps['worker'].add(WorkerArgs) @app.task(bind=InventoryTask) def snmp_refresh_interfaces(self, hostname, community): + logger = logging.getLogger(constants.TASK_LOGGER_NAME) + logger.debug('STARTING: snmp_refresh_interfaces(%r, %r)' + % (hostname, community)) + InventoryTask.save_key_json( hostname, "snmp-interfaces", @@ -86,10 +89,18 @@ def snmp_refresh_interfaces(self, hostname, community): community, InventoryTask.config))) + logger.debug('FINISHED: snmp_refresh_interfaces(%r, %r)' + % (hostname, community)) + @app.task(bind=InventoryTask) def netconf_refresh_config(self, hostname): + logger = logging.getLogger(constants.TASK_LOGGER_NAME) + logger.debug('STARTING: netconf_refresh_config(%r)' % hostname) + InventoryTask.save_key_etree( hostname, "netconf", juniper.load_config(hostname, InventoryTask.config["ssh"])) + + logger.debug('FINISHED: netconf_refresh_config(%r)' % hostname)