Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
cDOT: volume-get-iter API returns same set of volumes every time
2014-03-07
05:50 AM
6,021 Views
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I tried to fetch volume info from a clustered ONTAP filer via NMSDK and I have an issue with iterate a list of volume objects.
The “volume-get-iter” element seems like most relevant to what I am looking for. However the tag I specified with from the last call, always return the same set of the volume objects.
Here is my code snip. Any ideas?
I suspect something might be wrong with the way tag I specified.
This cluster has 15 volume objects, I should get 4 different list of volume objects each time (and the last one will be 3 volume objects).
However, i get the same set of volumes every time.
=== === === ===
my $api = create_element();
my $xo = $s->invoke_elem($api);
if ( $xo->results_status() eq 'failed' ) {
print 'Error:\n';
print $xo->sprintf();
exit 1;
}
my $tag;
my $number_records;
do {
$number_records = $xo->child_get_int("num-records");
last if $number_records == 0;
$tag = $xo->child_get_string("next-tag");
print $xo->sprintf();
$api = create_element();
$api->child_add_string( "tag", $tag );
my $xo = $s->invoke_elem($api);
if ( $xo->results_status() eq 'failed' ) {
print 'Error:\n';
print $xo->sprintf();
exit 1;
}
sleep 5;
} while ( $number_records != 0 );
sub create_element {
my $api = new NaElement('volume-get-iter');
my $xi = new NaElement('desired-attributes');
$api->child_add($xi);
my $xi1 = new NaElement('volume-attributes');
$xi->child_add($xi1);
my $xi12 = new NaElement('volume-id-attributes');
$xi1->child_add($xi12);
$xi12->child_add_string('name');
$xi12->child_add_string('junction-path');
$api->child_add_string( 'max-records', '4' );
return $api;
}
Solved! See The Solution
1 ACCEPTED SOLUTION
migration has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I think I ran into this problem as well. I looked at the code I posted over a year ago, and the loop end condition was not the number of records, but the existence of next-tag. Here is a snippet.
# Get the tag for the next iteration and create the tag element. | |
# | |
$tag = $xout->child_get_string("next-tag"); | |
my $tag_elem = NaElement->new("tag"); | |
$xin->child_add($tag_elem); |
while (defined($tag)) { | |
$tag_elem->set_content($tag); |
my $xout = $server->invoke_elem($xin); | |
if ($xout->results_status() eq "failed") { | |
print("volume-get-iter error: " . | |
$xout->results_reason() . "\n"); | |
exit(-1); | |
} |
tellus(2, "Loop: " . $xout->sprintf()); |
@vol_list = $xout->child_get("attributes-list")->children_get(); | |
foreach $vol_info (@vol_list) { | |
print_vol_info($vol_info); | |
} |
$tag = $xout->child_get_string("next-tag"); | |
} |
Regards,
- Rick -
2 REPLIES 2
migration has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I think I ran into this problem as well. I looked at the code I posted over a year ago, and the loop end condition was not the number of records, but the existence of next-tag. Here is a snippet.
# Get the tag for the next iteration and create the tag element. | |
# | |
$tag = $xout->child_get_string("next-tag"); | |
my $tag_elem = NaElement->new("tag"); | |
$xin->child_add($tag_elem); |
while (defined($tag)) { | |
$tag_elem->set_content($tag); |
my $xout = $server->invoke_elem($xin); | |
if ($xout->results_status() eq "failed") { | |
print("volume-get-iter error: " . | |
$xout->results_reason() . "\n"); | |
exit(-1); | |
} |
tellus(2, "Loop: " . $xout->sprintf()); |
@vol_list = $xout->child_get("attributes-list")->children_get(); | |
foreach $vol_info (@vol_list) { | |
print_vol_info($vol_info); | |
} |
$tag = $xout->child_get_string("next-tag"); | |
} |
Regards,
- Rick -
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I'm having some problems with "snapshot-get-iter". Seems that I'm getting the same values again and again.
Is the post before this your solution? The other article mentioned from you isn't only anymore.
Thanks for any idea and best regards,
Alex
