# # Copyright (c) 2012 NetApp, Inc., All Rights Reserved # Any use, modification, or distribution is prohibited # without prior written consent from NetApp, Inc. # ## @summary ComponentState module for the method NACL::C::VolumeFile->DumpblockInfo() ## @author dl-nacl-dev@netapp.com ## @status shared ## @pod here =head1 NAME NACL::CS::VolumeFileDumpblockInfo =head1 DESCRIPTION C is a derived class of L. Object(s) of this type are returned when NACL::C::VolumeFile->dumpblock_info() is invoked. This module does not represent the state of any element, but is an object repesentation of the output of 'dumpblock info' DBlade command. =head1 ATTRIBUTES The attribute names are selected to be the same as what ONTAP returns in the output of 'DumpblockInfo' DBlade command. Example: toaster*> dumpblock info -V vol0 0x00064 0 ok disk v5.18 dbn 9387 cksum_dbn 9387 disk-from-container v5.18 dbn-from-container 5533 pvbn 4139 pvbn-from-parent 4139 pvbn-from-container 285 vvbn 163884 fbn-of-inofile 4 pvbn-of-inofile 2237 pvbn-of-inofile-from-parent 2237 pvbn-of-inofile-from-container 2237 vvbn-of-inofile 183388 fileid-of-container-l1 22387 fileid-of_container-l1-is-private 1 fbn-of-container-l1 183296 ckse-dbn 9387 ckse-checksum 0x300c7598 ckse-buftreeid 0x5775 ckse-fbn 163884 ckse-cp-count 6898 ckse-notflexvol-flag 0 toaster*> In the case of it being a VBN_ZERO block, then there's only one field that gets populated: is_vbn_zero. =over =item C<< disk >> =item C<< dbn >> =item C<< cksum_dbn >> =item C<< disk_from_container >> =item C<< dbn_from_container >> =item C<< pvbn >> =item C<< pvbn_from_parent >> =item C<< pvbn_from_container >> =item C<< vvbn >> =item C<< fbn_of_inofile >> =item C<< pvbn_of_inofile >> =item C<< pvbn_of_inofile_from_parent >> =item C<< pvbn_of_inofile_from_container >> =item C<< vvbn_of_inofile >> =item C<< fileid_of_container_l1 >> =item C<< fileid_of_container_l1_is_private >> =item C<< fbn_of_container_l1 >> =item C<< ckse_dbn >> =item C<< ckse_checksum >> =item C<< ckse_buftreeid >> =item C<< ckse_fbn >> =item C<< ckse_cp_count >> =item C<< ckse_notflexvol_flag >> =item C<< is_vbn_zero >> A boolean (0/1) that describes whether the field is a VBN_ZERO block or not. (Value of 1 indicates that it is a VBN_ZERO block.) =back =cut package NACL::CS::VolumeFileDumpblockInfo; use strict; use warnings; use base 'NACL::CS::ComponentState::ONTAP'; use NATE::Log qw(log_global); my $Log = log_global(); my $may_enter = $Log->may_enter(); my $may_exit = $Log->may_exit(); use Class::MethodMaker [ scalar => 'disk', scalar => 'dbn', scalar => 'cksum_dbn', scalar => 'disk_from_container', scalar => 'dbn_from_container', scalar => 'pvbn', scalar => 'pvbn_from_parent', scalar => 'pvbn_from_container', scalar => 'vvbn', scalar => 'fbn_of_inofile', scalar => 'pvbn_of_inofile', scalar => 'pvbn_of_inofile_from_parent', scalar => 'pvbn_of_inofile_from_container', scalar => 'vvbn_of_inofile', scalar => 'fileid_of_container_l1', scalar => 'fileid_of_container_l1_is_private', scalar => 'fbn_of_container_l1', scalar => 'ckse_dbn', scalar => 'ckse_checksum', scalar => 'ckse_buftreeid', scalar => 'ckse_fbn', scalar => 'ckse_cp_count', scalar => 'ckse_notflexvol_flag', scalar => 'ckse_key_idx', scalar => 'key_id', scalar => 'ckse_encrypted', # For whatever reason, -default isn't working. Hence the use of # -default_ctor to default to value to 0. scalar => [ { -default_ctor => sub {0} }, 'is_vbn_zero', ], ]; sub _set_fields { $Log->enter(); my ($pkg, @opts) = @_; $pkg->SUPER::_set_fields(add_unknown_fields => 1, @opts); $Log->exit(); } 1;