All notable changes to the kytos project will be documented in this file.
- Increased token expiration time in auth module.
- New etcd backend for the Storehouse NApp (experimental)
- NApps Server now has e-mail verification and password reset for devs
- Added python-openflow unit test coverage section to Kytos Dev guide
- Fixed duplicated logs (#993)
- Fixed exception handling during NApp setup which could cause locks on kytosd shutdown (#1000)
- New Authentication module - REST endpoints can now be protected using the @authenticated decorator.
- New unitests to the Authentication module.
- New /metadata REST endpoint to access package metadata. kytos-utils now uses this to look for version mismatches.
- Blueprint EP018 - Updated endpoints to configure Authentication module.
- Fix kytos installation without virtual env (eg.: sudo).
- New blueprint: EP018 - API Authentication.
- New blueprint: EP019 - Improvements on Statistics Metrics Collections.
- New blueprint: EP020 - Data and Settings Persistence.
- Changed loggers to begin the hierarchy with "kytos."
- Modify the kytos developer mode to check the installation of configuration files.
- Blueprint EP016: Changed layout and improvement ideas.
- Blueprint EP017: More details on OpenFlow errors.
- Interface objects have a new boolean lldp attribute (default True). Other applications can look at this attribute to determine the LLDP behavior.
- Improved installation of dependencies - pinned versions for dependencies in the production and developer install modes.
- This is the stable "fafa" version, based on the last beta pre-releases. No changes since the last rc1.
- Added Makefile for packaging and uploading to PyPI
- Added string representations to Switch and Interface
- New unit test for TCP server exceptions
- pytest is now the default tool for Kytos' unit tests
- Invalid command-line parameters emit warnings instead of halting kytosd start
- Fixed traceback when a switch loses connectivity
- Added REST API endpoints to manage NApps from remote applications
- New kytos/kronos NApp was released. This NApp will be responsible for handling time series data, with initial support for InfluxDB (EXPERIMENTAL). For now on, visit kytos/kronos changelog for updates.
- kytos-utils is now decoupled from kytos core
- Changed default Openflow TCP port to 6653
- Removed diraol's watchdog fork dependency
- Fixed kytos install from PyPI. Now dependencies are properly installed
- Fixed some grammar errors in documentation
- Fixed some linter issues
- Changed some dependencies versions in order to fix security bugs
- Added MEF E-Line Link Up/Down definition blueprint
- Added documentation about using tox for unit tests
- Fixed bug when starting kytosd in background (#893)
- Fixed method get_next_available_tag under concurrent scenarios
- Fixed warning when compiling documentation
- Added vlan_pool configuration on kytos.conf to support mef_eline. Now you can configure available vlans per interface
- Added documentation to describe how to create a Meta Napp
- Added documentation about Unit Tests
- Updated documentation to install python-openflow, kytos-utils and kytos in that order
- Updated documentation to use pip3 instead pip
- Link id is now based on endpoints hashes, instead of a random uuid. This fixes #875
- Removed circular dependency of kytos-utils
- Removed unnecessary comparison on interfaces if they are on the same switch
- Fixed type declaration that broke sphinx-build
- Fixed some linter issues
- Fixed NApps settings reload. Now when you change a NApp settings the reload it will work
- Updated pyyaml and requests requirements versions, in order to fix vulnerabilities
- This is the stable "ernesto" version, based on the last beta pre-releases. No changes since the last rc1.
- Support for meta-napps (EXPERIMENTAL)
- Added support to reuse VLAN pool configurations on Interface
- Added support for serialization of Link instances
- Improved test coverage
- Blueprint EP015 (system tests) improved
- Improved test coverage
- Removed warnings for invalid port speed (fix #754)
- Fixed port speed on web user interface
- Update console to support IPython 7
- Added methods to list all NApp listeners.
- Blueprint EP12.rst updated in order to describe patch and delete operations.
- Fixed compatibility of Python 3.7
- Fixed some linter issues.
- Fixed napps pre-installed with default value.
- Added reload/<username>/<napp_name> endpoint to reload the NApp code
- Added reload/all endpoint to update the NApp code of all NApps
- Kytos console display the kytos version.
- Added method __repr__ on Napp class.
- Added method __eq__ on UNI class.
- UNI and TAG has method as_dict and as_json.
- Added method get_metadata as_dict.
- Added method to return all available vlans.
- Added method to return a specific interface by id.
- Added pre-install napps method.
- Added a better introduction of dev and admin guides.
- Better handling of active/enabled in Switch/Interface/Links entities.
- Better handling of broken napps.
- Refactored load_napps method.
- Refactored get_time to return a datetime with UTC
- Migrated event handler threads to the main asyncio loop.
- Improve documentation to use kytos sphinx theme.
- Some documentation docstrings.
- Added str and repr methods for KytosEvent and Connection classes to be easy to see logging and debugging information.
- Added web/update/<version>/ endpoint to update Kytos Web Interface with a specific version.
- Added asyncio support in tcp server and controller. API Server, ipython, event handlers and event notifications are still running on separate threads.
- Changed the components name provided by Kytos NApps to use the pattern: {username}-{nappname}-{component-section}-{filename}
- Fixed some docstrings and comments
- Added some new blueprints (EP012, EP013 and EP014)
- Now, we have few Entities inside the core (Switch, Interface and Link)
- Each Entity has metadata attribute (a dict)
- Added link attribute to the Interface class
- GenericEntity itself was added in this version also
- Added 'active' and 'enable' flags to GenericEntity (EP013)
- Added 'enable'/'disable' methods to child GenericEntity classes (EP013).
- Define available_tags according to link's interfaces.
- Endpoint ('/ui/all') to display a json with all napps ui components.
- Endpoint ('/ui/<path:filename>') to get file with a specific napp component.
- Now, kytosd is a python module, to make it easy to run with asyncio on the future;
- This pre-release implements EP013 and EP014 as discussed on our last Kytos Dev Meeting.
- Moved Interface class to interface.py file
- Small refactor of Switch class.
- Some bug fixes
- Web User Interface totally updated, with new design and functionality:
- Visual elements reorganized for better experience.
- Better information about switches and interfaces in the network.
- Extending interface functionalities became easier.
- @rest decorator can also be used before @classmethod or @staticmethod.
- Remove napp endpoints when a napp is disabled.
- TCP Server OpenFlow known ports.
- Config to allow other personalized protocol names on TCP Server.
- NNI and UNI attributes to Interface class.
- Interfaces to Switch json output.
- Statistics information for switch interfaces.
- Allow cross origin resource sharing (CORS).
- Now supports speed information from OF 1.3 switchs.
- Generate Events for reconnected switches.
- Dependency installation/update for devs: pip install -Ur requirements/dev.txt. To use cloned kytos repos as dependencies, reinstall those repos with pip install -e . in the end.
- Event name for a new switch. From kytos/core.switches.new to kytos/core.switch.new.
- Flow class from flow module. It was moved to kytos/of_core NApp.
- Some bug fixes in tests.
- Several documentation fixes.
- Several bug fixes.
- Rest API prefix changed to "api/<username>/<nappname>".
- Now displays bandwidth values as bytes.
- Remove rest api endpoint when a NApp is disabled.
- Correctly update interface state and manage interfaces for switches.
- Some bug fixes.
@rest
decorator for REST API methods. Examples:@rest('flow/<flow_id>')
(onlyGET
HTTP method by default);@rest('flows/', methods=['GET', 'POST'])
.
- Guide for developers in documentation.
- Whole documentation updated.
- API URLs renamed:
- For NApps, the pattern is
/api/<username>/<napp>/
+ what is defined in@rest
decorator; - Core endpoints starts with
/api/kytos/core/
. E.g./kytos/config
changed to/api/kytos/core/config
.
- For NApps, the pattern is
- Improved load/unload of NApps.
- Requirements files updated and restructured.
- Yala substitutes Pylama as the main linter checker.
- Method
register_rest_endpoint
ofController
andAPIServer
in favor of@rest
decorator.
- Some bug fixes in tests.
- Several documentation fixes.
- Several bug fixes.
- NAppDirListener to manage (load/unload) NApps when they are enabled or disabled using kytos-utils.
- Improved connection management.
- Documentation updated and improved.
- Improved setup process.
- Some bug fixes.
- Endpoint to display kytos configuration ('/kytos/config/').
- Setting to setup Kytos API Port on kytos.conf ('api_port' default to 8181).
- Documentation Blueprints tree.
- OpenFlow specific code moved to NApps: Kytos now acts as an all-purpose controller.
- Log manager refactored
- Improvements in the web interface style, layout and usability
- Setup process now requires pip
- Kytos documentation now shows a dropdown with each release documentation.
- Web interface: - Fixed memory and CPU usage
- Now Kytos accepts to register different methods [POST, GET, etc] on the same endpoint.
- Now it's possible to start kytos in debug mode using kytosd -D.
- Removed documentation warnings.
- Several bug fixes
- Python bdist_wheel generation to make the install process via 'pip' easier and faster.
- Lockfile (PID-file) creation to prevent multiple instances running at the same time.
- Controller.restart method.
- kytos/tryfirst docker image was created and added to dockerhub.
- An improved console was added to execute python code when the controller is run in foreground.
- Continuous Integration with Code Quality Score and test coverage. (for the Python files in the project).
- Administration User Interface was moved to kytos, and it's accessible at port 8181 when kytos is running.
- Blueprints were moved to kytos/docs/blueprints folder.
- Updated requirements.txt.
- Improvements in TCP Server:
- Now makes sure the switch is fully connected before accepting data.
- Makes sure the switch is still connected before sending any data.
- Uses sendall() to make sure data is being correctly sent.
- NApps module was refactored.
- Improved 'clean' option of setup.py.
- Improved tests and style checks for developers.
- Kytos setup process improved, reading necessary metadata before installing.
- Kytos core package was refactored.
- Documentation updates.
- NApp information is now obtained from kytos.json when loading a NApp.
- Improved log management.
- 'author' attribute, in the NApps context, was replaced by 'username' and will be removed in future releases.
- Friendly messages are now displayed when some exceptions are raised.
- Kytos configuration is now loaded properly from kytos.conf
- Several adjustments and bug fixes.
- Data gathering from switches (i.e. interface speed)
- REST endpoints (i.e. REST API status)
- Sphinxs documentation
- Controller stop/start improvement
- Improved Controller's Rest API (using Flask)
- Connections, interfaces and switches management improvement
- Websocket to send logs to web interface
- Improved log management
- Corrections on setup and installation controller's code
- Improved NApps management - uninstall, disable and unload
- Improved controller's install and setup
- Bootstrapped initial architechture
- Kytos Events managing buffers and handlers
- NApp handling (load/unload/start/shutdown)
- TCPServer and TCPHandler
- Added basic config class