Changelog
0.15.2¤
BUGS¤
- NorFab nfcli - Fixing show jobs call
CHANGES¤
- NorfabNfcli - enhancing jobs commands on the client to query local database
- NorFab client - refactored
mmicalls, removedget,postandrecv_from_brokermethods as not needed anymore - FastAPI - removed
job_postandjob_getapi as no longer needed, might need to refactor it in the future - NorFab client - enhanced
fetch_jobsdb method to allow filter by service, workers, last N jobs etc.
FEATURES¤
- NorFab nfcli - added
nowaitargument to not wait for job results and return prompt straight away
0.15.1¤
BUGS¤
- Nornir service watchdog - fixing
connection_idle_timeouthandling - Netbox service - fixing
ssl_verifyhandling to suppressInsecureRequestWarning - Norfab shell - fixed references to deprecated broker fss calls, replaced with calls to
filesharingservice
0.15.0¤
CHANGES¤
- Introduce sqlite3 DB into client for jobs state persistence
- Updated NFP semantics for better performance and readability
- Worker - added support for
job.streamcapability to stream a set of bytes back to client, used for file transfers, added newNFP.STREAMcommand as part of this effort - Added support for new
NFP.PUTcommand for client to update running jobs on worker, currently used by client to command worker a number of file offsets to stream back, but can be extended to provide user input mid job execution, e.g. agent requesting input from user. - Client - refactored
fetch_filemethod to use new stream and put capabilities - Nornir test markdown - various markdown output improvements such as added total tests to summary, added test number column to the table, added host name next to every collected command, removed support for hosts inventory as it bogged browser memory for being too long.
FEATURES¤
- Client and worker - added
delete_fetched_filestask to remove files fetched from broker - Created new
filesharingservice worker to host files, by default broker runs 1 such worker locally, this improves norfab hosting capabilities and open paths toward integrating with external file sharing resources e.g. github, s3, http etc.
0.14.0¤
CHANGES¤
- Netbox sync_device_interfaces - refactored to use bulk update and bulk create operations
- Netbox service - deprecated support for Netbox below 4.4.0 version
- Netbox service -
get_interfacesaddedlabelandmark_connectedfields - Netbox service -
get_connectionsaddedremote_device_statusfield - Nornir service - test task added nornir hosts inventory to results if extensive set to true
- Nornir tests markdown - added hosts expandable inventory section
- Nornir tests markdown - added total tests number for detailed section for each host
- Nornir tests markdown - updated headings and paragraphs content
- Enhanced message construction for NFP protocol by adding message builder
- Enhanced client, worker and broker socket handling by adding thread locks
FEATURES¤
- Netbox service - added
create_device_interfacestask - Netbox service - added
branch_create_timeoutinventory argument to control timer waiting for new branch to be created - Netbox service - added integration with Netbox BGP Plugin in a form of
get_bgp_peeringstask to fetch BGP sessions data for devices, added nfcli shell command to callget_bgp_peeringstask. - Netbox service -
get_nornir_inventorytask added support forbgp_sessionsargument. if True, fetched devices' BGP peerings from netbox and stores them underbgp_sessionskey in host's data.
BUGS¤
- Nornir tests markdown - fixed detailed output handling to not collect suite into summary table
- Nfcli - fixed show client command function calling
0.13.0¤
BUG FIXES¤
- Fixing event severity handling in worker.
CHANGES¤
- Changed worker to use sqlite database for job persistent storage instead of json files
- Netbox sync device facts - enhanced sync logic to use bulk device updates
FEATURES¤
- Nornir test task - added
extensiveargument to return detailed results - Client - added
markdownargument torun_jobmethod to support rendering results into markdown output - Client - added Nornir test task markdown render function to return tests results in a form of markdown report.
- Client - added generic markdown render function to return results in a form of markdown report.
0.12.7¤
FEATURES¤
- NFAPI logging - added support for
logging->log_eventsparameter to emit events as syslog messages - Added context manager support for NFAPI to simplify invocation from python scripts
CHANGES¤
- NFAPI changed start method arguments from
start_brokertorun_brokerandworkerstorun_workers - Nornir task - enhanced task import logic
- Nornir worker - added filter hosts method to reduce duplicate code
- NorFab client - added ensure_bytes method to reduce duplicate code
0.12.6¤
BUGS¤
- Netbox service - fixed get_circuits handling bug, was not returning circuits data due to recent code refactoring, updated test to catch this kind of an issue.
0.12.5¤
BUGS¤
- Containerlab - fixing error handling when result is None
- Workflow - fixed emitting event progress for cli shell
- Netbox - bulk ip create updated to sort interfaces names to make ip allocation order deterministic
CHANGES¤
- Updated dependencies:
- TTP 0.9.5 -> 0.10.0
-
nornir-salt 0.22 -> 0.23
-
Renamed Netbox service tasks:
- update_device_facts -> sync_device_facts
- update_device_interfaces -> sync_device_interfaces
- update_device_ip -> sync_device_ip
FEATURES¤
- Netbox service - get_connections enhanced to retrieve power outlet connections.
0.12.4¤
BUGS¤
- Netbox worker - fixing handling of Netbox instance for child subnet creation
FEATURES¤
- Netbox worker - update interface descriptions task now can supply dictionary of interface descriptions
0.12.3¤
BUGS¤
- Fixing handling of entry points for sourcing norfab workers plugins for Py3.10+
CHANGES¤
- Docker images updated to use Py3.11
0.12.2¤
CHANGES¤
- Updated Python version dependencies
- Adding FastMCP worker
- Updating agent worker - work in progress
- Adding Streamlit worker to host WEB UI - work in progress
0.12.1¤
BUGS¤
- Netbox service - restored Netbox v4.2.0 support
- Fixing Picle shell netbox get interfaces to have
interface_regexargument - Fixing Picle check netbox get connection arguments
0.12.0¤
BUGS¤
- FastAPI Service - fixing JSON references for OpenAPI schema, which previously broken led to error in swagger and redoc UIs rendering.
FEATURES¤
- Netbox service -
get_interfacestask addedinterfaces_regexfilter - Netbox service -
get_connectionstask addedinterfaces_regexfilter - Netbox service -
get_connectionsadded support to retrieve virtual interfaces connections for physical and lag interfaces - Netbox service -
create_ipadded support to automatically assign IPs to link peers or use peers IP addresses prefixes to allocate next available IP address - Netbox service -
create_ipadded support to create child subnet within parent prefix and assign IP out of it - Netbox service - added new task
create_ip_bulkto create IP addresses for devices using interfaces regex match - FastMCP service - created NorFab MCP service
0.11.2¤
CHANGES¤
- Moving to Python 3.10 as primary supported version instead of 3.9 due to addition of FastMCP service which only supports Py3.10 and up.
- Updated build dockerfiles to use
python:3.10-slim-trixieas a base image
BUGS¤
- Fixing FastAPI worker argument handling by setting it to
allby default
0.11.1¤
BUGS¤
- Fixed containerlab show lab outputting
- Enhanced nfcli logic to be able to start broker and workers only without a client
- Updated aio Dockerfile to start broker and workers only
0.11.0¤
FEATURES¤
- FastAPI Services - enhanced to generate API endpoints for all services tasks automatically using
@Taskdecorator data - NFCLI - Picle show containerlab containers now emits output with nested tables
- Netbox Service -
create_iptask enhanced to source prefixes to allocate next IP from using prefix description string - Netbox Service - Added
create_prefixtask to allocate next available prefix - Nornir Service - Adding
nb_create_prefixJinja2 filter allocate next available prefix during templates rendering - Worker - Added
fastapiargument to@Taskdecorator to control FastAPI REST API endpoints auto-generation - Containerlab Service - added support for Containerlab 0.69+
- Netbox Service - added support for branching plugin, made create and update tasks be branch aware, updated nfcli shells to support
branchargument - Netbox Service - added
delete_branchtask
BUGS¤
- Fixing nornir test picle shell test task handling for verbose-result and dry-run
- Fixing nornir test handling for when suite renders to empty tests for a host
- Fixed Netbox service
instancevariable options sourcing for CLI shells
CHANGES¤
- Upgrading NAPALM library dependency from 5.0.0 to 5.1.0
- Upgrading PICLE library dependency from 0.9.0 to 0.9.1
- Upgrading Pynetbox library dependency from 7.4.0 to 7.5.0
- Refactoring Netbox service pydantic models
- BREAKING CHANGE: Starting NorFab 0.11.0 containerlab service only supports Containerlab 0.69+
- Dependencies updates.
0.10.0¤
FEATURES¤
- Adding support for Netbox >= 4.3.0
- Enhanced Netbox service inventory device filters to support GraphQL query string for
device_listqueries. - Added Netbox service
create_iptask to allocate new or source existing IP from prefix - Added
nb_create_ipJinja2 filter to Nornir service to source IP allocations during templates rendering - Added nfcli shell
netbox create ipcommand to run IP allocations from interactive command line
0.9.1¤
BUGS¤
- Fixing list and dict annotations to also allow None values for workers tasks.
0.9.0¤
FEATURES¤
- Adding concurrency to worker jobs execution, adding new worker inventory parameter
max_concurrent_jobs - Adding
@Task()decorator to expose worker methods as tasks, this decorator performs automatic type checking using type annotation, alternatively it supports input/output pydantic models to verify input arguments and return results. - Passing on
jobargument to all NorFab tasks,jobis an object that contains relevant metadata - client address, juuid, args, kwargs etc. Job object can be used to emit events. - Adding workers
echotask to perform tests, added respective nfcli commands treeworkers.ping. - Adding workers
list_tasksmethod to return information about tasks in MCP compatible format. - Added picle shell
man.taskscommand to retrieve information about NorFab services tasks
CHANGES¤
- Improved Netbox device update nfcli to include Fx hosts filtering for nornir datasource
- Result object added
task_startedandtask_completedtimestamp andserviceparameters
BREAKING CHANGES¤
- Instead of
self.eventworker now need to usejob.event - To add pydantic input / output models for tasks need to use
@Task()decorator instead of@Taskdecorator - Nornir Jinja2 templates context
nornir.cliremoved, need to usenorfab.run_jobinstead
0.8.2¤
BUGS¤
- Fixed nornir inventory load from containerlab handling
0.8.1¤
BUGS¤
- Fixed
show containerlab inventorycommand - Fixed Nornir Worker inventory load handling
- Netbox interface update improving mac address handling
FEATURES¤
- Netbox service added
get_containerlab_inventorytask - Containerlab service added
deploy_netboxtask
CHANGES¤
- Improved client post job retry logic
FNfilter argument for Nornir add presence handling for nfcli
0.8.0¤
CHANGES¤
- Restructuring pydantic models structures for better following DRY principles:
- Moved FastAPI models under norfab.models.fastapi
- Added norfab.models.nornir pydantic models
- Events and results models moved under norfab.models
- Added broker
zmq_authinventory parameter to turn zero mq authentication and encryption off - Added
verbose-resultcommand line argument to relevant tasks to emit result details - Updated CLI shells to support PICLE 0.9.0
- Enhanced Netbox service to support working with instances of Netbox of different major and minor releases
BUGS¤
- Fixed broker to allow workers reconnect on restart.
FEATURES¤
- Improved worker jinja2 templates rendering logic to allow render URL first and next download its content
- Added
nornir refreshCLI command to refresh Nornir workers instances and reload inventory - Added support for Netbox 4.2
- Added support for Nornir service to pull hosts inventory from Containerlab service
0.7.0¤
FEATURES¤
- Added new
workflowservice to run simple workflows constructed using YAML DSL
CHANGES¤
- NFCLI shells - updated to use nested outputter where appropriate
- Nornir worker - updated to set failed flag for its tasks according to test results
- Worker - Added
statusfield to worker result object to reflect job execution status - Nornir Service - replaced
cfg_dry_runandcli_dry_runarguments withdry_runargument - NFCLI shell - added aliases to use dash instead of underscore
- NFCLI shell - Moved Nornir service show commands under
show nornir xyzpath
0.6.0¤
FEATURES¤
- Added support for worker plugins
- Added support for nfcli custom shells
CHANGES¤
- All workers loaded into NorFab using entrypoints implementing lazy loading - workers classes only imported when they being used, in some cases allowing to save on startup time.
0.5.0¤
FEATURES¤
- FastAPI service added bearer authentication support
- Added hooks attachpoints
nornir-startupandnornir-exitto influence Nornir service workers startup and exit
0.4.0¤
CHANGES¤
- Improved netbox get_circuits logic.
- Standardised worker
get_versionandget_inventorymethods
Features¤
- Added
runtime_inventorytask to Nornir service, #6 - Added support to configure
startupandexithook functions in inventory to be executed by nfapi on start and on exit.
0.3.1¤
CHANGES¤
- Improved logging handling for NFAPI if it failing to start a worker
- Update client
getmethod to return result as a dictionary for broker MMI, file and inventory services - Enhanced Netbox
update_device_factsandupdate_device_interfaceto supportbatch_sizeargument - a number of devices to process at a time - Improved nfcli shell for Netbox service to provide more arguments for
netbox update device factscommand
FEATURES¤
- Added Netbox Service
update_device_iptask to retrieve device interface IP addresses and create them in Netbox - Added support to NorFab simple inventory and nfapi to load inventory from dictionary data as well as to explicitly provide
base_dirinformation where to anchor NorFab environment - Added support for NorFab inventory workers section items to be dictionaries in addition to OS path to YAML files allowing to construct workers inventory out of dictionaries and/or YAML files.
0.3.0¤
FEATURES¤
- Added "show version" support for nfcli client to display versions of locally installed libraries, fixes. #4
- Added "show broker version" support for nfcli client to retrieve broker report of the version of libraries broker is running on, fixes. #4
- Added support "show broker inventory" command to display broker inventory
- Simple inventory added support to produce a serialized dictionary output
- Broker added "show_broker_inventory" and "show_broker_version" MMI endpoints
- Added support for simple inventory service to render inventory using Jinja2, renderer passed on
envvariable that contains operating system environment variables, allowing to source any env data into NorFab inventory for both broker and workers. #5 - Created
fastapiservice to host REST API for NorFab
0.2.4¤
BUGS¤
- Fixed nfcli
--workers-listhandling - Fixed
job_dataurl handling for nornir cli/cfg/test tasks - Fixed nfapi handling of empty worker name
FEATURES¤
- Added a set of confirmed commit shell commands to nornir cfg netmiko plugin
0.2.3¤
FEATURES¤
- Added nfcli
--workers-listoption to specify a list of workers to start
CHANGES¤
- Fixed handling of jinja2 import for the worker to make it optional
0.2.1¤
CHANGES¤
- Improved libs imports handling to account for distributed deployment
- Improved logging handling
- Fixed nfcli issue with starting components on NorFab #2
- Changed CTRL+C handling to trigger graceful NorFab exit
FEATURES¤
- Added
broker -> shared_secretparameter ininventory.yamlto configure clients and workers broker shared secret key - Added and tested docker files
0.2.0¤
CHANGES¤
- refactored
get_circuitsto useThreadPoolExecutorto fetch circuits path from netbox - adding
job_datajson load to nornir cli, cfg and test tasks
BUGS¤
- Fixing netbox
get_devicesdry run test - Fixed netbox
get_circuitsdevices site retrieval handling
FEATURES¤
- Added cache to Netbox
get_circuitsandget_devicestasks - Added new
agentworker to start working on use cases to interface with LLMs
0.1.1¤
BUGS¤
- Fixed Netbox CLI Shell handling of NFCLIENT
CHANGES¤
- Updated and tested dependencies for Netmiko 4.5.0
- Updated and tested dependencies for Nornir 3.5.0
- Updated and tested dependencies for Nornir-Salt 0.22.1
0.1.0¤
Changes¤
- Changes to Nornir service module files structure
- PICLE dependency updated: 0.7. -> 0.8.
- Made Nornir Service
progressargument set toTrueby default to emit and display events for all Nornir Jobs - Nornir tests changed
tableargument to be set toTrueby default - Improved
nfapibroker start logic to wait until broker fully initialized before proceeding to start workers
Features¤
- Added support for Nornir parse task to source TTP template from file with autocompletion
- Added Nornir File Copy task to copy files to devices using SCP
- Added support for logs to be collected into single file from all NorFab local processes
- Added to NorFab worker
job_listandjob_detailsmethods - Added
show jobs summaryandshow jobs detailscommands to NorFab shell and to Nornir shell - Added
--create-envargument to nfcli utility to create NorFab folders and files to make it easier to get started using norfab
BUGS¤
- Fixed Nornir Service Watchdog to clean up dead connections from hosts data
0.0.0¤
Initial Release
Notable Features¤
- NorFAB Broker, Client and Worker base classes
- Nornir Service
- Network Service
- Simple Inventory Datastore Service
- File service
- ZeroMQ encryption