Software Development Kit (SDK) and API Discussions

storage_disk_get_iter not able to iterate over each attribute

rdx_in

Hi,

I am using perl api storage_disk_get_iter for 7-mode to get the disk details my code looks like below but i am not able to get desired output.

can someone please guide me how to iterate over each attribute list

$out = $s->invoke("storage-disk-get-iter");
if($out->results_status() eq "failed")
{
print($out->results_reason() ."\n");
exit(-2);
}
my $aggrs = $out->child_get("attributes-list");
my @aresult = $aggrs->children_get();

foreach $aggr (@aresult){
my $storage = $aggr->child_get("storage-disk-info");
my @get_info = $storage->children_get();
foreach $pat(@get_info){
my $get = $storage->child_get("disk-inventory-info");
my @good = $get->children_get();
foreach $met(@good){
my $raid_type = $pat->child_get_string("disk-type");
print "$raid_type";
}

3 REPLIES 3

asulliva

The NMSDK documentation has some sample code which might have what you need, or something very close.  In particular, look for the sample script named "vollist.pl".

 

What is the output you are wanting?

 

Andrew

If this post resolved your issue, please help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

rdx_in

my want number of disk which are unowned + type of disk + reason of failed disk + rpm

 

i checked disk-list-info + sanown info...both of them dosen't have the all information 

francoisbnc

Hi,

The api parameters can vary depending of ontapi version.

You can use ZExplore Development Interface to see what is available with which version.

 

Here an example wirh Python in 1.21, where diskname, ownership, isfailed are retrieved. A lot of other information exist

 

import sys
from NaServer import *


PASSWORD= "xxxxx"

filer = NaServer("xxxxxx", 1 , 21)
filer.set_transport_type("HTTPS")
filer.set_port(443)
filer.set_server_type("FILER")

filer.set_style("LOGIN")
filer.set_admin_user("root", PASSWORD)

api = NaElement("storage-disk-get-iter")
api.child_add_string("max-records",500)

xo = filer.invoke_elem(api)

 

if (xo.results_status() == "failed") :
   print ("Error:\n")
   print (xo.sprintf())
   sys.exit (1)

 

attrib = xo.child_get("attributes-list")
disks = attrib.children_get()
for disk in disks:
   diskname = disk.child_get_string("disk-name")
   diskownership = disk.child_get("disk-ownership-info")
   diskfailed = diskownership.child_get_string("is-failed")
   print(diskname)
   print(diskfailed)
   print(diskownership.child_get_string("owner-node-id"))
   print("-------------------")

 

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