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

added netconf task

parent 637eb3ef
No related branches found
No related tags found
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.
Finish editing this message first!
Please register or to comment