0.1: initial skeleton 0.2: use celery for task management 0.3: basic opsdb, alarmsdb coms & test api 0.4: added some further sample resources 0.5: added meaningful alarmsdb demo method added snmp index to interface data to support sensu, prometheus increased unit test coverage to 78% 0.6: added a static demo of juniper stuff added some route docs to README 0.7/0.8: added static/* to release 0.9: use pyez/netconf for gathering juniper data 0.10/0.11: cache storage formatting bugfix logging levels configured from environment 0.12: added addresses to interface response put actual module number in version response 0.13: added external inventory caching 0.14: added sample route for startup-only tasks added method for caching selected alarmsdb tables added caching of last known interface status from alarmsdb 0.15: added some routes for initial classifier support added basic replacement for findAffectedCircuits 0.16: flatten redis storage structure poller api classifier metadata api read snmp community string from netconf derive active router list from junosspace read most live info from netconf precompute cached list of ix public & vpn rr peers use external logging config file poller api 0.17: add all interfaces to poller/interfaces response always use config file for celery startup 0.18: current/next database latching 0.19: added flush & latch to /jobs/update improved address-to-interface lookup performance added top-level services to responses 0.20: included both v4 & v6 addresses in peering info 0.21: added parsing of 'logical-systems' (DBOARD3-150) 0.22: return a skeleton response for unknown interfaces (DBOARD3-169) 0.23: use redis pipelines where possible 0.24: optimization, don't do aggressive pre-delete checking rebuilding 0.25: propagate errors when waiting for tasks to complete 0.26: NOT SUITABLE FOR PRODUCTION! filter qfx* routers until space is synced with opsdb