ModelDiff¶
yang.ncdiff module has a class to compute diff of two versions of a model.
A common use case is having two folders of YANG files and comparing a model in them.
create ModelCompiler objects¶
Given a folder that holds all YANG files of a device, an instance of ModelCompiler can be instantiated:
>>> from yang.ncdiff import Model, ModelCompiler, ModelDiff
>>> compiler1 = ModelCompiler('/version1/yang')
...
>>> compiler2 = ModelCompiler('/version2/yang')
...
>>>
create Model objects¶
>>> model1 = compiler1.compile('Cisco-IOS-XE-native')
...
>>> model2 = compiler2.compile('Cisco-IOS-XE-native')
...
>>>
create ModelDiff objects¶
Simply print out the ModelDiff object:
>>> diff = ModelDiff(model1, model2)
>>> bool(diff)
True
>>> print(diff)
module: Cisco-IOS-XE-native
+--rw native
+--rw hw-module
| +--rw switch* deleted
| | +--rw switch-number deleted
| | +--rw usbflash1 deleted
| | +--rw security deleted
| | +--rw enable deleted
| | +--rw password? deleted
| +--rw slot* deleted
| +--rw name deleted
| +--rw shutdown? deleted
+--rw parser
| +--rw view
| +--rw view-name-list*
| | +--rw secret
| | +--rw type? modified
...
>>>
Section author: Jonathan Yang <yuekyang@cisco.com>