Yes, I have manged to get the queries working. For failed drives it would be something like:
my $in = NaElement->new('storage-disk-get-iter');
my $query = NaElement->new('query');
my $ownerInfo = NaElement->new('disk-ownership-info');
$ownerInfo->child_add_string('is-failed','true');
my $diskInfo = NaElement->new('storage-disk-info');
$diskInfo->child_add($ownerInfo);
$query->child_add($diskInfo);
$in->child_add($query);
my $failedDiskData = $s->invoke_elem($in);
$s is of course your NaServer
I don't have any failed drives in my cmode clusters right now so I'm getting nothing back (num-records is zero).
In theory I guess you should run the 'invoke_elem' in a loop looking for 'next-tag' in case you have a lot of failures....
Let me know if that works (or doesn't!).
--rdp