Software Development Kit (SDK) and API Discussions

filestats command using system-cli API


filestats command is available in CLI (an example below):

[root]# rsh myfiler filestats volume myvolume snapshot mysnapshot

VOL=myvolume SNAPSHOT=mysnapshot

INODES=983031 COUNTED_INODES=39845 TOTAL_BYTES=8725924057 TOTAL_KB=8586296


I am trying to run the same command using system-cli API. The API runs fine, no error is reported, but, I can't see any output in "cli-output".

use NaServer;

use NaElement;

use Data::Dumper;

my $filer = "myfiler";

my $volume = "myvolume";

my $snapshot = "mysnapshot";

my $user = "<user>";

my $passwd = "<passwd>";

my $api = NaServer->new( $filer, 1, 4 );


$api->set_admin_user($user, $passwd);


my $cmd      = new NaElement('system-cli');

my $cmd_args = new NaElement('args');

my @arg_arr  = ('filestats', 'volume', $volume, 'snapshot', $snapshot);

foreach my $arg (@arg_arr)


    $cmd_args->child_add(new NaElement('arg', $arg));



my $result = $api->invoke_elem($cmd);

print "Result ". Dumper($result) . "\n";

if ($result->results_errno != 0)


  my $reason = $out->results_reason();

  print "Invoke Failed: $reason\n";


my $output = $result->child_get_string("cli-output");

print "Output: " . Dumper($output) . "\n";

When I run this script, I see:

% perl

Result $VAR1 = bless( {

                 'content' => '',

                 'name' => 'results',

                 'children' => [

                                 bless( {

                                          'content' => '',

                                          'name' => 'cli-output',

                                          'children' => [],

                                          'attrvals' => [],

                                          'attrkeys' => []

                                        }, 'NaElement' ),

                                 bless( {

                                          'content' => '1',

                                          'name' => 'cli-result-value',

                                          'children' => [],

                                          'attrvals' => [],

                                          'attrkeys' => []

                                        }, 'NaElement' )


                 'attrvals' => [



                 'attrkeys' => [



               }, 'NaElement' );

Output: $VAR1 = '';

So, there is no error, but, no output either. Am I invoking the API in a wrong way? How to get the output of filestats command through system-cli call?




Re: filestats command using system-cli API

NetApp Alumni

Hi Haritha -

I don't know what version of ONTAP you're running, but this sounds like burt 400086 which was fixed in ONTAP 8.0.2.

Also, a good debugging technique would be to do: print $cmd->sprintf() . "\n"; to verify the element input.


   - Rick -

Re: filestats command using system-cli API


Thanks Rick. I am running  ONTAP 7.3.4P4 version.

Thanks for the "sprintf" tip. It confirmed that the input is correct:

   Debug Command input :










If any of you have access to ONTAP 8.0.2 or later versions, can you try running similar command and confirm that it works in 8.0.2+? Based on this information, I will have to recommend upgrade to the required ONTAP version as well as suggest a workaround for earlier versions.



Re: filestats command using system-cli API



I am also seeing this problem for system-cli for ndmpd commands in various 7.3.x releases. Does anyone have a list of which commands are not funcional via system-cli, and if this has been fixed for the general case so that all cli commands for which there is no spcific API call can be issued via system-cli.


I'd like to write a full coverage API for 7-Mode using the HTTPS connector, to do so I need to know what the target release for full coverage should be.



Earn Rewards for Your Review!
GPI Review Banner
All Community Forums