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.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the NSO Developer community: