11-05-2019 12:28 PM - edited 11-06-2019 12:04 AM
Dear friends,
I'm a beginner on NSO services modelling and running into an issue while trying to run pyang against a yang file - described in one of the NSO lab guides.
NSO version is 5.1
Pyang 1.5, but also tried 1.7.8 and 2.1. Got the same errors though.
module vlan { namespace "http://com/example/vlan"; prefix vlan; import ietf-inet-types { prefix inet; } import tailf-ncs { prefix ncs; } import tailf-common{ prefix tailf; } description "Description..."; revision 2019-11-05 { description "Initial revision"; } augment /ncs:services{ list vlan { tailf:info "VLAN Service"; key name; unique vlan-id; uses ncs:service-data; ncs:servicepoint "vlan"; leaf name { tailf:info "Service Instance Name"; type string; } leaf vlan-id{ tailf:info "Unique VLAN ID"; type uint32{ range "1..4096"; } } list device{ tailf:info "L3 switch"; key name; leaf name{ tailf:info "Device name"; type leafref{ path "/ncs:devices/ncs:device/ncs:name"; } } } list interface{ tailf:info "Ethernet interface"; key "intf-type intf-id"; leaf intf-type{ tailf:info "Ethernet interface type"; type enumeration{ enum Ethernet; enum FastEthernet; enum GigabitEthernet; } } leaf intf-id{ tailf:info "Ethernet interface ID"; type string; } } } } }
Errors:
user@mypc:~/ncs-run/packages$ pyang vlan/src/yang/vlan.yang
vlan/src/yang/vlan.yang:5: warning: imported module ietf-inet-types not used
/home/user/nso/src/ncs/yang/ietf-yang-schema-mount.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/ietf-yang-schema-mount.yang:9: error: unexpected keyword "reference"
/home/user/nso/src/ncs/yang/ietf-yang-schema-mount.yang:15: error: unexpected keyword "reference"
/home/user/nso/src/ncs/yang/tailf-ncs-cluster.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-common.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-compliance.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-customers.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-devices.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-devices.yang:3707: error: XPath function "derived-from-or-self" is not defined in the XPath context
/home/user/nso/src/ncs/yang/tailf-ncs-devices.yang:3907: error: XPath function "derived-from-or-self" is not defined in the XPath context
/home/user/nso/src/ncs/yang/tailf-ncs-java-vm.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-log.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-packages.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-plan.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-python-vm.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-service-progress-monitoring.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-services.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-smart-license.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-snmp-notification-receiver.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-software.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs-ssh.yang:2: error: bad value "1.1" (should be version)
/home/user/nso/src/ncs/yang/tailf-ncs.yang:2: error: bad value "1.1" (should be version)
Any insights will be much appreciated.
Thank you
Andre
11-06-2019 06:05 AM
Hello,
in theory starting release 1.7 pyang should support YANG 1.1 and so this should not be an issue (essentially this error comes from being check against the re_version regex: https://github.com/mbj4668/pyang/blob/b7264db134929809c9749aed700f187ee4973482/pyang/syntax.py#L112
However what could be happening is the following: when you source ncsrc then it inserts pyang version 1.5 in your path (look at `which pyang`) and it won't necessary use the version you have installed on your system but the version that is shipped with NSO.
user@/tmp$ which pyang /usr/local/bin/pyang user@/tmp$ pyang --version user@/tmp$ source /var/nso-5.2.1/ncsrc user@/tmp$ which pyang /var/nso-5.2.1/bin/pyang user@/tmp$ pyang --version
pyang 1.5
In theory the error reported for yang 1.1 models should not be there in pyang >= 1.7 - regarding why pyang is not changed in newer NSO version have a look at this: https://www.tail-f.com/alternatives-to-pyang-tool/
07-13-2020 02:13 PM
10-22-2021 09:35 AM
Please try under commands on NSO 5.1 version
yanger [yangfilename].yang
NSO uses yanger to validate yang file for latest nso versions.
pyang is deprecated.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide