<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic 8.3.0 NMSDK Unable to find API: aggr-list-info in Software Development Kit (SDK) and API Discussions</title>
    <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/8-3-0-NMSDK-Unable-to-find-API-aggr-list-info/m-p/112434#M1669</link>
    <description>&lt;P&gt;Ultimately, I want a list of volumes on the cluster. &amp;nbsp;I've tried using several of the classes available in the ontap-api-8.3.jar, but with mixed results. &amp;nbsp;Here is snippet of code I've tried using to get a list of AggrInfo objects from a cluster:&lt;/P&gt;&lt;PRE&gt;Protocol protocol = Protocol.HTTP;&lt;BR /&gt;try {
            ApiRunner runner = new ApiRunner(ApiTarget.builder()
                .withHost("192.168.0.10")
                .withUserName("admin")
                .withPassword("password1!")
                .withTargetType(TargetType.FILER)
                .useProtocol(protocol)
                .build());
                       
            AggrListInfoRequest aggrLiInReq = new AggrListInfoRequest();
            AggrListInfoResponse aggrLiInResp = runner.run(aggrLiInReq);
            List&amp;lt;AggrInfo&amp;gt; aggrInfoList = aggrLiInResp.getAggregates();
            for (AggrInfo aggrInfo : aggrInfoList){
            	aggrInfo.getVolumeCount();
            }

        } catch(Exception e) {;
            e.printStackTrace();
        }&lt;/PRE&gt;&lt;P&gt;Here is the error I am encountering&lt;/P&gt;&lt;PRE&gt;com.netapp.nmsdk.ApiExecutionException: Unable to find API: aggr-list-info&lt;/PRE&gt;&lt;P&gt;I'm confused. &amp;nbsp;The AggrListInfoResponse class is in the ontap-api-8.3.jar. &amp;nbsp;How can the api not be avaliable?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can someone please help me with this?&lt;/P&gt;</description>
    <pubDate>Wed, 04 Jun 2025 22:48:24 GMT</pubDate>
    <dc:creator>howd</dc:creator>
    <dc:date>2025-06-04T22:48:24Z</dc:date>
    <item>
      <title>8.3.0 NMSDK Unable to find API: aggr-list-info</title>
      <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/8-3-0-NMSDK-Unable-to-find-API-aggr-list-info/m-p/112434#M1669</link>
      <description>&lt;P&gt;Ultimately, I want a list of volumes on the cluster. &amp;nbsp;I've tried using several of the classes available in the ontap-api-8.3.jar, but with mixed results. &amp;nbsp;Here is snippet of code I've tried using to get a list of AggrInfo objects from a cluster:&lt;/P&gt;&lt;PRE&gt;Protocol protocol = Protocol.HTTP;&lt;BR /&gt;try {
            ApiRunner runner = new ApiRunner(ApiTarget.builder()
                .withHost("192.168.0.10")
                .withUserName("admin")
                .withPassword("password1!")
                .withTargetType(TargetType.FILER)
                .useProtocol(protocol)
                .build());
                       
            AggrListInfoRequest aggrLiInReq = new AggrListInfoRequest();
            AggrListInfoResponse aggrLiInResp = runner.run(aggrLiInReq);
            List&amp;lt;AggrInfo&amp;gt; aggrInfoList = aggrLiInResp.getAggregates();
            for (AggrInfo aggrInfo : aggrInfoList){
            	aggrInfo.getVolumeCount();
            }

        } catch(Exception e) {;
            e.printStackTrace();
        }&lt;/PRE&gt;&lt;P&gt;Here is the error I am encountering&lt;/P&gt;&lt;PRE&gt;com.netapp.nmsdk.ApiExecutionException: Unable to find API: aggr-list-info&lt;/PRE&gt;&lt;P&gt;I'm confused. &amp;nbsp;The AggrListInfoResponse class is in the ontap-api-8.3.jar. &amp;nbsp;How can the api not be avaliable?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can someone please help me with this?&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jun 2025 22:48:24 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/8-3-0-NMSDK-Unable-to-find-API-aggr-list-info/m-p/112434#M1669</guid>
      <dc:creator>howd</dc:creator>
      <dc:date>2025-06-04T22:48:24Z</dc:date>
    </item>
    <item>
      <title>Re: 8.3.0 NMSDK Unable to find API: aggr-list-info</title>
      <link>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/8-3-0-NMSDK-Unable-to-find-API-aggr-list-info/m-p/112458#M1670</link>
      <description>&lt;P&gt;I'm no using APIRunner&amp;nbsp;but here are a couple of code snippets for you:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Aggregate List (needs to be done at the cluster level)&lt;/P&gt;&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;private NaElement request, response;

NaServer server = new NaServer("cluster_ip");
server.setTransportType(NaServer.TRANSPORT_TYPE_HTTPS);
server.setPort(443);
server.setStyle(NaServer.STYLE_LOGIN_PASSWORD);
server.setAdminUser("username", "password");

request = new NaElement("aggr-get-iter");
response = server.invokeElem(request);
NaElement aggrAttributes = response.getChildByName("attributes-list");

@SuppressWarnings("unchecked")
List&amp;lt;NaElement&amp;gt; aggrList = aggrAttributes.getChildren();
for (NaElement aggr : aggrList) {
     String aggrName = aggr.getChildContent("aggregate-name");
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Volume List (needs to be done at the vserver level)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;private NaElement request, response;

NaServer server = new NaServer("vserver_ip");
server.setTransportType(NaServer.TRANSPORT_TYPE_HTTPS);
server.setPort(443);
server.setStyle(NaServer.STYLE_LOGIN_PASSWORD);
server.setAdminUser("username", "password");

ArrayList&amp;lt;String&amp;gt; volumeList = new ArrayList&amp;lt;String&amp;gt;();
request = new NaElement("volume-get-iter");
request.addNewChild("max-records",  "4294967295");
NaElement desiredAttributes = new NaElement("desired-attributes");
NaElement volAttributes = new NaElement("volume-attributes");
NaElement volIDAttributes = new NaElement("volume-id-attributes");
NaElement name = new NaElement("name");
volIDAttributes.addChildElem(name);
volAttributes.addChildElem(volIDAttributes);
desiredAttributes.addChildElem(volAttributes);
request.addChildElem(desiredAttributes);
response = server.invokeElem(request);

@SuppressWarnings("unchecked")
List&amp;lt;NaElement&amp;gt; attributes = response.getChildByName("attributes-list").getChildren();
for (NaElement attribute : attributes) {
        // because the response is nested within volume-id-attributes, we need to get children again
	@SuppressWarnings("unchecked")
	List&amp;lt;NaElement&amp;gt; volIDs = attribute.getChildren();
	for (NaElement id : volIDs) {
		volumeList.add(id.getChildContent("name"));
	}
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm splicing those together from other bits of code so no promises it'll just run but it should be close.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Nov 2015 22:21:46 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Software-Development-Kit-SDK-and-API-Discussions/8-3-0-NMSDK-Unable-to-find-API-aggr-list-info/m-p/112458#M1670</guid>
      <dc:creator>michael_england</dc:creator>
      <dc:date>2015-11-11T22:21:46Z</dc:date>
    </item>
  </channel>
</rss>

