scaleway / netbox-netprod-importer

Poll data from network devices in production and import it into netbox
GNU General Public License v3.0
101 stars 31 forks source link

add functions to call lib through python #44

Open k0rventen opened 4 years ago

k0rventen commented 4 years ago

Hi, I think it would be great to be able to call the lib directly from python code, so it would be possible to have a programmatic approach to importing devices.

I've added a few functions to start, for now we can import / interconnect devices using a configuration generated by a script that would call the netbox-netprod-importer lib, but the config of the lib (url of netbox etc) still needs to be a file loaded by netbox_netprod_importer.config.get_config(). I don't know what would be the best approach regarding this.

As an example, one could use the lib like so :

import netbox_netprod_importer

devices = {'SWITCH1': {'driver': 'ios', 'target': '192.168.1.1', 'discovery_protocol': 'cpd'}, 'SWITCH2': {'driver': 'ios', 'target': '192.168.1.2', 'discovery_protocol': 'cpd'}}

parsed_args = netbox_netprod_importer.init_importer(devices,"user","password")
netbox_netprod_importer.load_config(custom_path="config.yml")
netbox_netprod_importer.import_data(parsed_args)

It's clearly not ready to be merged, but maybe you would have ideas on how to implement this as you know better the lib than I do.

Thx,