From ab2440b10252fe5a2125c530216aaa84f927888e Mon Sep 17 00:00:00 2001 From: Ivan Pepelnjak Date: Mon, 8 Jan 2024 17:33:32 +0100 Subject: [PATCH] Release 1.7.1 --- README.md | 4 ++-- docs/release.md | 10 ++++++++ docs/release/1.7.md | 48 ++++++++++++++++++++++++++++++++++++++- docs/topology/validate.md | 21 +++++++++++++++-- legacy/setup.py | 2 +- netsim/__init__.py | 2 +- 6 files changed, 80 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 9490247f7..4733bd3c9 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,9 @@ Interested? [Read the documentation](https://netlab.tools) and [installation gui ## Releases -The latest release is [release 1.7.0](https://github.com/ipspace/netlab/releases/tag/release_1.7.0), which includes a significant overhaul of lab topology data validation (more details in the [release notes](https://netlab.tools/release/)) +The latest release is [release 1.7.1](https://github.com/ipspace/netlab/releases/tag/release_1.7.1). It's mostly a maintenance release with UI improvements (more details in the [release notes](https://netlab.tools/release/)) -If you encounter bugs using release 1.7.0, please downgrade to [1.6.4](https://github.com/ipspace/netlab/releases/tag/release_1.6.4) and [open a GitHub issue](https://github.com/ipspace/netlab/issues). +If you encounter bugs using release 1.7.x, please downgrade to [1.6.4](https://github.com/ipspace/netlab/releases/tag/release_1.6.4) and [open a GitHub issue](https://github.com/ipspace/netlab/issues). diff --git a/docs/release.md b/docs/release.md index ef688f2c3..e84728092 100644 --- a/docs/release.md +++ b/docs/release.md @@ -1,6 +1,16 @@ Release notes ============= +**[Release 1.7.1](release-1.7.1) (2024-01-08)** + +* [Automatically create nodes from group members](groups-auto-create) +* [Add 'wait' parameter](validate-wait) to validation tests +* Use colors in netlab up/down/test/validate printouts +* Use color-coded error messages +* Use the **rich** Python library to pretty-print tables, JSON, and YAML + +[More features...](release-1.7.1) + **[Release 1.7.0](release-1.7.0) (2023-12-03)** * **[netlab validate](netlab/validate.md)** command can be used to execute [lab validation tests](topology/validate.md). diff --git a/docs/release/1.7.md b/docs/release/1.7.md index 1036ee3fa..8287d7c3f 100644 --- a/docs/release/1.7.md +++ b/docs/release/1.7.md @@ -8,7 +8,33 @@ ## New Functionality -(Release-1.7.0)= +(release-1.7.1)= +### Release 1.7.1 + +* [Automatically create nodes from group members](groups-auto-create) +* [Add 'wait' parameter](validate-wait) to validation tests +* Use colors in netlab up/down/test/validate printouts +* Use color-coded error messages +* Use the **rich** Python library to pretty-print tables, JSON, and YAML +* Display object descriptions in the 'netlab show attributes' printout +* Use any loopback interface for VXLAN VTEP (not just the *Loopback0*) + +**Platform enhancements:** + +* Juniper vPTX can run as a container with *containerlab* +* Implement unnumbered EBGP on FRR VRFs + +**Minor improvements:** + +* Add parent interface data to unnumbered interfaces +* Make loopback more like a regular interface +* Print an error message when the validation test is interrupted + +**Integration tests:** + +Release 1.7.1 includes improved initial configuration, VLAN, VXLAN, and VRF integration tests with automated validation. + +(release-1.7.0)= ### Release 1.7.0 * [Lab validation tests](../topology/validate.md) executed with the **[netlab validate](../netlab/validate.md)** command. @@ -61,6 +87,22 @@ For more details, read the [](../dev/validation.md) ## Bug Fixes +### Bug Fixes in Release 1.7.1 + +* Hosts need at least one adjacent router with a real IPv4 address +* Cumulus Linux 4.x using VLAN-aware bridge does no support routed native VLANs or routed subinterfaces +* Pad NX-OS hostname if it's too short +* Make 'hostvars' available when evaluating validation templates +* Use yet another path to Ansible filters to cope with Ansible release 4.10.0 +* Accept empty tools definitions could be empty (NoneType) when validating lab topology +* Propagate module attribute types (global -> node, link -> intf) +* Redistributing leaked VRF routes into OSPF on Arista EOS requires an additional configuration option +* STP has to be disabled on VLAN-aware Linux bridges using VXLAN +* Failure to execute command is a validation failure +* Replace 'termcolor' with 'rich' markup +* Fix DHCP race condition with 'interfaces' file mounted into Cumulus containers +* loopback0 on Cumulus Linux is named 'lo' not 'lo0' + ### Bug Fixes in Release 1.7.0-post1 * ArubaCX: fix MTU plus minor stuff (#979) @@ -80,6 +122,10 @@ For more details, read the [](../dev/validation.md) ## Documentation Fixes +### Documentation Fixes in Release 1.7.1 + +* Polish 'topology defaults' documentation, add [troubleshooting hints](defaults-debug) + ### Documentation Fixes in Release 1.7.0-post1 * Remove the FRR version from the platform support tables (fixes #973) diff --git a/docs/topology/validate.md b/docs/topology/validate.md index 337a826da..86ae46b2b 100644 --- a/docs/topology/validate.md +++ b/docs/topology/validate.md @@ -68,6 +68,23 @@ validate: "64 bytes" in stdout ``` +Alternatively, you could add a dummy test that does nothing more than wait for the control-plane protocols to stabilize: + +``` +validate: + wait: + description: Waiting for STP and OSPF to stabilize + wait: 45 + + ping: + description: Ping-based reachability test + nodes: [ h1,h2 ] + devices: [ linux ] + exec: ping -c 5 -W 1 -A h3 + valid: | + "64 bytes" in stdout +``` + (validate-multi-platform)= ## Complex Multi-Platform Example @@ -75,9 +92,9 @@ The following validation test is used on the ISP router in the [Configure a Sing ``` session: - description: Check EBGP session on ISP router + description: Check the EBGP session on the ISP router fail: The EBGP session with your router is not established - pass: The EBGP session is in Established state + pass: The EBGP session is in the Established state nodes: [ x1 ] show: cumulus: bgp summary json diff --git a/legacy/setup.py b/legacy/setup.py index b491ae316..02df4c2dd 100644 --- a/legacy/setup.py +++ b/legacy/setup.py @@ -5,7 +5,7 @@ sys.path.append('..') -version="1.7.0-post1" +version="1.7.1" long_description = (Path(__file__).parent / "README.md").read_text() diff --git a/netsim/__init__.py b/netsim/__init__.py index 9f94a8754..ce8a17e62 100755 --- a/netsim/__init__.py +++ b/netsim/__init__.py @@ -2,7 +2,7 @@ import sys -__version__ = "1.7.0-post1" +__version__ = "1.7.1" try: import box