Newer
Older
2023-10-17: removed -p, -c, -d (use the long options instead: --path-in-inventory, --data-source, --inventory-columns)
changed option --keep-max to --keep
added option --check-user-data-only
added SEED_DEVICES to user data, option -s/--sed-devices is now optional
refactoring
2023-10-18: fixed --make-default not working
added protected topologies
changed get inventory data from file access to request via live status query
get interfaces from autochecks changed to live status query
2023-10-19: cleanup removed "all" unused functions
added option -u, --user-data-file to provide a user specific data file
2023-10-20: changed option -m/--make-default to -d/--default (-m is needed for -m/--merge
added -m/--merge option
2023-10-27: improved matching of port name from CDP/LLDP data to interface (item) name of service
improved internal data handling (HostCache)
2023-10-28: reworked handling of layers (see option -l/--layers)
added option -l/-layers {CDP,CUSTOM,LLDP,STATIC} [{CDP,CUSTOM,LLDP,STATIC} ...]
added section CUSTOM_LAYERS to user data file
removed option -m/--merge, included in option -l/--layers
removed option --lldp, included in option -l/--layers
removed option --data-source, now handled in CUSTOM_LAYERS
removed option --inventory-columns, now handled in CUSTOM_LAYERS
removed option --path-in-inventory, now handled in CUSTOM_LAYERS
2023-11-16: added option -b/--backend [LIVESTATUS, FILESYSTEM],
LIVESTATUS is the default for performance reasons -> for now only local site
FILESYSTEM fetches the data directly form the inventory files -> use in distributed environments
2023-11-28: implemented MULTISITE as backend, via livestatus -> use in distributed environments, may become the default
2023-11-30: added RESTAPI backend --> this is kind of slow (20 seconds compared to 0.5 for MULTISITE)
2023-12-06: do not add devices from static connections to seed devices --> be more transparent
added prefix option -> needs testing (THX to andreas doehler for the suggestion)
2023-12-21: adjusted for streamlined CDP/LLDP inventory format,
needs at least CDP 0.7.1-20231221 and LLDP 0.9.2-2023122
changed default backend from LIVESTATUS to MULTISITE
added logger (option --log-level)
removed option --debug
2023-12-22: added options --log-file and --log-to-stdout
2024-01-02: added new output format (option --new-format)
fixed LOGGER.warn --> LOGGER.warning
improved detection of missing hosts/interfaces
2024-01-03: fixed query in MULTISITE.exist
added option --quiet
renamed from create_topology_data to nvdct
2024-01-04: added SETTINGS section to nvdct.toml file -> defaults -> overridden by toml -> overridden by cli
only seed devices are additive (toml + cli)
added L3v4 toml options: L3V4_IGNORE_HOSTS, L3V4_SUMMARIZE, L3V3_REPLACE
moved from ~/local/bin/topology_data to ~/local/bin/nvdct
2024-01-28: fixed -b MULTISITE if not in distributed environment (falling back to local)
fixed crash in create_l3v4_topology if no host was found
2024-01-29: added new output path for cmk 2.3
changed don't output cmk 2.2 format if --new-format set
2024-02-25: added images for L3 Topo (IP-Address and IP-Network)
icon source includes: https://www.flaticon.com/free-icons
added option to drop neighbours by regex
fixed no inventory in L3v4
2024-03-14: added metadata for connection (thickness, color)
thickness can be configured via toml (MAP_SPEED_TO_THICKNESS)
color 'red' is used for speed mismatch
made node emblem configurable (for ip-address and ip-network) via toml (EMBLEMS)
2024-03-16: moved args, utils, classes to lib
split classes in to backends, settings and classes
2024-03-17: changed speed mismatch from native speed to operational speed
added duplex mismatch ('yellow')
added native vlan mismatch ('orange')
2024-03-25: added --pre-fetch, this will speed up the RESTAPI backend performance
min inv_cdp_cahe version: 0.7.1-20240320 -> host label nvdct/has_cdp_neighbours
min inv_lldp_cache version: 0.9.3-20240320 -> host label nvdct/has_lldp_neighbours
2024-03-27: added option --api-port, defaults to 80
2024-03-28: changed restapi get_interface_data to use one call to fetch all data
2024-03-29: added L3V4_IGNORE_IP and L3V4_IRNORE_WILDCARD to toml file
2024-03-31: fixed: L3V3_REPLACE -> L3V4_REPLACE
made input from toml more bullet proof
2024-04-03: change HostCacheMultiSite to be child of HostCacheLiveStatus
2024-04-06: added node icon warning
2024-04-07: added css for connection
2024-04-13: added html tooltip for connection issues
2024-04-15: added emblems for l3v4_summary and l3v4_replace
2024-04-16: fixed html tooltip for speed mismatch (Speed: 100 MBit/s (expected: 1 GBit/s)WARN)
added option --skip-l3-if
2024-04-17: automatically detect local CMK version -> no need for --new-format option any more
automatically detect local CONFIG_APACHE_TCP_PORT -> no need for --api-port option any more
2024-04-18: added option --skip-l3-ip
added tooltip for --skip-l3-if and --skip-l3-ip
2024-04-30: automatically create @default if it doesn't exist
2024-05-07: fixed handling of ignore wildcard in L3v4 topology
2024-05-07: fixed handling of ignore wildcard in L3v4 topology
2024-05-17: added support for Extreme interfaces in LLDP without stack id (1 -> 1:1)
2024-05-18: added support for NXOS interfaces in LLDP in short from (Eth1/1 -> Ethernet1/1)
added IP-Address/IP-Network as quickinfo
2024-05-18: fixed crash on empty neighbour port (ThX to andreas doehler)
2024-06-17: fixed bad IPv4 address data (just drop it)
2024-06-18: fixed host_exist returns always True if host was in host_cache, even with host=None
2024-09-23: incompatible replaced options --lowercase/--uppercase with --case LOWER|UPPER
incompatible removed backend FILESYSTEM -> will fallback to MULTISITE
incompatible removed support for CMK2.2.x file format (removed option --new-format)
2024-09-24: added site filter for multisite deployments (MULTISITE only), option --filter-sites and SITES section in toml file
added customer filter for MSP deployments (MULTISITE only), option --filter-customers and section CUSTOMERS in toml file
2024-11-16: added better logging for missing L2 data
2024-11-17: added L2_NEIGHBOUR_REPLACE_REGEX (ThX to Frankb@checkmk forum for the base idea)
incompatible removed DROP_HOST_REGEX -> use L2_NEIGHBOUR_REPLACE_REGEX instead
incompatible changed section names in TOML file to better distinguish between L2 and L3v4
HOST_MAP -> L2_HOST_MAP
DROP_HOSTS -> L2_DROP_HOSTS
SEED_DEVICES -> L2_SEED_DEVICES
incompatible removed option -s, --seed-devices from CLI -> use TOML section L2_SEED_DEVICES instead
incompatible changed the option keep-domain to remove-domain -> don't mess with neighbor names by default
2024-12-08: incompatible: changed hostlabel for L3v4 topology to nvdct/l3v4_topology
needs at least inv_ip_address inv_ip_address-0.0.5-20241209.mkp
2024-12-09: added option --include-l3-hosts
added site filter for RESTAPI backend
enabled customer filter for MULTISITE backend
2024-12-10: refactoring: moved topology code to topologies, removed all global variables, created main() function
2024-12-11: incompatible: changed default layers to None -> use the CLI option -l CDP or the configfile instead
incompatible: reworked static topology -> can now be used for each service, host/service name has to be
exactly like in CMK. See ~/local/bin/nvdct/conf/nfdct.toml
moved string constants to lib/constants.py