CHANGE configuration subtree collapsing and expanding

Make the mechanism of collapsing and expanding data tree more effective.
At the beginning, still only the roots are loaded, but then the whole
subtree is always loaded from the backend. When collapsing, the subtree
is no more deleted, but just hidden so it is not necessary to reload it
when again expanded. When reloading data, only the (at least partially)
visible trees are reloaded, the hidden trees are dropped and subject to
reload on future expansion of such a tree.
8 files changed
tree: 660b753eeae81e12e19988801c676498931653e0
  1. .gitignore
  2. LICENSE
  3. README.md
  4. app.config.json
  5. backend/
  6. config.json
  7. frontend-assets/
  8. frontend/
  9. schema.svg
  10. vagrant/
README.md

Netopeer2GUI

Web-based NETCONF management center

This tool is currently under development and not intended for production use. However, we welcome your feedback provided via the issue tracker.

Netopeer2GUI schema

Features List

  • [x] manage devices to connect to
    • [ ] manage devices groupings for bulk configuration
  • [x] manage YANG schemas stored in GUI to represent received data
    • [ ] interaction with user by asking unknown module used by the connected device
  • [x] display configuration and data of the connected device (data tree view)
  • [ ] edit configuration data of the device
  • [ ] bulk configuration (set configuration of multiple device at once)
  • [ ] YANG explorer to display/browse YANG schema
  • [ ] receive NETCONF notifications and present them to user
  • [ ] accept NETCONF Call Home connections
  • [ ] plugin interface for schema=specific applications

Dependencies

The application is created as a module to the liberouter-gui framework, so to install it, follow the liberouter-gui instructions.

The backend is a Flask server written in Python 3 and utilizing libyang and libnetconf2 Python bindings. Unfortunatelly, the code of the bindings is not yet finished, so please use the devel branches of the mentioned libraries:

$ git clone -b devel https://github.com/CESNET/libyang
$ mkdir -p libyang/build && cd libyang/build
$ cmake -DGEN_LANGUAGE_BINDINGS=ON ..
$ make
# make install
$ git clone -b devel https://github.com/CESNET/libnetconf2
$ mkdir -p libnetconf2/build && cd libnetconf2/build
$ cmake -DENABLE_PYTHON=ON ..
$ make
# make install

Vagrant

For fast and simple testing/development deployment, you can use the prepared Vagrantfiles for instantiating virtual machine. More information can be found here.