NOTE! This a fork of netconf to try to add asyncio support.
The modules with asyncio support are found in directory async_netconf and the examples in async_example. This to easily see what is changed fro the paramiko based implementation.
Current features:
- SSH via asyncssh.
- Server support.
- Writable datastore (netconf_merge module + json schema).
- Massive parallelism: Start of 10000 devices in less than a minute. Memory usage depends wheather config is stored or not.
TODO asyncio support:
- Create tests for server
- Look into client, the current implementation for server uses the data_received callback, which doesn't need a reader "thread". Check wich approach i better.
- Implement more authentication options, "compatible" with the paramiko implementation.
- netconf_merge is still an alpha version. Create tests for netconf_merge.py to get functional coverage. Add support for multiple namespaces.
- Add pyang plugin to compile json-schema from YANG module(s).
This package supports creating both netconf clients and servers. It also provides a CLI netconf client utility. An example server is included under the example subdirectory.
Documentation is available at: http://netconf.readthedocs.io/
The following modules are present:
__main__
- Netconf CLI client utility.base
- Shared netconf support classes.error
- Netconf error classes.client
- Netconf client classes.server
- Netconf server classes.util
- Netconf utility functions.
master branch status: