Skip to content

0.25.0

Choose a tag to compare

@dmulyalin dmulyalin released this 25 Oct 06:57
· 12 commits to master since this release

0.25.0

BUGS

  1. Fixed Nornir create_host_from_netbox forwarding configured netbox.timeout to Netbox get_nornir_inventory, causing an unexpected keyword argument error. The configured timeout now controls the client wait, falling back to the task's timeout argument, with a minimum of 10 seconds.
  2. Fixed FastAPI and FastMCP Uvicorn logs bypassing NorFab's terminal logging level during NFCLI startup. Both workers now use NorFab's logging handlers by default, respecting separate terminal and file levels; explicit FastAPI Uvicorn logging overrides remain supported.
  3. Fixed Nornir NETCONF input and shell model warnings about shadowing Pydantic's validate method, preserving the public transaction validate argument and NFCLI validate command.
  4. Linux and Windows installers now recover missing pip in local virtual environments.
  5. NFCLI file completion now combines listings from all FileSharing workers, removes duplicate suggestions, and skips failed or missing results.
  6. Fixed NFCLI Containerlab lab-name, FakeNOS network, and Nornir host completion printing job headers, events, and summaries when pressing Tab.

FEATURES

  1. Added Nornir netconf_get to retrieve configuration and operational state, with per-host subtree/XPath filters, IETF and OpenConfig getters, XML processors, ncclient and Scrapli backends, NFCLI, FastAPI, and MCP support.
  2. Added Nornir netconf_get_config to retrieve datastore configuration, with per-host subtree/XPath filters, XML processors, ncclient and Scrapli backends, NFCLI, FastAPI, and MCP support.
  3. Added Nornir netconf_edit_config to edit datastore configuration, with per-host XML templates, XML processors, ncclient and Scrapli backends, NFCLI, FastAPI, and MCP support.
  4. Added Nornir netconf_get_schema to retrieve YANG or YIN schemas, with XML processors, ncclient and Scrapli backends, NFCLI, FastAPI, and MCP support.
  5. Added Nornir netconf_get_capabilities to list and filter device capabilities, with ncclient and Scrapli backends, NFCLI, FastAPI, and MCP support.
  6. Added NETCONF xmltodict processing through Python and NFCLI, with XML processor options for configuration edits and schema retrieval and a dedicated XML processor guide.
  7. Added Nornir netconf_transaction task, with per-host configuration templates, backend arguments, NFCLI, FastAPI, and MCP support.
  8. Added Nornir netconf_validate to validate candidate, running, or startup configuration with ncclient or Scrapli, including NFCLI, XML processors, FastAPI, and MCP support.
  9. Added Nornir netconf_commit for candidate commits and confirmed commits with rollback timers and persistence tokens, including NFCLI, XML processors, FastAPI, and MCP support.
  10. Added Nornir netconf_cancel_commit to roll back pending confirmed commits, with persistence tokens, ncclient and Scrapli backends, NFCLI, FastAPI, and MCP support.
  11. Added Nornir netconf_discard_changes to discard uncommitted candidate changes, with ncclient and Scrapli backends, NFCLI, FastAPI, MCP, and XML processors.
  12. Added Nornir netconf_lock to lock a NETCONF datastore, with ncclient and Scrapli backends, NFCLI, FastAPI, MCP, and XML processors.
  13. Added Nornir netconf_unlock to release a NETCONF datastore lock, with ncclient and Scrapli backends, NFCLI, FastAPI, MCP, and XML processors.
  14. Added Nornir netconf_copy_config to copy configuration between datastores, with ncclient and Scrapli backends, NFCLI, FastAPI, MCP, and XML processors.
  15. Added Nornir netconf_delete_config to delete configuration from a non-running datastore, with ncclient and Scrapli backends, NFCLI, FastAPI, MCP, and XML processors.
  16. Added Nornir netconf_rpc to send per-host rendered NETCONF operation XML, with ncclient and Scrapli backends, NFCLI, FastAPI, MCP, and XML processors.

ENHANCEMENTS

  1. File-fetch client and worker helpers now accept URL strings or lists, preserving single-file responses and returning ordered lists for batch inputs. FileSharing batches metadata and Git resolution, synchronizing each referenced remote once per request. Discovery queries all FileSharing workers and rotates file downloads across available workers, preserving each worker's Git mount. Nornir test suites share fetched assets across hosts. NetBox design_deploy batches Jinja and custom function file fetches while preserving execution order. Single-file caller syntax, per-file streaming, and cache hash validation are preserved. Files without usable metadata return a normal missing-file result. Batch tasks collect entry errors, and failed downloads retain worker errors before hash validation.
  2. FakeNOS now fetches NOS profiles in batches during worker startup, reducing sequential metadata requests while preserving profile order, cache validation, and individual profile error reporting.
  3. Nornir parse with TTP now compiles the template once per job and copies the parser per host, preserving host isolation. Local parsing benchmarks improved by 37–63%; this measures parsing time, not total device collection time.
  4. Refined NFWeb's existing layout with NORFAB branding, consistent neutral colors and controls, mobile application navigation, and improved chart sizing. Removed unused navigation placeholders and reduced Monitoring's bundled chart imports.
  5. NFWeb Topology now streams collection events while jobs run, avoids duplicate events, reports layer collection timings, and preserves the log scroll position when reading earlier events. Each record occupies one horizontally scrollable line containing timestamp, worker, status, and message, with red errors and yellow warnings.
  6. Moved topology search beside the selected-item inspector, brought disconnected node groups closer together, and fitted nodes and labels into the initial viewport while layout settles. Automatic fitting stops when the user navigates the graph. Retained the original dark graph background for optional bloom.
  7. NFWeb Monitoring now refreshes worker job counts alongside runtime statistics.
  8. Updated scale-environment FakeNOS IOS XR profiles for the BGP commands used by current TTP templates, including VRF-neighbor queries and neighbor-group membership. Restart the FakeNOS worker to reload changed profiles.
  9. A native socket pair now wakes the worker socket thread for outgoing results, events, file chunks, and shutdown, replacing its fixed 100 ms polling timeout. Idle waits follow heartbeat deadlines, preserving heartbeat and reconnect handling.
  10. Client result retrieval now follows worker result_ready events, with periodic GET polling every 10 seconds for outstanding workers. Deadline checks remain independent, and restarted clients immediately retrieve outstanding saved results.
  11. A native socket pair now wakes the client socket thread for outgoing messages and shutdown, replacing its 100 ms polling timeout while preserving bounded outgoing batches and incoming message handling.
  12. Nornir task plugins that explicitly declare job, including optional job=None and keyword-only parameters, now receive the current NorFab Job object and can emit per-host events with job.event(). Worker events are deep-copied before queueing to isolate nested event data from subsequent changes.
  13. Netbox design_deploy device definitions now accept a device type model string, resolved to its manufacturer and model from Netbox. Missing or ambiguous models fail before device writes; explicit manufacturer/model dictionaries remain supported.
  14. New devices default to planned status; omitted status preserves existing device status.
  15. Simplified Netbox BGP peering task internals, reducing duplicate cache, payload, and policy handling while preserving task interfaces and behavior.
  16. Tested and validated support for netbox 4.7

Full Changelog: 0.24.16...0.25.0