YANGMAN offers dynamically generated UI forms and native JSON representation based on RESTCONF APIs
Switch branches/tags
Nothing to show
Clone or download
Latest commit 7ee5df7 Sep 22, 2016
Permalink
Failed to load latest commit information.
images Added files via upload May 4, 2016
README.md updateReadme Sep 22, 2016
dcloud.png updateReadme Sep 22, 2016

README.md

OpenDaylight YANGMAN IMAGE ALT TEXT HERE

OpenDaylight (ODL) is an open source application development and delivery platform. YANG is a human-readable language for describing data device and service models. ODL dynamically generates REST APIs from YANG models (referred to as RESTCONF), thus providing ODL apps developers with an immediate baseline set of APIs. YANGMAN is an ODL application offering dynamically generated UI forms and native JSON representation based on RESTCONF APIs.

Team:

  • Jan Medved
  • Daniel Malachovsky
  • Daniel Kuzma
  • Stanislav Jamrich
  • Chris Metz
  • Andrej Vanko
  • Alex Zverev

Project Link:

YANGMAN Project

Social Tags:

SDN, Opendaylight, Open Source, RESTCONF, YANG, RESTCONF

Project Kick-off Date:

April 2016

Current Status:

In development. Initial beta version availble in June 2016. Final version incorporated into upcoming future ODL release.

Application Overview:

Model-driven software engineering (MDSE) has emerged recently as a popular paradigm for automatically generating programming constructs such as code and APIs. This simplifies and facilitates more rapid and organized software engineering and development efforts. Naturally this leads to faster apps delivery.

Existing YANG tools for the programmer (e.g. sublime text, pyang, etc.) focus on model editing and validation. POSTMAN is the defacto standard for developers working with "known" REST APIs. In other words, the programmer must have in hand, a priori, the REST APIs their app will be dealing with. Not efficient.

Therefore what's needed is an MDSE app for ODL developers supporting:

  • simplifed model validation and, RESTCONF API exposure, organization and access
  • really simple WEB-based user interface for model "surfing"

YANGMAN is an application with a simple POSTMAN-inspired user interface. It will be available in a future release of ODL.

Figure 1 belows depicts an extremely high-level view of the application. Figure 1. YANGMAN Architecture

YANGMAN is an ODL-DLUX based application. It uses the standard ODL software components including MD-SAL and RESTCONF. Yangtools is an ODL component that reads/processes YANG models loaded into the ODL controller.

YANGMAN re-uses much of the same code present in the already-existing YANGUI. The primary difference is the simplifed POSTMAN-like GUI. This offers one app for model-surfing and RESTCONF API visibility and organization.

YANGMAN User Interface (GUI)

The YANGMAN GUI provides the operator with a web-based user interface into the system.The GUI is designed and implemented using AngularJS, a commonly used model-view-controller (MVC) UI framework. A simple look/feel is supported using the Angular Material. Internally the system defines models and services applied against those models; controllers for manipulating data for viewing; views (e.g. html page) displayed in a browser and bound to controllers. This MVC design pattern provides a modularized development environment and can be re-used across multiple applications. Of course it will be implemented inside of ODL DLUX.

Currently the YANGMAN is being coded up. What follows are some of the mockups that the development team will use to guide their efforts. Of course some differences will exist between the current mockups and the finished YANGMAN application. But the following gives you an idea on what it will look like.

Figure 2 shows the YANGMAN GUI model selection panel. ![](https://raw.githubusercontent.com/CiscoDevNet/yangman/master/images/may2-YANGMAN-list-select-model copy.png) Figure 2. YANGMAN Model Selection

A scrollable list of the yang models is displayed after YANGMAN is lauched. The user selects the model and then the config or oper portion of the tree to work with.

Figure 3 shows the YANGMAN GUI UI forms panel. Figure 3. YANGMAN UI Forms

On the left is a hide/unhide panel showing a generated pyang -tree type visualization of the selected YANG model user for reference purposes. The UI forms (auto-generated by YANGMAN) enable the developer to model surf and test out new RESTCONF APIs. When the send button is chosen the RESTCONF API with the respective body is conveyed into ODL. The JSON radio button on the upper righthand corner allows the user to toggle to the JSON display.

Figure 4 shows the YANGMAN GUI JSON panel. Figure 4. YANGMAN UI JSON

Users familiar with POSTMAN can relate to this panel. Indeed many developers are comfortable with the native JSON format of the API. Toggling between form and JSON is supported. A feature inherited from YANGUI allows the user to add/mod/del parameters that can be easily edited into the JSON display.

Figures 5 and 6 show the history and collections panels respectively, again inspired from users of POSTMAN.

Figure 5. YANGMAN UI History

Figure 6. YANGMAN UI Collections

Code

Available shortly.

References