Changelog ========= Version 1.7.0 ------------- New features: - Primary groups can be set to use different branches of the templates repository (#365) - Get configuration section from running config of device instead of replacing to handle cases where some part of the configuration should not be managed by NMS (#369) - Support more interface types on junos (#372) - Allow specifying a range of VLANs in tagged_vlan_list in settings (#373) - New ifclass on DIST devices called "mirror" which will mirror configuration from mgmtdomain peer device to use same list of VLANs etc on both devices while only having to specify them once (#379) - New settings for: * external_routing_policies: Specify names of routing policies not defined in settings, this allows checking that all referenced routing policies are defined * interface_tag_options: Specify available options for interface tags to display in WebUI * port_template_options: Specify available port_templates to display in WebUI * vxlan_vni_range: Specify allow range of VNIs and error if VNI is outside of range * remove_private_as: On BGP peering specify that private AS numbers should be removed from path - Add API to get LLDP neighbor information from devices (#387) - Detect if Arista should download 32 or 64 bit images depending on model (#388) - Add new device type FIREWALL (#393) Bug fixes: - Copy files (certs for ZTP) to arista devices with EOS 4.32+ requires netmiko 4.5.0 or later - Commit confirm mode 1 and 2 on Arista EOS 4.32+ devices (temp fix, needs newer napalm version later #395) Version 1.6.0 ------------- New features: - Single-sign on (SSO) via OIDC, enabled via config options in auth_config.yml - Role-based access control (RBAC) for API endpoints configured via permissions.yml - Logging for refresh settings action includes jobid so it can be filtered for displaying in webUI etc - Allow setting aggregate_id, metric, enabled, tags etc on fabric interfaces Bug fixes: - Update device syncstatus if primary group settings file changed (#325) - ZTP of dualstack switches (#341) - Fix job status change events for refresh jobs (#352) - Fix initcheck fabric device proposed linknet IPs (#355) - Clean up device init failed job results and make more consistent (#358) - Fix for FQDN checks in settings (#343) Changes: - Python upgraded to version 3.11 - NAPALM upgraded to 5.0, support for Arista EOS 4.22 and earlier has been dropped - Initial tables will be created when api container starts, no need for seed sql file for postgres container - uwsgi has four processes for http and one process for websocket, api should be more responsive for concurrent http connections Version 1.5.1 ------------- Bug fixes: - Fix commit confirm mode 0 for EOS - Update documentation for redundant_link Version 1.5.0 ------------- New features: - Add commit confirm modes: mode 0 - no commit confirm (previous behavior), mode 1 - confirm each device individually after it has commited, mode 2 - confirm devices only when all devices in the job has comitted successfully - Add API to query configured API settings - New settings for: * users: username, ssh_key, password_hash etc to handle device user accounts * dot1x_multi_host, poe_reboot_maintain * prefix_sets and routing_policies to describe policies for router peerings etc - Sync history events, save what event caused devices to become unsynchronized - API to query running config Bug fixes: - Don't return duplicates of neighbor entries - Fix error "Error in repository: HEAD is a detached" when refreshing settings repo - Mark init neighbors as unsync if they have local changes - Log events was not always sent from redis to websocket Version 1.4.2 ------------- Bug fixes: - Fix ZTP of access switch connected to another access switch with type downlink but empty data Version 1.4.1 ------------- Bug fixes: - Fixed interface range expansion logic for downlink ports during init - Allow setting of untagged_vlan to null in interfaces API (#290) - Fix duplicate generation of underlay BGP peers (#291) Version 1.4.0 ------------- New features: - Allow ZTP init of access switches with non-redundant uplinks to other access switch via non_redundant option - Each device can belong to a primary group, and settings can be defined (overridden) per primary group. Inheritence levels are now Global -> Fabric -> Core/Dist/Access -> Group -> Device specific - Support interface range expressions like Ethernet[10-11] in settings device interface config - Save last know working settings commit, so we can revert if last commit contains errors (only saved in memory, not persistent across reboots) - Allow sync of devices with multiple links between same peers. - Allow updating of neighbor_id on interface (useful if manually changing uplink connections) - device_id variable is accessible at template rendering, host and hostname variables documented - New settings: organization_name, domain_name, underlay->bgp_asn - New jinja filters: different base-encodings, hashes, netutils for IP, MAC, ASNs etc - New global config settings: * global_unique_vlans: If True VLAN IDs has to be globally unique, if False different DIST switches can reuse same VLAN IDs for different L2 domains. Defaults to True. * init_mgmt_timeout: Timeout to wait for device to apply changed management IP. Defaults to 30, specified in seconds (integer). - Initial work on API to set/update and get stack members. Not working for ZTP init yet. - Linknet API updated to allow PUT/update, allow GET of single linknet, DELETE syntax harmonized with rest of API Bug fixes: - Recalculate group memberships after ZTP init. - Mark neighbors as unsynchronized after deleting a device. - If device is not reachable on new IP after ZTP init, then change back to use old IP so we can attempt new ZTP init later. - Restore previous config version apply bug fixed. - Allow resetting entire interfaca data to null, instead of having to specify each value as null. - During ZTP init, don't update and save linknets unless device can actually proceed with ZTP. Version 1.3.2 ------------- Bug fixes: - Fix for ZTP init of dist devices (#219,#218) Version 1.3.1 ------------- New features: - New settings for vxlans: acl_ipv4_in, acl_ipv4_out, acl_ipv6_in, acl_ipv6_out, cli_append_str - New data options in interfaces API: bpdu_filter, tags, cli_append_str Version 1.3.0 ------------- New features: - CNaaS specific Jinja2 filters: increment_ip, ipv4_to_ipv6, isofy_ipv4 (#167) - "aggregate_id" option for access ports to build link aggregates from access switches (#171) - New settings for: flow_collectors, route leaking, port_template, dot1x_fail_vlan, vxlan tags, ipv4_secondaries (#178,#192,#193,#194,#195,#196,#203) - Automatic descriptions for ACCESS_DOWNLINK type ports (#189) - Option to filter job result output fields in API response (#197) Bug fixes: - Fix race condition issue where different threads could sometimes cause issues with wrong template being used when syncing multiple different operating systems in same job (#168,#176) - Fix validation and return output for mgmtdomains API (#177) - Cleanup of docker images (#184,#185,#186,#191) - Update device last_seen on syncto, update facts, firmware post flight, device discovered, init step2 (#198) - Fix factory_default: false (#200) - Fix assigning of vxlans etc to both groups and devices at same time (#201) - Possible fix for "weak object has gone away" (#205) - Fixes for device synchranization status updating (#208,#209) Version 1.2.1 ------------- Bugfix release. Bug fixes: - Fix for ZTP of fabric devices when INIT and DISCOVERED passwords are different - Fix for mgmt_ip variable at initial fabric device sync - Better init check error message - Documentation fix - Include groups with no devices in listing Version 1.2.0 ------------- New features: - ZTP support for core and diste devices (#137) - Init check API call to test if device is compatible for ZTP without commit (#136, #156) - Option to have model-specific default interface settings (#135) - Post-flight check for firmware upgrade (#139) - Abort scheduled jobs, best-effort abort of running jobs (#142) - API call to update existing interfaces on device after ZTP (#155) - More settings for external BGP routing, DNS servers, internal VLANs (#143, #146, #152) - Install NMS issued certificate on new devices during ZTP (#149) - Switch to Nornir 3.0, improved whitespace rendering in templates (#148) Bug fixes: - Fix blocking websockets (#138) - Fix access downlink port detection (#141) - Post upgrade confighash mismatch (#145) - Discover device duplicate jobs improvements (#151) - Trim facts fields before saving in database (#153) Version 1.1.0 ------------- New features: - New options for connecting access switches: - Two access switches as an MLAG pair - Access switch connected to other access switch - New template variables: - device_model: Hardware model of this device - device_os_version: OS version of this device - Get/restore previous config versions for a device - API call to update facts (serial,os version etc) about device - Websocket event improvements for logs, jobs and device updates Version 1.0.0 ------------- New features: - Syncto for core devices - Access interface updates via API calls, "port bounce" - Static, BGP and OSPF external routing template support - eBGP / EVPN fabric template support - VXLAN definition improvements (dhcp relay, mtu) Version 0.2.0 ------------- New features: - Syncto for dist devices - VXLAN definitions in settings - Firmware upgrade for Arista Version 0.1.0 ------------- Initial test release including device database, syncto and ZTP for access devices, git repository refresh etc.