ydk-gen
ydk-gen copied to clipboard
YCodeError Cisco_IOS_XR_ipv4_bgp_oper module on ydk-py 0.8.3
Issue tracker is ONLY used for reporting bugs. Please use the YDK Community for any support issues.
Expected Behavior
The YDK should be able to read all BGP data (top level container) without breaking.
Current Behavior
The script breaks after read with YcodeError
Steps to Reproduce
using docker command for environment ( as per documentation for ydk-pyt 0.8.3) docker run -it ydkdev/ydk-py
ydk 0.8.3 ydk-models-cisco-ios-xe 16.9.3 ydk-models-cisco-ios-xr 6.6.2 ydk-models-cisco-nx-os 9.2.3 ydk-models-ietf 0.1.5.post2 ydk-models-openconfig 0.1.6.post1 ydk-service-gnmi 0.4.0.post1
Your Script
from ydk.providers import NetconfServiceProvider
from ydk.services import CRUDService
import logging
from ydk.models.cisco_ios_xr import Cisco_IOS_XR_ipv4_bgp_oper as xr_ipv4_bgp_oper
#logging
log = logging.getLogger('ydk')
log.setLevel(logging.INFO)
handler = logging.StreamHandler()
log.addHandler(handler)
def bgp_oper_main(device_netconf
bgp_oper_obj = xr_ipv4_bgp_oper.Bgp()
bgp_oper_instance_list_obj = xr_ipv4_bgp_oper.Bgp.Instances.Instance()
bgp_oper_instance_list_obj.instance_name = 'default'
bgp_oper_obj.instances.instance.append(bgp_oper_instance_list_obj)
crud_service.read(device_netconf,bgp_oper_obj)
if __name__ == "__main__":
#creating a CRUD(Create Read, Update , Delete) instance over Netconf. Refer ydk-py documentation for details.
crud_service = CRUDService()
device_netconf=NetconfServiceProvider(address=ssh_ip,
port=port,
username=username,
password=password,
protocol='ssh')
bgp_oper_main(device_netconf)
Logs
Enable logging and post the logs below
Executing CRUD read operation on [Cisco-IOS-XR-ipv4-bgp-oper:bgp]
Executing 'get' RPC on [Cisco-IOS-XR-ipv4-bgp-oper:bgp]
============= Sending RPC to device =============
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><get xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<filter><bgp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-bgp-oper">
<instances>
<instance>
<instance-name>default</instance-name>
</instance>
</instances>
</bgp></filter>
</get>
</rpc>
Executing CRUD read operation on [Cisco-IOS-XR-ipv4-bgp-oper:bgp]
Executing 'get' RPC on [Cisco-IOS-XR-ipv4-bgp-oper:bgp]
============= Sending RPC to device =============
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><get xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<filter><bgp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-bgp-oper">
<instances>
<instance>
<instance-name>default</instance-name>
</instance>
</instances>
</bgp></filter>
</get>
</rpc>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><get xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<filter><bgp xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ipv4-bgp-oper">
<instances>
<instance>
<instance-name>default</instance-name>
</instance>
</instances>
</bgp></filter>
</get>
</rpc>
reply: ---------------------> snipped
</update-inbound-filter-process>
<rt-entries>
<rt-entry>
<route-target-lower-bytes>143785</route-target-lower-bytes>
<route-target-upper-bytes>1</route-target-upper-bytes>
<af-name>all-address-family</af-name>
<request-id>0</request-id>
<rt>
<route-target>RT:12713:1</route-target>
</rt>
<afs>IPv4 Unicast</afs>
</rt-entry>
</rt-entries>
<update-inbound-error-process>
<update-error-handling-basic-ebgp>true</update-error-handling-basic-ebgp>
<update-error-handling-basic-ibgp>true</update-error-handling-basic-ibgp>
<update-error-handling-extended-ebgp>false</update-error-handling-extended-ebgp>
<update-error-handling-extended-ibgp>false</update-error-handling-extended-ibgp>
<update-malformed-message-count>0</update-malformed-message-count>
<update-malformed-neighbor-count>0</update-malformed-neighbor-count>
<last-update-malformed-timestamp>
<seconds>0</seconds>
<nanoseconds>0</nanoseconds>
</last-update-malformed-timestamp>
<last-update-malformed-age>0</last-update-malformed-age>
</update-inbound-error-process>
<rpki-summary>
<servers>0</servers>
<ipv4roa-nets>0</ipv4roa-nets>
<ipv4roa-paths>0</ipv4roa-paths>
<ipv6roa-nets>0</ipv6roa-nets>
<ipv6roa-paths>0</ipv6roa-paths>
</rpki-summary>
<rt-hash-table-entries>
<rt-hash-table-entry>
<imp-exp>0</imp-exp>
<af-name>ipv4-unicast</af-name>
<rt-hash>2069</rt-hash>
<route-target-hash-value>2069</route-target-hash-value>
<rt>
<route-target>RT:12713:1</route-target>
</rt>
</rt-hash-table-entry>
</rt-hash-table-entries>
</instance-active>
</instance>
</instances>
</bgp>
</data>
</rpc-reply>
Couldn't fetch child entity remote-nh-table in parent /Cisco-IOS-XR-ipv4-bgp-oper:bgp/instances/instance[instance-name='default']/instance-active/vrfs/vrf[vrf-name='TEST-VRF']/afs/af[af-name='ipv4-unicast']!
Traceback (most recent call last):
File "assurance_master.py", line 331, in <module>
bgp_oper_main(device_netconf ,device_input)
File "assurance_master.py", line 112, in bgp_oper_main
crud_service.read(device_netconf,bgp_oper_obj)
File "/usr/local/lib/python3.5/dist-packages/ydk/services/crud_service.py", line 65, in read
read_top_entity = self._crud.read(provider, top_filters)
File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.5/dist-packages/ydk/errors/error_handler.py", line 82, in handle_runtime_error
_raise(_exc)
File "/usr/local/lib/python3.5/dist-packages/ydk/errors/error_handler.py", line 54, in _raise
exec("raise exc from None")
File "<string>", line 1, in <module>
ydk.errors.YCoreError: Couldn't fetch child entity 'remote-nh-table' in parent /Cisco-IOS-XR-ipv4-bgp-oper:bgp/instances/instance[instance-name='default']/instance-active/vrfs/vrf[vrf-name='TEST-VRF']/afs/af[af-name='ipv4-unicast']
System Information
as generated by docker image
Could you please attach full log file.