Skip to content
This repository has been archived by the owner on Nov 2, 2023. It is now read-only.

0.6.0

Pre-release
Pre-release
Compare
Choose a tag to compare
released this 03 Aug 13:28
· 83 commits to master since this release

2017-08-01 version 0.6.0

Python

  • Introduced new YDK python core package using pybind11 to wrap around YDK C++ core (#507)
    • Introduced ydk.path module consisting of APIs to read, manipulate and write YANG data using XPath-like expressions
    • Updated YDK services and providers to internally use the path API
    • Introduced RestconfServiceProvider and OpenDaylightServiceProvider
    • Updated NetconfServiceProvider to be able to download the device yang models on connecting to a device
    • Introduced ability to encode/decode subtree XML in CodecService and changed CRUDService to use XML subtree filtering to create filters for the read operation
    • Added equality/inequality operators to compare YDK model API objects
    • Add option for TCP transport in NetconfServiceProvider (#476, #444)
    • Support get/get-config with no filter in path API (#503)
    • Introduce optimized on-demand yang model downloading for NetconfServiceProvider (#499)
    • Add support for choosing either a per-device or a common cache for storing downloaded yang models (#502)
    • Introduced encoding/decoding subtree XML in CodecService and changed CRUDService to use XML subtree filtering to create filters for the read operation (#489)
    • Added support for non-standard RPCs as well in path API (#498)

ydk-gen

Note on backward compatibility

The backward incompatible changes introduced with 0.6.0 release include:

  • Installation: When installing YDK-Py, there is a new system requirement which needs to be installed. This is the libydk library, which is available on the DevHub website for various OS platforms. Please refer to the system requirements for details.
  • Windows support: From release 0.6.0 onwards, YDK is no longer supported on the Windows platform. We plan to add back support for this platform in the future.
  • API changes: Please refer to the developer guide and API guide for details about APIs and how to use them.
    • NetconfServiceProvider no longer has the close() method. There is no need to explicitly close the provider as it will be automatically cleaned up when the object goes out of scope.
    • YFilter has replaced the functionality of the READ and DELETE objects
    • When using logging, the suggested level for users of YDK is INFO as DEBUG provides highly detailed logging suitable for dvelopers working on YDK
    • The type names of enumerations and identities no longer have Enum or Identity in their names. For example, the identity InterfaceTypeIdentity in ydk.models.ietf.ietf_interfaces is now renamed to just InterfaceType.
    • The is_config() method is no longer available for the YDK model APIs. This may be added back in a future release.
    • For CRUDService and other services, using a child container or list, which is not the top-level node in a yang model is no longer supported. For example:
from ydk.models.cisco_ios_xe import Cisco_IOS_XE_bgp_oper as bgp_oper
from ydk.services import CRUDService
from ydk.providers import NetconfServiceProvider

... # connect to provider etc

neighbors = bgp_oper.BgpStateData.Neighbors()
crud.read(provider, neighbors)

now has to be changed to:

from ydk.models.cisco_ios_xe import Cisco_IOS_XE_bgp_oper as bgp_oper
from ydk.services import CRUDService
from ydk.providers import NetconfServiceProvider

... # connect to provider etc

bgp_state = bgp_oper.BgpStateData()
crud.read(provider, bgp_state)