All notable changes to the kytos project will be documented in this file.
- 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