Skip to content
Snippets Groups Projects
Commit 160e67fe authored by Erik Reid's avatar Erik Reid
Browse files

added netconf task

parent 637eb3ef
Branches
Tags
No related merge requests found
......@@ -19,12 +19,14 @@ def get_router_details(router):
app.send_task(
'inventory_provider.tasks.worker.juniper_refresh_vrr',
args=[router["hostname"]])
task_logger.debug("launching task: "
"inventory_provider"
".tasks.worker.juniper_refresh_interfaces")
app.send_task(
'inventory_provider.tasks.worker.juniper_refresh_interfaces',
args=[router["hostname"]])
task_logger.debug("launching task: "
"inventory_provider"
".tasks.worker.snmp_refresh_interfaces")
......@@ -32,6 +34,15 @@ def get_router_details(router):
'inventory_provider.tasks.worker.snmp_refresh_interfaces',
args=[router["hostname"], router["community"]])
task_logger.debug("launching task: "
"inventory_provider"
".tasks.worker.netconf_refresh_config")
app.send_task(
'inventory_provider.tasks.worker.netconf_refresh_config',
args=[router["hostname"]])
def update_network_details(params):
task_logger = logging.getLogger(TASK_LOGGER_NAME)
......
......@@ -4,9 +4,11 @@ import logging
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 juniper, snmp
from inventory_provider import juniper, snmp, netconf
from inventory_provider import constants
logging.basicConfig(level=logging.WARNING)
......@@ -37,6 +39,20 @@ class InventoryTask(Task):
"saved %s, key %s" % (hostname, key))
return "OK"
@staticmethod
def save_key_json(hostname, key, data):
InventoryTask.save_key(
hostname,
key,
json.dumps(data))
@staticmethod
def save_key_etree(hostname, key, data):
InventoryTask.save_key(
hostname,
key,
etree.tostring(data, encoding='utf-8'))
class WorkerArgs(bootsteps.Step):
def __init__(self, worker, config_filename, **options):
......@@ -60,7 +76,7 @@ app.steps['worker'].add(WorkerArgs)
@app.task(bind=InventoryTask)
def juniper_refresh_bgp(self, hostname):
InventoryTask.save_key(
InventoryTask.save_key_json(
hostname,
"bgp",
juniper.fetch_bgp_config(hostname, InventoryTask.config["ssh"]))
......@@ -68,7 +84,7 @@ def juniper_refresh_bgp(self, hostname):
@app.task(bind=InventoryTask)
def juniper_refresh_vrr(self, hostname):
InventoryTask.save_key(
InventoryTask.save_key_json(
hostname,
"vrr",
juniper.fetch_vrr_config(hostname, InventoryTask.config["ssh"]))
......@@ -76,7 +92,7 @@ def juniper_refresh_vrr(self, hostname):
@app.task(bind=InventoryTask)
def juniper_refresh_interfaces(self, hostname):
InventoryTask.save_key(
InventoryTask.save_key_json(
hostname,
"interfaces",
juniper.fetch_interfaces(hostname, InventoryTask.config["ssh"]))
......@@ -84,10 +100,19 @@ def juniper_refresh_interfaces(self, hostname):
@app.task(bind=InventoryTask)
def snmp_refresh_interfaces(self, hostname, community):
InventoryTask.save_key(
InventoryTask.save_key_json(
hostname,
"snmp-interfaces",
list(snmp.get_router_interfaces(
hostname,
community,
InventoryTask.config)))
@app.task(bind=InventoryTask)
def netconf_refresh_config(self, hostname):
InventoryTask.save_key(
hostname,
"netconf",
netconf.load_config_str(hostname, InventoryTask.config["ssh"]))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment