When ydk.path.DataNode.create_datanode(path, value=None) is invoked on the root DataNode, it should create and return a DataNode object, provided that the path and value are valid.
Current Behavior
When ydk.path.DataNode.create_datanode(path, value=None) is invoked on the root DataNode with a valid path, it fails with exception: YInvalidArgumentError: Path is invalid: Cisco-IOS-XR-cdp-cfg:cdp/log-adjacency.
Steps to Reproduce
Execute the script below in ydk-py docker container.
Creating libyang context in path: /root/ydk-py/cisco-ios-xr/ydk/models/cisco_ios_xr/_yang
[libyang] Extension plugin "/usr/local/lib/libyang/libyang_ext_test.so" successfully loaded.
[libyang] Extension plugin "/usr/local/lib/libyang/metadata.so" successfully loaded.
[libyang] Extension plugin "/usr/local/lib/libyang/nacm.so" successfully loaded.
[libyang] Reading module "ietf-yang-metadata".
[libyang] Module "ietf-yang-metadata@2016-08-05" successfully parsed as implemented.
[libyang] Reading module "yang".
[libyang] Resolving "yang" unresolved schema nodes and their constraints...
[libyang] All "yang" schema nodes and constraints resolved.
[libyang] Module "yang@2017-02-20" successfully parsed as implemented.
[libyang] Reading module "ietf-inet-types".
[libyang] Resolving derived type "union" failed, it will be attempted later.
[libyang] Resolving derived type "union" failed, it will be attempted later.
[libyang] Resolving derived type "union" failed, it will be attempted later.
[libyang] Resolving derived type "union" failed, it will be attempted later.
[libyang] Resolving "ietf-inet-types" unresolved schema nodes and their constraints...
[libyang] All "ietf-inet-types" schema nodes and constraints resolved.
[libyang] Module "ietf-inet-types@2013-07-15" successfully parsed as implemented.
[libyang] Reading module "ietf-yang-types".
[libyang] Module "ietf-yang-types@2013-07-15" successfully parsed as implemented.
[libyang] Reading module "ietf-datastores".
[libyang] Module "ietf-datastores@2017-08-17" successfully parsed as implemented.
[libyang] Reading module "ietf-yang-library".
[libyang] Module "ietf-yang-library@2017-08-17" successfully parsed as implemented.
Populating new module schema 'ietf-yang-metadata'
Populating new module schema 'yang'
Populating new module schema 'ietf-inet-types'
Populating new module schema 'ietf-yang-types'
Populating new module schema 'ietf-datastores'
Populating new module schema 'ietf-yang-library'
Getting new modules for path 'Cisco-IOS-XR-cdp-cfg:cdp'
Loading module 'Cisco-IOS-XR-cdp-cfg', revision ''
[libyang] Searching for "Cisco-IOS-XR-cdp-cfg" in /root/ydk-py/cisco-ios-xr/ydk/models/cisco_ios_xr/_yang.
[libyang] Searching for "Cisco-IOS-XR-cdp-cfg" in /root/ydk-py/cisco-ios-xr/ydk/models/cisco_ios_xr/_yang/ietf@0.1.5-post2.
[libyang] Searching for "Cisco-IOS-XR-cdp-cfg" in /root/ydk-py/pathapi-taran.
[libyang] Loading schema from "/root/ydk-py/cisco-ios-xr/ydk/models/cisco_ios_xr/_yang/Cisco-IOS-XR-cdp-cfg.yang" file.
[libyang] Searching for "Cisco-IOS-XR-ifmgr-cfg" in /root/ydk-py/cisco-ios-xr/ydk/models/cisco_ios_xr/_yang.
[libyang] Searching for "Cisco-IOS-XR-ifmgr-cfg" in /root/ydk-py/cisco-ios-xr/ydk/models/cisco_ios_xr/_yang/ietf@0.1.5-post2.
[libyang] Searching for "Cisco-IOS-XR-ifmgr-cfg" in /root/ydk-py/pathapi-taran.
[libyang] Loading schema from "/root/ydk-py/cisco-ios-xr/ydk/models/cisco_ios_xr/_yang/Cisco-IOS-XR-ifmgr-cfg.yang" file.
[libyang] Searching for "Cisco-IOS-XR-types" in /root/ydk-py/cisco-ios-xr/ydk/models/cisco_ios_xr/_yang.
[libyang] Searching for "Cisco-IOS-XR-types" in /root/ydk-py/cisco-ios-xr/ydk/models/cisco_ios_xr/_yang/ietf@0.1.5-post2.
[libyang] Searching for "Cisco-IOS-XR-types" in /root/ydk-py/pathapi-taran.
[libyang] Loading schema from "/root/ydk-py/cisco-ios-xr/ydk/models/cisco_ios_xr/_yang/Cisco-IOS-XR-types.yang" file.
[libyang] Module "Cisco-IOS-XR-types@2018-06-29" successfully parsed as implemented.
[libyang] Resolving "Cisco-IOS-XR-ifmgr-cfg" unresolved schema nodes and their constraints...
[libyang] All "Cisco-IOS-XR-ifmgr-cfg" schema nodes and constraints resolved.
[libyang] Module "Cisco-IOS-XR-ifmgr-cfg@2017-09-07" successfully parsed as implemented.
[libyang] Module "Cisco-IOS-XR-cdp-cfg@2017-08-16" successfully parsed as implemented.
Added new libyang module 'Cisco-IOS-XR-cdp-cfg'
Populating new module schema 'Cisco-IOS-XR-cdp-cfg'
Populating augmented schema node 'cdp'
Populating new schema node 'cdp'
Looking to populate schemas for 'Cisco-IOS-XR-cdp-cfg:cdp'
Getting new modules for path 'Cisco-IOS-XR-cdp-cfg:cdp'
Loading module 'Cisco-IOS-XR-cdp-cfg', revision ''
The module 'Cisco-IOS-XR-cdp-cfg' schema has already been populated in YDK repository
Creating root data node with path '/Cisco-IOS-XR-cdp-cfg:cdp'
Looking to populate schemas for 'Cisco-IOS-XR-cdp-cfg:cdp/log-adjacency'
Getting new modules for path 'Cisco-IOS-XR-cdp-cfg:cdp/log-adjacency'
Loading module 'Cisco-IOS-XR-cdp-cfg', revision ''
The module 'Cisco-IOS-XR-cdp-cfg' schema has already been populated in YDK repository
Creating root data node with path '/Cisco-IOS-XR-cdp-cfg:cdp'
Data is invalid according to the yang model. Libyang error: Node already exists. Path: '/Cisco-IOS-XR-cdp-cfg:cdp'
Path 'Cisco-IOS-XR-cdp-cfg:cdp/log-adjacency' is invalid
Traceback (most recent call last):
File "bugtest.py", line 15, in <module>
root.create_datanode("Cisco-IOS-XR-cdp-cfg:cdp/log-adjacency")
Expected Behavior
When
ydk.path.DataNode.create_datanode(path, value=None)
is invoked on the root DataNode, it should create and return a DataNode object, provided that the path and value are valid.Current Behavior
When
ydk.path.DataNode.create_datanode(path, value=None)
is invoked on the root DataNode with a valid path, it fails with exception:YInvalidArgumentError: Path is invalid: Cisco-IOS-XR-cdp-cfg:cdp/log-adjacency
.Steps to Reproduce
Execute the script below in ydk-py docker container.
Your Script
Logs
System Information