Changelog

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.