Configuration GUI
The configuration GUI reflects configuration changes made in to onos-config.
Dashboard View
The Dashboard view is the default, and shows all the devices and their network changes in a tabular layout. Other views are available through the menu on the top left or through hyperlinks (e.g. on the device).
- A corresponding Details view shows individual details
- Rollback of the last
NetworkChange
- Compaction of
NetworkChange
s older than a certain time (24 hours by default) - Access to a Device View through a link
Device View
Device View is a graphical layout that shows the entire configuration of the device in a tree view.
- It contains a panel that lists all of the
DeviceChanges
that have happened to the device. Each of these can be hidden or displayed (like a layer) that can be used to see the history of config changes. - An additional layer shows the
Snapshot
for that device - Another layer shows the Operational State (from the OpState cache) when connected to a real device
- Another layer shows all of the configurable (Read Write) paths possible for the device.
- Zoom and Pan functions are also available within the graphical view
Model View
Model View is a tabular layout that shows the list of Model Plugins loaded in the system.
- A details view shows the list of YANG models for that Model Plugin.
Developer information
Implementation
When the Config view dashboard is loaded:
- A grpc-web request is formed and sent as a POST to http://10.152.183.121/onos-config/onos.config.diags.ChangeService/ListNetworkChanges
- This is forwarded by a
proxy_pass
declaration innginx.conf
to http://localhost:8081 - This is converted in to a gRPC request by Envoy Proxy server's grpc-web filter
- and is forwarded to https://onos-config:5150 as a gRPC request
- onos-config sends back the response to envoy asynchronously as a gRPC response
- Envoy's grpc-web service turns it in to a grpc-web response and sends it back to nginx
- nginx sends the response back to the browser and the callback function is called
- Inside the browser the callback updates the
networkChanges
object inside the ConfigDashboardComponent - the binding in the config-dashboard.component.html page is alerted to the updated value and refreshes the display
- similar calls are made to load the
snapshots
anddevices