NetApp Ontap Monitoring via special Agent Fails on qtree discovery

CMK version: 2.3.0p10.cre
OS version: Debian GNU/Linux 12 (bookworm)
NetApp Version: NetApp Release 9.13.1P9

Error message: [special_netapp_ontap]: KeyError: ‘qtree’

Output from Debug of special_netapp_ontap

Executed Command:
/omd/sites/<sitename>/share/check_mk/agents/special/agent_netapp_ontap --pwstore=<pwstore> --hostname <hostname> --username monitoring --password '***************' --no-cert-check --debug

<<<netapp_ontap_qtree_quota:sep(0)>>>
Traceback (most recent call last):
  File "/omd/sites/<sitename>/share/check_mk/agents/special/agent_netapp_ontap", line 11, in <module>
    sys.exit(main())
             ^^^^^^
  File "/omd/sites/<sitename>/lib/python3/cmk/special_agents/agent_netapp_ontap.py", line 880, in main
    return special_agent_main(parse_arguments, agent_netapp_main)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/<sitename>/lib/python3/cmk/special_agents/v0_unstable/agent_common.py", line 173, in special_agent_main
    return _special_agent_main_core(parse_arguments, main_fn, argv or sys.argv[1:])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/<sitename>/lib/python3/cmk/special_agents/v0_unstable/agent_common.py", line 149, in _special_agent_main_core
    return main_fn(args)
           ^^^^^^^^^^^^^
  File "/omd/sites/<sitename>/lib/python3/cmk/special_agents/agent_netapp_ontap.py", line 872, in agent_netapp_main
    write_sections(connection, logger, args)
  File "/omd/sites/<sitename>/lib/python3/cmk/special_agents/agent_netapp_ontap.py", line 824, in write_sections
    write_section("qtree_quota", fetch_qtree_quota(connection), logger)
  File "/omd/sites/<sitename>/lib/python3/cmk/special_agents/agent_netapp_ontap.py", line 27, in write_section
    for element in generator:
  File "/omd/sites/<sitename>/lib/python3/cmk/special_agents/agent_netapp_ontap.py", line 735, in fetch_qtree_quota
    name=element_data["qtree"]["name"],
         ~~~~~~~~~~~~^^^^^^^^^
KeyError: 'qtree'

I can see much data on the output from this command before the error, so it seems it´s something about qtree information from the rest api.

I already fixed that bug before the conference and discussed with two developers how to deal with it.

Now it is back again. I’m currently unhappy, too.

Quick fix (in your instance):
cp ~/lib/python3/cmk/special_agents/agent_netapp_ontap.py ~/local/lib/python3/cmk/special_agents/

Edit ~/local/lib/python3/cmk/special_agents/agent_netapp_ontap.py (search for fetch_qtree_quota):

def fetch_qtree_quota(
    connection: HostConnection,
) -> Iterable[models.QtreeQuotaModel]:
    field_query = (
        "type",
        "qtree.name",
        "volume.name",
        "space.hard_limit",
        "space.used.total",
        "users",
    )

    for element in NetAppResource.QuotaReport.get_collection(
        connection=connection, fields=",".join(field_query)
    ):
        element_data = element.to_dict()
        # MU
        users=element_data.get("users", {}) # MU
        usernames = {'name': []} # MU
        for user in users:
            usernames['name'].append(user['name'])
        yield models.QtreeQuotaModel(
            type_=element_data["type"],
            name=element_data.get("qtree", {}).get("name", 'No qtree'), # MU
            volume=element_data["volume"]["name"],
            hard_limit=element_data.get("space", {}).get("hard_limit"),
            used_total=element_data.get("space", {}).get("used", {}).get("total"),
            users=','.join(usernames['name']), #element_data.get("users", {}).get("name"), # MU
        )

The lines around/with “MU” are the modified ones.

Greetings
Stefan

Hey Stefan,

thanks for your Solution. It is working now!

Thanks for your help!

Jan

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.