Skip to content
Snippets Groups Projects
jobs.py 1.15 KiB
import logging
from flask import Blueprint, Response, current_app

from inventory_provider import router_details
from inventory_provider.tasks.app import app
from inventory_provider.constants import TASK_LOGGER_NAME

routes = Blueprint("inventory-data-job-routes", __name__)


@routes.route("/update", methods=['GET', 'POST'])
def update():

    task_logger = logging.getLogger(TASK_LOGGER_NAME)
    config = current_app.config["INVENTORY_PROVIDER_CONFIG"]

    for r in config["routers"]:

        task_logger.info("fetching details for: %r" % r)

        task_logger.debug(
            'launching task: '
            'inventory_provider.tasks.worker.netconf_refresh_config'
            '(%s)' % r['hostname'])
        app.send_task(
            'inventory_provider.tasks.worker.netconf_refresh_config',
            args=[r["hostname"]])

        task_logger.debug(
            'launching task: '
            'inventory_provider.tasks.worker.snmp_refresh_interfaces'
            '(%s)' % r['hostname'])
        app.send_task(
            'inventory_provider.tasks.worker.snmp_refresh_interfaces',
            args=[r["hostname"], r["community"]])

    return Response("OK")