gui FEATURE device autoconnect

Let user to specify certain devices to be automatically connected when
the user login. It is actually not strictly when the user login, but
as soon as he opens Netopeer tab first time after login.

The patch also adds possibility to add own name to the device in the
inventory. Such a name is then used in configuration tab when the device
is connected.

Another change is that Netopeer dashboard now shows the currently connected
device. This is mainly due to the autoconnection feature to see that it
works and to allow simly go to the autoconnected device configuration.

Fixes #7
12 files changed
tree: ba9b046c339dbb184bd8b7fb584067cf2a9e61d6
  1. .gitignore
  2. LICENSE
  3. README.md
  4. app.config.json
  5. backend/
  6. config.json
  7. docs/
  8. frontend-assets/
  9. frontend/
  10. schema.svg
  11. 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.

Several screenshots can be found in the docs.

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)
  • [x] edit configuration data of the device
  • [ ] bulk configuration (set configuration of multiple device at once)
  • [x] YANG explorer to display/browse YANG schema (currently just basic textual information)
  • [ ] 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. When you decide to deploy production version, there is pre-built Netopeer2GUI as a release package. To configure your web server, please follow the mentioned liberouter-gui instructions or have a look at *-release vagrant image(s).

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

Or alternatively install binary packages of libyang and libnetconf2.

Vagrant

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