All notable changes to the pathfinder NApp will be documented in this file.
- Updated python environment installation from 3.9 to 3.11
- Upgraded UI framework to Vue3
- Added UI autocomplete for source and destination
- Added
not_ownership
as a filter for pathfinding. Pass a list of strings of owners to filter out edges with any of the given owners. - Added
not_ownership
filter to main UI interface.
- Changed UI
k-accordion-item
in best-path.kytos. Interfaces are displayed using their port names or names rather than address. Switches are rendered using node names or id rather than address.
POST /v3/
has replacedPOST /v2/
POST /v3/
now validates its OpenAPI spec
undesired_links
links now filter upfront as a subgraph to still efficiently allow a lazy computation of k shortest (constrained) paths.
desired_links
is no longer supported. If used to usedesired_links
you can try to parametrize it with a different constraint for instanceundesired_links
or withmandatory_metrics
.POST /v2/
has been removed- Removed
on_links_metadata_changed
and topology reconciliation
- link metadata changes will be updated via
kytos/topology.updated
on_topology_updated
has been refactored to usedynamic_single
to simplify ensuring FIFO event processing.
- Subscribed to
kytos/topology.topology_loaded
to be more promptly responsive - Subscribed to
kytos/topology.current
- Updated
on_links_metadata_changed
to also try to reconciliate the topology
- Fixed
undesired_links
(logical OR) anddesired_links
(logical AND) filters. - Safe guards to discard graph topology older (out of order) events
@rest
endpoints are now run bystarlette/uvicorn
instead offlask/werkzeug
.
- Changed UI
k-select
links items description to try to uselink.metadata.link_name
- Adapted
update_nodes
to only add if node.status isEntityStatus.UP
- Adapted
update_links
to only add if link.status isEntityStatus.UP
- Upgraded requirements
- Updated README to refer to Kytos NG
- Subscribed to to kytos/topology.links.metadata.(added|removed) events to update the graph when computing the CSPF accordingly.
- Changed
setup.py
run both unit and integration tests. - Bumped
networkx to 2.5.1
to supportspf_attribute
. - Augmented shortest paths to compute lazily what is needed.
- Updated
openapi.yml
spec accordingly to EP23-2 POST v2/
JSON response now includes bothcost
andmetrics
attributes, in addition to thehops
attribute.- Added a basic validation support for the API until full spec validation is implemented.
- Formatted changing files with
black -l 79
- Implemented support for EP23-2, without breaking changes in the
v2
API. - Added support for both
mandatory_metrics
andflexible_metrics
to find constrained best paths based on user-specified network metric constraints. - Added support for
spf_attribute
in the API . - Added support for
spf_max_paths
in the API. - Added support for
spf_max_path_cost
in the API. - Added new UI filtering components accordingly.
- Updated the UI to also support listing multiple best paths in the accordion list.
- Changed
setup.py
to alert when a test fails on Travis. - Updated
requirements/dev.txt
file.
- Fixed a bug in parsing metadata of links (fix #64).
- Added support for automated tests and CI with Travis.
- Added tags decorator to run tests by type and size.
- Added unit tests, increasing coverage to 90%.
- Improved documentation about NApp dependencies.
- Changed tests structure to separate unit and integration tests.
- Fixed package install when creating symlinks.
- Fixed hops addresses in openapi.yml.
- Updated
run.in
to includenetworkx
dependency
- Log error message when networkx package isn't installed.
- Updated __init__.py file in tests folder to solve bug when running tests.
- Fixed Scrutinizer coverage error.
- Fixed some linter issues.
- Continuous integration enabled at scrutinizer.
- Improve code organization and fix some linter issues.
- Link status (active/inactive) now considered when creating the graph.
- Fixed pathfinder component to use k-toolbar-item.
- Implements Pathfinder ui.
- Fix optional parameters (api/kytos/pathfinder/v2): - parameter, undesired_links and desired_links must be optional.
- Support for filters in the output path list: - Desired links, which are required in the paths; - Undesired links, which cannot be in any path.
- Code adapted to work with the new topology NApp output.