cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
448
Views
5
Helpful
2
Replies
Highlighted
Beginner

AttributeError: 'NoneType' object has no attribute 'description'

Hello again fellow developers!

I come to you yet again in distress and in need of an answer.

 

I am trying to use the model under to retrieve interface information:

import ydk.models.cisco_ios_xr.Cisco_IOS_XR_ifmgr_cfg as ifmgr_cfg

The code:

model = ifmgr_cfg.InterfaceConfigurations()
intconf = ifmgr_cfg.InterfaceConfigurations.InterfaceConfiguration()
intconf.interface_name = "TenGigE0/0/0/11.910240030"
model.interface_configuration.append(intconf)

interface = NetconfService().get(provider=getProvider(), read_filter=intconf)

print(interface.description)

Log output:

2020-10-01 08:02:53,323 - ydk - INFO - Executing 'get' RPC on [Cisco-IOS-XR-ifmgr-cfg:interface-configurations]
2020-10-01 08:02:53,341 - ydk - INFO - ============= 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><interface-configurations xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg">
  <interface-configuration>
    <interface-name>TenGigE0/0/0/11.910240030</interface-name>
  </interface-configuration>
</interface-configurations></filter>
</get>
</rpc>
2020-10-01 08:02:53,577 - ydk - INFO - ============= Received RPC from device =============
<?xml version="1.0"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
  <data>
    <interface-configurations xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfg">
      <interface-configuration>
        <active>act</active>
        <interface-name>TenGigE0/0/0/11.910240030</interface-name>
        <interface-mode-non-physical>l2-transport</interface-mode-non-physical>
        <description>MAN-CPE:FRD-ASR920-Firdavegen5-LAB:Port24</description>
        <ethernet-service xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-l2-eth-infra-cfg">
          <encapsulation>
            <outer-tag-type>match-dot1q</outer-tag-type>
            <outer-range1-low>1024</outer-range1-low>
            <exact/>
          </encapsulation>
          <rewrite>
            <rewrite-type>pop1</rewrite-type>
          </rewrite>
        </ethernet-service>
        <mtus>
          <mtu>
            <owner>sub_vlan</owner>
            <mtu>1522</mtu>
          </mtu>
        </mtus>
      </interface-configuration>
    </interface-configurations>
  </data>
</rpc-reply>

My result:

AttributeError: 'NoneType' object has no attribute 'description'

I am following the doc from here:

http://ydk.cisco.com/py/docs/gen_doc_dfe42d73c3f4f1961e486d4f23a11f136f62317a.html#ydk.models.cisco_ios_xr.Cisco_IOS_XR_ifmgr_cfg.InterfaceConfigurations.InterfaceConfiguration

 

Do you mind pointing me in the direction of my mistake? 

 

Kind regards,

Simon Johansen

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Participant

Hi Simon

The issue here is that list element interface-configuration has two keys: active and interface-name.

  container interface-configurations {
    description
      "interface configurations";
    list interface-configuration {
      key "active interface-name";
      description
        "The configuration for an interface";

Based on the device output you should have:

model = ifmgr_cfg.InterfaceConfigurations()
intconf = ifmgr_cfg.InterfaceConfigurations.InterfaceConfiguration()
intconf.interface_name = "TenGigE0/0/0/11.910240030"
intconf.active = 'act' model.interface_configuration.append(intconf) interface = NetconfService().get(provider=getProvider(), read_filter=intconf) print(interface.description)
Yan Gorelik
YDK Solutions

View solution in original post

2 REPLIES 2
Highlighted
Participant

Hi Simon

The issue here is that list element interface-configuration has two keys: active and interface-name.

  container interface-configurations {
    description
      "interface configurations";
    list interface-configuration {
      key "active interface-name";
      description
        "The configuration for an interface";

Based on the device output you should have:

model = ifmgr_cfg.InterfaceConfigurations()
intconf = ifmgr_cfg.InterfaceConfigurations.InterfaceConfiguration()
intconf.interface_name = "TenGigE0/0/0/11.910240030"
intconf.active = 'act' model.interface_configuration.append(intconf) interface = NetconfService().get(provider=getProvider(), read_filter=intconf) print(interface.description)
Yan Gorelik
YDK Solutions

View solution in original post

Highlighted

Good morning Yangorelik!
Yet again you come to my rescue, thank you so much  

 

The solution you provided worked right away.

 

Hope you have a good day,

Kind regards,

Simon Johansen

This widget could not be displayed.