ncs-yang is a simple tool to compile specific yang file/s using ncsc. Using this library we can convert REST/RESTCONF payloads to NETCONF payloads.
- Introduction
- Pre-requisites
- Installation and Downloads
- Help
- Features
- FAQ
- Bug Tracking and Support
- License and Copyright
- Author and Thanks
We haven't found a simple way to compile single yang file or to create uml diagrams from it. We usuall run make
or make all
to compile the yang files. For uml diagrams we have to copy all the yang files from ncs and the project to an directory and generate uml diagram using pyang -f uml
command.
Being a developer we wanted to trigger/generate with simple commands or single line commands. Which leaded to create this library.
- ncsc, pyang commands must be reconginsed by the terminal.
- ncs-yang supports both trains of python
2.7+ and 3.1+
, the OS should not matter.
The best way to get ncs-yang is with setuptools or pip. If you already have setuptools, you can install as usual:
python -m pip install ncs-yang
pip install ncs-yang
Otherwise download it from PyPi, extract it and run the setup.py
script
python setup.py install
If you're Interested in the source, you can always pull from the github repo:
- From github
git clone https://github.com/kirankotari/ncs-yang.git
⋊> ~/k/i/ncs-yang on master $ ncs-yang --help
ncs-yang
<YangFile or YangFiles> [--uml | --jtox | --dsdl]
--schema <yang> [--json | --xml | --yml]
--yang-sync <settings.yml> to collect yang files from remote machine
--payload <payload.json>
<YangFile or YangFiles> will return payload.xml
--payload <payload.xml>
<YangFile or YangFiles> will return payload.json
--payload <payload.yml> will return payload.json
<YangFile or YangFiles> will return payload.xml
--log [info | debug]
--path <dependency yang path>
-h | --help
-v | --version
- running single yang file
⋊> ~/k/i/cfs-package on sprint $ ncs-yang src/yang/cfs-mpls.yang
[ INFO ] :: [ ncs-yang ] :: compiling yang file: src/yang/cfs-mpls.yang
/opt/ncs/ncs-5.2.1.2/bin/ncsc `ls cfs-mpls-ann.yang > /dev/null 2>&1 && echo "-a cfs-mpls-ann.yang"` --yangpath /opt/ncs/ncs-run/packages/cfs-package/src/../../common/src/yang --yangpath /opt/ncs/ncs-run/packages/cfs-package/src/../../resource-manager/src/yang -c -o /opt/ncs/ncs-run/packages/cfs-package/load-dir/cfs-mpls.fxs src/yang/cfs-mpls.yang
- running multiple yang files
⋊> ~/k/i/cfs-package/src/yang on sprint $ ncs-yang cfs-mpls.yang cfs-asa.yang
[ INFO ] :: [ ncs-yang ] :: compiling yang file: cfs-mpls.yang
/opt/ncs/ncs-5.2.1.2/bin/ncsc `ls cfs-mpls-ann.yang > /dev/null 2>&1 && echo "-a cfs-mpls-ann.yang"` --yangpath /opt/ncs/ncs-run/packages/cfs-package/src/../../common/src/yang --yangpath /opt/ncs/ncs-run/packages/cfs-package/src/../../resource-manager/src/yang -c -o /opt/ncs/ncs-run/packages/cfs-package/load-dir/cfs-mpls.fxs cfs-mpls.yang
[ INFO ] :: [ ncs-yang ] :: compiling yang file: cfs-asa.yang
/opt/ncs/ncs-5.2.1.2/bin/ncsc `ls cfs-asa-ann.yang > /dev/null 2>&1 && echo "-a cfs-asa-ann.yang"` --yangpath /opt/ncs/ncs-run/packages/cfs-package/src/../../common/src/yang --yangpath /opt/ncs/ncs-run/packages/cfs-package/src/../../resource-manager/src/yang -c -o /opt/ncs/ncs-run/packages/cfs-package/load-dir/cfs-asa.fxs cfs-asa.yang
⋊> ~/k/i/c/s/yang on sprint $ ncs-yang cfs-mpls.yang --uml
[ INFO ] :: [ ncs-yang ] :: generated uml diagram: cfs-mpls.uml
- Question: I am seeing an error?
Answer: Error might be related to yang file, we recommend to check again beforing opening a bug.
- Feature Adding yang-sync
- Feature Adding payload convertion
- Feature Adding schema generator
- Fix: Import issues, logger corrections
- Feature: Adding UML Diagrams support
- Feature: Adding Jtox support
- Feature: Adding DSDL support
- Please report any suggestions, bug reports, or annoyances with ncs-yang through the Github bug tracker.
-
ncs-yang is licensed Apache 2.0 2019-2020
ncs-yang was developed by Kiran Kumar Kotari, For any suggestions or comments contact kkotari@cisco.com or kirankotari@live.com. If you find any bugs please fix them and send me a pull request.