Projet
This commit is contained in:
35
fastprod_backend/fastprod/services/tasks.py
Normal file
35
fastprod_backend/fastprod/services/tasks.py
Normal file
@@ -0,0 +1,35 @@
|
||||
from api import app
|
||||
from nornir_napalm.plugins.tasks import napalm_get, napalm_configure, napalm_cli
|
||||
from nornir.core.task import Task, Result
|
||||
from nornir_utils.plugins.functions import print_result
|
||||
from nornir_netmiko.tasks import netmiko_send_config, netmiko_send_command, netmiko_save_config,netmiko_commit
|
||||
|
||||
def run_show_commands_by_device(device=None, commands=[]):
|
||||
nr = app.config.get('nr')
|
||||
commands_sent = []
|
||||
if device:
|
||||
if len(commands) > 1:
|
||||
for command in commands:
|
||||
result = nr.filter(device_name=device.get('name')).run(task=napalm_cli,
|
||||
commands=[command])
|
||||
print_result(result)
|
||||
output = result[device.get('name')][0].result.get(command)
|
||||
commands_sent.append(dict(command=command, result=output))
|
||||
output = commands_sent
|
||||
else:
|
||||
result = nr.filter(device_name=device.get('name')).run(task=napalm_cli,
|
||||
commands=commands)
|
||||
|
||||
output = result[device.get('name')][0].result.get(commands[0])
|
||||
commands_sent.append(dict(command=commands[0], result= output))
|
||||
output = commands_sent
|
||||
return output
|
||||
|
||||
def run_config_commands_by_device(device=None, commands=[]):
|
||||
nr = app.config.get('nr')
|
||||
commands_sent = []
|
||||
if device:
|
||||
result = nr.filter(device_name=device.get('name')).run(task=netmiko_send_config,
|
||||
config_commands=[commands])
|
||||
print_result(result)
|
||||
return result[device.get('name')].changed
|
||||
Reference in New Issue
Block a user