From 1351a2625f5b4a3133c9b2a0b12421cb33d4d2ff Mon Sep 17 00:00:00 2001 From: Jeff Kala Date: Wed, 5 Feb 2025 09:37:23 -0600 Subject: [PATCH] update example and few cleanups --- examples/basic_getter.py | 10 +++++----- nornir_nautobot/plugins/tasks/dispatcher/default.py | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/examples/basic_getter.py b/examples/basic_getter.py index 525404f..592d133 100755 --- a/examples/basic_getter.py +++ b/examples/basic_getter.py @@ -2,6 +2,7 @@ import logging import os +from netutils.lib_mapper import NAPALM_LIB_MAPPER_REVERSE from nornir import InitNornir from nornir_utils.plugins.functions import print_result from nornir_nautobot.plugins.tasks.dispatcher import dispatcher @@ -24,8 +25,8 @@ my_nornir.inventory.defaults.password = os.getenv("NORNIR_PASSWORD") for nr_host, nr_obj in my_nornir.inventory.hosts.items(): - network_driver = my_nornir.inventory.hosts[nr_host].platform - my_nornir.inventory.hosts[nr_host].platform = "ios" + network_driver = my_nornir.inventory.hosts[nr_host].data["pynautobot_object"].platform.network_driver + my_nornir.inventory.hosts[nr_host].platform = NAPALM_LIB_MAPPER_REVERSE.get(network_driver) result = my_nornir.run( task=dispatcher, logger=LOGGER, @@ -37,8 +38,6 @@ print_result(result) for nr_host, nr_obj in my_nornir.inventory.hosts.items(): - network_driver = my_nornir.inventory.hosts[nr_host].platform - my_nornir.inventory.hosts[nr_host].platform = "ios" result = my_nornir.run( task=dispatcher, logger=LOGGER, @@ -46,5 +45,6 @@ obj=nr_host, framework="netmiko", command="show version", + use_textfsm=True, ) - print_result(result) \ No newline at end of file + print_result(result) diff --git a/nornir_nautobot/plugins/tasks/dispatcher/default.py b/nornir_nautobot/plugins/tasks/dispatcher/default.py index bf7ff3a..0f126d2 100644 --- a/nornir_nautobot/plugins/tasks/dispatcher/default.py +++ b/nornir_nautobot/plugins/tasks/dispatcher/default.py @@ -332,6 +332,7 @@ def get_command(cls, task: Task, logger, obj, command, **kwargs): if result[0].failed: return result + return Result(host=task.host, result={"output": result[0].result}) @classmethod def replace_config( @@ -386,7 +387,7 @@ def replace_config( ) @classmethod - def merge_config( + def merge_config( # pylint: disable=too-many-positional-arguments cls, task: Task, logger, @@ -603,6 +604,7 @@ def merge_config( @classmethod def get_command(cls, task: Task, logger, obj, command, **kwargs): """A tasks to get the commands from a device. + Args: task (Task): Nornir Task. logger (logging.Logger): Logger that may be a Nautobot Jobs or Python logger.