Ok, one MAJOR rewrite later and this code is a little bit more sane.
One of the best parts is instead of the db returning little blurbs of "this is what
changed" it now returns the inserted/updated/deleted rows as JSON that the python
script can ingest and make much better decisions with.
I've got some ideas for stuff I want to add now but I'm pretty happy with where it
is now.
I'm also open to ideas if you all have any.
My current TODO list is:
Use PySNMP instead of the net-snmp CLI tools:
Better control over what's going on. Non-responsive routers seriously blow up my
snmp script file. Calling an external script is..... ugly and I don't like it.
Add exclusions:
exclude tunnels, so say from dave to peter's Uppsala location, for example
mesh/hub/spoke:
The question of "do we do a full mesh or just a few hubs" has been moved
in my mind from being a global question to an individual question. You will be able to
choose if you want to be mesh connected or hub connected.
GRE/IPsec:
Dave hasn't responded to that email yet, but if he has in mind what I think he
does I'm going to add code that is smart enough to setup an IPsec tunnel between
locations if both ends support it and GRE if they don't.
Only update needed:
This one is WAY low priority but my plan is to make the code smart enough to only
update routers that need it. For example: if Cory's IP changes his router config
doesn't actually need to change but everyone else's does. If Dave's source
interface changes his router config needs to change but no one else's does. This is
seriously OCD/pedantic territory, but that's me. :)
-brian