Closed alchemyx closed 1 year ago
Hey, @alchemyx , Good point, it's valid point. I suppose that it would be much easier to implement it in rest API, do you use it?
Hi, I don't use the API, but I might start just for this feature, so no worries.
Hi @alchemyx , I've just released v2.34 version with multi vendor support. Please check. Appreciate for your feedback.
Release notes:
If a network has multiple areas, it is needed to get LSDB output from multiple devices and save it into separate files. Example below uses two LSDB outputs saved in the lsdb_samples
folder.
import requests
TOPOLOGRAPH_HOST="127.0.0.1"
TOPOLOGRAPH_PORT=5000
TOPOLOGRAPH_WEB_API_USERNAME_EMAIL="your login"
TOPOLOGRAPH_WEB_API_PASSWORD="your password"
from pprint import pprint as pp
lsdbs_attr_ll = [] lsdb_dir = os.path.join(os.getcwd(), 'lsdb_samples') for vendor_name, protocol_name in [('Cisco', 'ospf'), ('Juniper', 'ospf')]: f_name = os.path.join(lsdb_dir, f"{vendorname}{protocol_name}.txt") with open(f_name) as f: lsdbs_attr_ll.append({'lsdb_output': f.read(), 'vendor_device': vendor_name, 'igp_protocol': protocol_name}) r_post = requests.post(f'http://{TOPOLOGRAPH_HOST}:{TOPOLOGRAPH_PORT}/api/graphs', auth=(TOPOLOGRAPH_WEB_API_USERNAME_EMAIL, TOPOLOGRAPH_WEB_API_PASSWORD), json=lsdbs_attr_ll, timeout=(5, 30)) pp(r_post.json())
Implemented in v2.34
Can confirm it's working beautifully, thank you!
Hi,
My understanding is that you need to upload output from one particular vendor. What if you have a mix ie. Juniper and Extremes? Is it doable? I can merge multiple ABRs in one file, but what if those are different vendors?
Thanks!