Skip to content
Snippets Groups Projects
router_interfaces.py 1.10 KiB
import json
import logging

import click

from inventory_provider import constants
from inventory_provider import router_details
from inventory_provider import config


def _validate_config(ctx, param, value):
    return config.load(value)


@click.command()
@click.option(
    "--params",
    # required=True,
    type=click.File(),
    help="Configuration filename",
    default=open("config.json"),
    callback=_validate_config)
def cli(params):
    router_details.update_network_details(params)
    result = router_details.load_network_details(params["redis"])

    filename = "/tmp/router-info.json"
    logging.debug("writing output to: " + filename)
    with open(filename, "w") as f:
        f.write(json.dumps(result))


if __name__ == "__main__":
    logging.basicConfig(level=logging.WARNING)
    logging.getLogger(constants.SNMP_LOGGER_NAME).setLevel(logging.DEBUG)
    logging.getLogger(constants.THREADING_LOGGER_NAME).setLevel(logging.INFO)
    logging.getLogger(constants.JUNIPER_LOGGER_NAME).setLevel(logging.DEBUG)
    logging.getLogger(constants.DATABASE_LOGGER_NAME).setLevel(logging.DEBUG)
    cli()