Changelog
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 chek netbox get connection arguments
0.12.0¤
BUGS¤
- FastAPI Service - fixing json references for OpenAPI schema, which previously broken lead 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 b able to start broker nad workers only without a client
- Updated aio docker file 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 creat 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 verbouse-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 perfoms automatic typechecking using type annotation, alternatively it support input / output pydanti 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 FatAPI 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 to 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
statusfiled 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.
- Standartised 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 onf 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 stsart 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