Software Development Kit (SDK) and API Discussions

Getting IndexError: list index out of range using Zapi

agnesj

Hi,

I have a python script that would run for hours and then I would get an Zapi Exception error when I am trying to do a server_ct_invoke_elem.  The stack trace is as follows:

Traceback (most recent call last):

  File "ontapmon.py", line 328, in aggrperf_get

    perf_out = server_ctx.invoke_elem(perf_in)

  File "/mnt/lsf/netapp-manageability-sdk-5.0//lib/python/NetApp/NaServer.py", line 490, in invoke_elem

    return self.parse_xml(xml_response)

  File "/mnt/lsf/netapp-manageability-sdk-5.0//lib/python/NetApp/NaServer.py", line 686, in parse_xml

    p.Parse(xmlresponse, 1)

  File "/mnt/lsf/netapp-manageability-sdk-5.0//lib/python/NetApp/NaServer.py", line 666, in end_element

    self.ZAPI_stack[i-1].child_add(n)

IndexError: list index out of range

Basically the script would collect counters via DFM:

# Create API request
    perf_in = NaElement("perf-get-counter-data")

    perf_in.child_add_string("number-samples", 1)

    instance_info = NaElement("instance-counter-info")
    counter_info = NaElement("counter-info")
    instance_info.child_add_string("object-name-or-id", obj_name)

    perf_obj_ctr1 = NaElement("perf-object-counter")
    perf_obj_ctr1.child_add_string("object-type", "volume")
    perf_obj_ctr1.child_add_string("counter-name", "avg_latency")

    perf_obj_ctr2 = NaElement("perf-object-counter")
    perf_obj_ctr2.child_add_string("object-type", "disk")
    perf_obj_ctr2.child_add_string("counter-name", "disk_busy")

    counter_info.child_add(perf_obj_ctr1)
    counter_info.child_add(perf_obj_ctr2)

    instance_info.child_add(counter_info)

    perf_in.child_add(instance_info)

    try:

        perf_out = server_ctx.invoke_elem(perf_in)

Has anyone gotten this error before?   If so, any insight on a solution?   I am using DFM version 5.1 and version NMSDK 5.0 .  Attached is the python script (ontapmon.py), the config file (parameter settings that defines DFM server, password, etc) to pass to the python script and example log message when I get the error.

Please advise.

Regards,

ajacob

2 REPLIES 2

sens

Hi,

Your code pasted above looks fine to me.

Does it happen for a particular host (obj_name in your code)?

You can use ZEDI (available under <nmsdk root>/zedi/) for testing.

Regards,

Sen.

agnesj

No, it does not happen on a particular (obj_name).  The Exception occurs on different obj_name and when retrieving other coutners like domain counters.  My scripts captures Exceptions in error log files and a grep of Exception in these files indicate what obj_name and type of counters script is retrieving when the Exception is caught.  Please also note that the "IndexError is occurring in the NMSDK in file NaServer.py

[root@ibmx3755-svl03-priv aj]# grep Exception ontapmon_error.log*

ontapmon_error.log.2012-09-18:2012-09-18 05:30:08,130 ERROR Exception getting aggregate counters for fas6070c-svl22:plm_aggr

ontapmon_error.log.2012-09-18:2012-09-18 09:05:10,950 ERROR Exception getting aggregate counters for fas6280c-svl12:aggr1

ontapmon_error.log.2012-09-18:2012-09-18 18:45:45,875 ERROR Exception getting domain counters for fas6280c-svl11

ontapmon_error.log.2012-09-18:2012-09-18 23:20:07,075 ERROR Exception getting aggregate counters for fas6070c-svl23:ptcaggr_nfs

ontapmon_error.log.2012-09-19:2012-09-19 06:22:39,179 ERROR Exception getting aggregate counters for fas6280c-svl11:aggr1

ontapmon_error.log.2012-09-19:2012-09-19 22:11:50,431 ERROR Exception getting aggregate counters for fas6280c-svl11:aggr1

ontapmon_error.log.2012-09-20:2012-09-20 06:14:53,576 ERROR Exception getting aggregate counters for fas6280c-svl11:aggr1

ontapmon_error.log.2012-09-21:2012-09-21 09:29:38,305 ERROR Exception getting domain counters for fas6280c-svl12

ontapmon_error.log.2012-09-22:2012-09-22 05:07:48,093 ERROR Exception getting domain counters for fas6280c-svl12

ontapmon_error.log.2012-09-23:2012-09-23 07:36:51,135 ERROR Exception getting aggregate counters for fas6280c-svl11:aggr1

ontapmon_error.log.2012-09-23:2012-09-23 18:50:13,429 ERROR Exception getting aggregate counters for fas6070c-svl22:aggr1

ontapmon_error.log.2012-09-24:2012-09-24 15:50:30,458 ERROR Exception getting domain counters for fas6280c-svl11

Regards,

ajacob

Announcements
NetApp on Discord Image

We're on Discord, are you?

Live Chat, Watch Parties, and More!

Explore Banner

Meet Explore, NetApp’s digital sales platform

Engage digitally throughout the sales process, from product discovery to configuration, and handle all your post-purchase needs.

NetApp Insights to Action
I2A Banner
Public