# This is a prototype. It needs documentation. # The field representation is incomplete: # # Copyright (c) 2001-2012 NetApp, Inc., All Rights Reserved # Any use, modification, or distribution is prohibited # without prior written consent from NetApp, Inc. # ## @summary VolumeMember ComponentState Module ## @author Dheeraj.K@netapp.com, dl-nacl-dev@netapp.com ## @status shared ## @pod here =head1 NAME NACL::CS::VolumeMember =head1 DESCRIPTION C is a derived class of L. It represents the state of a Volume Member. A related class is L, which represents access to an ONTAP Volume member. =head1 ATTRIBUTES The individual pieces of data that are part of the state of the element are the attributes of the ComponentState. =over =item C<< vserver >> Filled in for CMode CLI. =item C<< volume >> Filled in for CMode CLI. =item C<< name_ordianal >> Filled in for CMode CLI. =item C<< disd >> Filled in for CMode CLI. =item C<< msid >> Filled in for CMode CLI. =item C<< aggregate >> Filled in for CMode CLI. =item C<< state >> Filled in for CMode CLI. =item C<< type >> Filled in for CMode CLI. =item C<< volume_style >> Filled in for CMode CLI. =item C<< volume_ownership >> Filled in for CMode CLI. =item C<< policy >> Filled in for CMode CLI. =item C<< user >> Filled in for CMode CLI. =item C<< security_style >> Filled in for CMode CLI. =item C<< unix_permissions >> Filled in for CMode CLI. =item C<< junction_path >> Filled in for CMode CLI. =item C<< junction_path_source >> Filled in for CMode CLI. =item C<< junction_active >> Filled in for CMode CLI. =item C<< parent >> Filled in for CMode CLI. =item C<< vsroot >> Filled in for CMode CLI. =item C<< comment >> Filled in for CMode CLI. =item C<< size >> Filled in for CMode CLI. =item C<< available >> Filled in for CMode CLI. =item C<< total >> Filled in for CMode CLI. =item C<< used >> Filled in for CMode CLI. =item C<< percent_used >> Filled in for CMode CLI. =item C<< autosize >> Filled in for CMode CLI. =item C<< max_autosize >> Filled in for CMode CLI. =item C<< autosize_increment >> Filled in for CMode CLI. =item C<< files >> Filled in for CMode CLI. =item C<< files_used >> Filled in for CMode CLI. =item C<< maxdir_size >> Filled in for CMode CLI. =item C<< space_guarantee >> Filled in for CMode CLI. =item C<< space_guarnatee_enabled >> Filled in for CMode CLI. =item C<< min_readahead >> Filled in for CMode CLI. =item C<< atime_update >> Filled in for CMode CLI. =item C<< snapdir_access >> Filled in for CMode CLI. =item C<< percent_snapshot_space >> Filled in for CMode CLI. =item C<< snapshot_space_used >> Filled in for CMode CLI. =item C<< snapshot_policy >> Filled in for CMode CLI. =item C<< create_time >> Filled in for CMode CLI. =item C<< language >> Filled in for CMode CLI. =item C<< stripe_width >> Filled in for CMode CLI. =item C<< antivirus_on_access_policy >> Filled in for CMode CLI. =item C<< uuid >> Filled in for CMode CLI. =item C<< stripe_format >> Filled in for CMode CLI. =item C<< index_dir_enabled >> Filled in for CMode CLI. =item C<< max_write_alloc_blocks >> Filled in for CMode CLI. =item C<< move_targe >> Filled in for CMode CLI. =item C<< volume_check_status >> Filled in for CMode CLI. =item C<< is_inconsistent >> Filled in for CMode CLI. =item C<< read_realloc >> Filled in for CMode CLI. =item C<< is_unrecoverable >> Filled in for CMode CLI. =item C<< is_data_protection_mirror >> Filled in for CMode CLI. =item C<< snap_autodelete_defer_delete >> Filled in for CMode CLI. =item C<< is_move_mirror >> Filled in for CMode CLI. =item C<< convert_ucode >> Filled in for CMode CLI. =item C<< snapshot_clone_dependency >> Filled in for CMode CLI. =item C<< clone_parent_msid >> Filled in for CMode CLI. =item C<< clone_parent_bsnap_id >> Filled in for CMode CLI. =item C<< svo_enabled >> Filled in for CMode CLI. =item C<< is_mroot >> Filled in for CMode CLI. =item C<< upgrade_64bit_estimate_age >> Filled in for CMode CLI. =item C<< block_type >> Filled in for CMode CLI. =item C<< clone_parent_uuid >> Filled in for CMode CLI. =item C<< snap_autodelete_delete_order >> Filled in for CMode CLI. =item C<< is_sis_volume >> Filled in for CMode CLI. =item C<< snap_autodelete_destroy_list >> Filled in for CMode CLI. =item C<< svo_rman_allowed >> Filled in for CMode CLI. =item C<< is_copied_for_transition >> Filled in for CMode CLI. =item C<< properly_striped >> Filled in for CMode CLI. =item C<< snapshot_reserve_size >> Filled in for CMode CLI. =item C<< is_quiesced_in_memory >> Filled in for CMode CLI. =item C<< filesys_size_fixed >> Filled in for CMode CLI. =item C<< node >> Filled in for CMode CLI. =item C<< transition_state >> Filled in for CMode CLI. =item C<< is_load_sharing_mirror >> Filled in for CMode CLI. =item C<< snap_autodelete_enabled >> Filled in for CMode CLI. =item C<< flexcache_cache_policy >> Filled in for CMode CLI. =item C<< flexcache_prefill_policy >> Filled in for CMode CLI. =item C<< clone_parent_dsid >> Filled in for CMode CLI. =item C<< fsid >> Filled in for CMode CLI. =item C<< redirect_snapshot_id >> Filled in for CMode CLI. =item C<< stripe_count >> Filled in for CMode CLI. =item C<< used_afs >> Filled in for CMode CLI. =item C<< is_replica_volume >> Filled in for CMode CLI. =item C<< svo_checksum_enabled >> Filled in for CMode CLI. =item C<< sched_snap_name >> Filled in for CMode CLI. =item C<< flexcache_min_reserve >> Filled in for CMode CLI. =item C<< sis_space_saved_percent >> Filled in for CMode CLI. =item C<< overwrite_reserve_required >> Filled in for CMode CLI. =item C<< containing_aggregate_uuid >> Filled in for CMode CLI. =item C<< space_mgmt_try_first >> Filled in for CMode CLI. =item C<< snap_autodelete_trigger >> Filled in for CMode CLI. =item C<< is_readonly >> Filled in for CMode CLI. =item C<< upgrade_64bit_check_last_errno >> Filled in for CMode CLI. =item C<< is_sis_logging_enabled >> Filled in for CMode CLI. =item C<< physical_replica >> Filled in for CMode CLI. =item C<< vm_align_suffix >> Filled in for CMode CLI. =item C<< snap_autodelete_prefix >> Filled in for CMode CLI. =item C<< is_transitioned >> Filled in for CMode CLI. =item C<< dedupe_space_saved >> Filled in for CMode CLI. =item C<< language_str >> Filled in for CMode CLI. =item C<< oem_character_set >> Filled in for CMode CLI. =item C<< clone_parent_name >> Filled in for CMode CLI. =item C<< vserver_uuid >> Filled in for CMode CLI. =item C<< upgrade_64bit_available_space >> Filled in for CMode CLI. =item C<< is_invalid >> Filled in for CMode CLI. =item C<< concurrency >> Filled in for CMode CLI. =item C<< size_used_by_snapshots >> Filled in for CMode CLI. =item C<< is_compressed_volume >> Filled in for CMode CLI. =item C<< optimize >> Filled in for CMode CLI. =item C<< svo_reject_errors >> Filled in for CMode CLI. =item C<< nfs_character_set >> Filled in for CMode CLI. =item C<< is_cluster_volume >> Filled in for CMode CLI. =item C<< disk_root >> Filled in for CMode CLI. =item C<< snap_autodelete_commitment >> Filled in for CMode CLI. =item C<< overwrite_reserve_used >> Filled in for CMode CLI. =item C<< upgrade_64bit_grow_vol_size_by >> Filled in for CMode CLI. =item C<< instance_uuid >> Filled in for CMode CLI. =item C<< inode_parent_path_trans_enabled >> Filled in for CMode CLI. =item C<< extent_enabled >> Filled in for CMode CLI. =item C<< ignore_inconsistent >> Filled in for CMode CLI. =item C<< fractional_reserve >> Filled in for CMode CLI. =item C<< upgrade_64bit_used_space >> Filled in for CMode CLI. =item C<< inodefile_private_capacity >> Filled in for CMode CLI. =item C<< vm_align_sector >> Filled in for CMode CLI. =item C<< snap_autodelete_target_free_space >> Filled in for CMode CLI. =item C<< size_available_for_snapshots >> Filled in for CMode CLI. =item C<< flexcache_connection_status >> Filled in for CMode CLI. =item C<< clone_parent_bsnap_name >> Filled in for CMode CLI. =item C<< clone_child_count >> Filled in for CMode CLI. =item C<< auto_snapshots_enabled >> Filled in for CMode CLI. =item C<< compression_space_saved_percent >> Filled in for CMode CLI. =item C<< files_maximum_possible >> Filled in for CMode CLI. =item C<< create_ucode >> Filled in for CMode CLI. =item C<< snap_mirror_enabled >> Filled in for CMode CLI. =item C<< striping_epoch >> Filled in for CMode CLI. =item C<< overwrite_reserve >> Filled in for CMode CLI. =item C<< is_quiesced_on_disk >> Filled in for CMode CLI. =item C<< files_private_used >> Filled in for CMode CLI. =item C<< root_dir_gen >> Filled in for CMode CLI. =item C<< dedupe_space_saved_percent >> Filled in for CMode CLI. =item C<< inodefile_public_capacity >> Filled in for CMode CLI. =item C<< sis_space_saved >> Filled in for CMode CLI. =item C<< dedupe_space_shared >> Filled in for CMode CLI. =item C<< nvfail >> Filled in for CMode CLI. =item C<< mirror_transfer_in_progress >> Filled in for CMode CLI. =item C<< upgrade_64bit_percent_used_space >> Filled in for CMode CLI. =item C<< compression_space_saved >> Filled in for CMode CLI. =item C<< provenance_uuid >> Filled in for CMode CLI. =item C<< overwrite_reserve_used_actual >> Filled in for CMode CLI. =item C<< in_nvfailed_state >> Filled in for CMode CLI. =item C<< transition_behavior >> Filled in for CMode CLI. =item C<< hybrid_cache_write_caching_ineligibility_reason >> Filled in for CMode CLI. =item C<< hybrid_cache_eligibility >> Filled in for CMode CLI. =item C<< flexcache_fill_policy >> Filled in for CMode CLI. =item C<< vbn_zero_space_saved >> Filled in for CMode CLI. =item C<< vbn_zero_space_saved_percent >> Filled in for CMode CLI. =item C<< compression_enabled >> Filled in for CMode CLI. =item C<< clone_children >> Filled in for CMode CLI. =item C<< flexcache_origin_volume >> Filled in for CMode CLI. =item C<< cloned_snapshot >> Filled in for CMode CLI. =item C<< clone_volume_name >> Filled in for CMode CLI. =item C<< upgrade_64bit_start_last_errno >> Filled in for CMode CLI. =item C<< force_nvfail_on_dr >> Filled in for CMode CLI. =item C<< autosize_grow_threshold_percent >> Filled in for CMode CLI. =item C<< autosize_mode >> Filled in for CMode CLI. =item C<< min_autosize >> Filled in for CMode CLI. =item C<< autosize_shrink_threshold_percent >> Filled in for CMode CLI. =item C<< qos_policy_group >> Filled in for CMode CLI. =item C<< flexvol_metadata_fp >> Filled in for CMode CLI. =item C<< user_data_percent >> Filled in for CMode CLI. =item C<< quota_metafiles >> Filled in for CMode CLI. =item C<< volume_guarantee_fp_percent >> Filled in for CMode CLI. =item C<< fc_delegs_enabled >> *FlexCache Delegations, possible value(s) are true,false Filled in for CMode CLI. =item C<< snapmirror_destination_fp_percent >> Filled in for CMode CLI. =item C<< quota_metafiles_percent >> Filled in for CMode CLI. =item C<< volume_data_fp_percent >> Filled in for CMode CLI. =item C<< snapshot_spill >> Filled in for CMode CLI. =item C<< dedupe_metafiles_tmp_fp_percent >> Filled in for CMode CLI. =item C<< inodes >> Filled in for CMode CLI. =item C<< dedupe_metafiles >> Filled in for CMode CLI. =item C<< user_data >> Filled in for CMode CLI. =item C<< dedupe_metafiles_percent >> Filled in for CMode CLI. =item C<< tape_backup_metafiles_fp >> Filled in for CMode CLI. =item C<< volume_data_fp >> Filled in for CMode CLI. =item C<< dedupe_metafiles_fp_percent >> Filled in for CMode CLI. =item C<< dedupe_metafiles_tmp_percent >> Filled in for CMode CLI. =item C<< delayed_free_fp >> Filled in for CMode CLI. =item C<< total_fp >> Filled in for CMode CLI. =item C<< tape_backup_metafiles_fp_percent >> Filled in for CMode CLI. =item C<< inodefile_public_capacity_percent >> Filled in for CMode CLI. =item C<< total_fp_percent >> Filled in for CMode CLI. =item C<< snapshot_spill_percent >> Filled in for CMode CLI. =item C<< inodes_percent >> Filled in for CMode CLI. =item C<< volume_filesystem_metadata >> Filled in for CMode CLI. =item C<< aggregate_size >> Filled in for CMode CLI. =item C<< used_including_snap_reserve >> Filled in for CMode CLI. =item C<< delayed_free_fp_percent >> Filled in for CMode CLI. =item C<< snapmirror_destination_fp >> Filled in for CMode CLI. =item C<< flexvol_metadata_fp_percent >> Filled in for CMode CLI. =item C<< dedupe_metafiles_tmp >> Filled in for CMode CLI. =item C<< dedupe_metafiles_fp >> Filled in for CMode CLI. =item C<< dedupe_metafiles_tmp_fp >> Filled in for CMode CLI. =item C<< volume_filesystem_metadata_percent >> Filled in for CMode CLI. =item C<< used_including_snap_reserve_percent >> Filled in for CMode CLI. =item C<< volume_guarantee_fp >> Filled in for CMode CLI. =item C<< external_cache >> External Cache Policy Filled in for CMode CLI. =item C<< snapmirror_metadata_percent >> Filled in for CMode CLI. =item C<< snapmirror_metadata >> Filled in for CMode CLI. =item C<< space_full_threshold_percent >> *Volume Full threshold percent Filled in for CMode CLI. =item C<< space_nearly_full_threshold_percent >> *Volume Nearly Full threshold percent Filled in for CMode CLI. =item C<< snapshot_count >> *Number of Snapshot Copies in the Volume, possible value(s) are 0..255 Filled in for CMode CLI. =back =cut package NACL::CS::VolumeMember; use strict; use warnings; use Params::Validate qw(validate); use NACL::ComponentUtils qw(_dump_one); use NACL::Exceptions::NoElementsFound qw(:try); use NATE::Log qw(log_global); my $Log = log_global(); my $may_enter = $Log->may_enter(); my $may_exit = $Log->may_exit(); use base 'NACL::CS::ComponentState::ONTAP'; use Class::MethodMaker [ scalar => "vserver", scalar => "volume", scalar => "name_ordinal", scalar => "dsid", scalar => "msid", scalar => "aggregate", scalar => "state", scalar => "type", scalar => "volume_style", scalar => "volume_ownership", scalar => "policy", scalar => "user", scalar => "group", scalar => "security_style", scalar => "unix_permissions", scalar => "junction_path", scalar => "junction_path_source", scalar => "junction_active", scalar => "parent", scalar => "vsroot", scalar => "comment", scalar => "size", scalar => "available", scalar => "total", scalar => "used", scalar => "percent_used", scalar => "autosize", scalar => "max_autosize", scalar => "autosize_increment", scalar => "files", scalar => "files_used", scalar => "maxdir_size", scalar => "space_guarantee", scalar => "space_guarantee_enabled", scalar => "min_readahead", scalar => "atime_update", scalar => "snapdir_access", scalar => "percent_snapshot_space", scalar => "snapshot_space_used", scalar => "snapshot_policy", scalar => "create_time", scalar => "language", scalar => "stripe_width", scalar => "antivirus_on_access_policy", scalar => "uuid", scalar => "stripe_format", scalar => "index_dir_enabled", scalar => "load_sharing_source", scalar => "max_write_alloc_blocks", scalar => "move_target", scalar => "volume_check_status", scalar => "volume_check_estimated_time_left", scalar => "is_inconsistent", scalar => 'read_realloc', scalar => 'is_unrecoverable', scalar => 'is_data_protection_mirror', scalar => 'snap_autodelete_defer_delete', scalar => 'is_move_mirror', scalar => 'convert_ucode', scalar => 'snapshot_clone_dependency', scalar => 'clone_parent_msid', scalar => 'clone_parent_bsnap_id', scalar => 'svo_enabled', scalar => 'is_mroot', scalar => 'upgrade_64bit_estimate_age', scalar => 'block_type', scalar => 'clone_parent_uuid', scalar => 'snap_autodelete_delete_order', scalar => 'is_sis_volume', scalar => 'snap_autodelete_destroy_list', scalar => 'svo_rman_allowed', scalar => 'is_copied_for_transition', scalar => 'properly_striped', scalar => 'snapshot_reserve_size', scalar => 'is_quiesced_in_memory', scalar => 'filesys_size_fixed', scalar => 'node', scalar => 'transition_state', scalar => 'is_load_sharing_mirror', scalar => 'snap_autodelete_enabled', scalar => 'flexcache_cache_policy', scalar => 'flexcache_prefill_policy', scalar => 'clone_parent_dsid', scalar => 'fsid', scalar => 'redirect_snapshot_id', scalar => 'stripe_count', scalar => 'used_afs', scalar => 'is_replica_volume', scalar => 'svo_checksum_enabled', scalar => 'sched_snap_name', scalar => 'flexcache_min_reserve', scalar => 'sis_space_saved_percent', scalar => 'overwrite_reserve_required', scalar => 'containing_aggregate_uuid', scalar => 'space_mgmt_try_first', scalar => 'snap_autodelete_trigger', scalar => 'is_readonly', scalar => 'upgrade_64bit_check_last_errno', scalar => 'is_sis_logging_enabled', scalar => 'physical_replica', scalar => 'vm_align_suffix', scalar => 'snap_autodelete_prefix', scalar => 'is_transitioned', scalar => 'dedupe_space_saved', scalar => 'language_str', scalar => 'oem_character_set', scalar => 'clone_parent_name', scalar => 'vserver_uuid', scalar => 'upgrade_64bit_available_space', scalar => 'is_invalid', scalar => 'concurrency', scalar => 'size_used_by_snapshots', scalar => 'is_compressed_volume', scalar => 'optimize', scalar => 'svo_reject_errors', scalar => 'nfs_character_set', scalar => 'is_cluster_volume', scalar => 'disk_root', scalar => 'snap_autodelete_commitment', scalar => 'overwrite_reserve_used', scalar => 'upgrade_64bit_grow_vol_size_by', scalar => 'instance_uuid', scalar => 'inode_parent_path_trans_enabled', scalar => 'extent_enabled', scalar => 'ignore_inconsistent', scalar => 'fractional_reserve', scalar => 'upgrade_64bit_used_space', scalar => 'inodefile_private_capacity', scalar => 'vm_align_sector', scalar => 'snap_autodelete_target_free_space', scalar => 'size_available_for_snapshots', scalar => 'flexcache_connection_status', scalar => 'clone_parent_bsnap_name', scalar => 'clone_child_count', scalar => 'auto_snapshots_enabled', scalar => 'compression_space_saved_percent', scalar => 'files_maximum_possible', scalar => 'create_ucode', scalar => 'snap_mirror_enabled', scalar => 'striping_epoch', scalar => 'overwrite_reserve', scalar => 'is_quiesced_on_disk', scalar => 'files_private_used', scalar => 'root_dir_gen', scalar => 'dedupe_space_saved_percent', scalar => 'inodefile_public_capacity', scalar => 'sis_space_saved', scalar => 'dedupe_space_shared', scalar => 'nvfail', scalar => 'mirror_transfer_in_progress', scalar => 'upgrade_64bit_percent_used_space', scalar => 'compression_space_saved', scalar => 'provenance_uuid', scalar => 'overwrite_reserve_used_actual', scalar => 'in_nvfailed_state', scalar => 'transition_behavior', scalar => 'hybrid_cache_write_caching_ineligibility_reason', scalar => 'hybrid_cache_eligibility', scalar => 'flexcache_fill_policy', scalar => 'vbn_zero_space_saved', scalar => 'vbn_zero_space_saved_percent', scalar => 'compression_enabled', scalar => 'clone_children', scalar => 'flexcache_origin_volume', scalar => 'cloned_snapshot', scalar => 'clone_volume_name', scalar => 'upgrade_64bit_start_last_errno', scalar => 'force_nvfail_on_dr', scalar => 'autosize_grow_threshold_percent', scalar => 'autosize_mode', scalar => 'min_autosize', scalar => 'autosize_shrink_threshold_percent', scalar => 'qos_policy_group', scalar => 'flexvol_metadata_fp', scalar => 'user_data_percent', scalar => 'quota_metafiles', scalar => 'volume_guarantee_fp_percent', scalar => 'fc_delegs_enabled', scalar => 'snapmirror_destination_fp_percent', scalar => 'quota_metafiles_percent', scalar => 'volume_data_fp_percent', scalar => 'snapshot_spill', scalar => 'dedupe_metafiles_tmp_fp_percent', scalar => 'inodes', scalar => 'dedupe_metafiles', scalar => 'user_data', scalar => 'dedupe_metafiles_percent', scalar => 'tape_backup_metafiles_fp', scalar => 'volume_data_fp', scalar => 'dedupe_metafiles_fp_percent', scalar => 'dedupe_metafiles_tmp_percent', scalar => 'delayed_free_fp', scalar => 'total_fp', scalar => 'tape_backup_metafiles_fp_percent', scalar => 'inodefile_public_capacity_percent', scalar => 'total_fp_percent', scalar => 'snapshot_spill_percent', scalar => 'inodes_percent', scalar => 'volume_filesystem_metadata', scalar => 'aggregate_size', scalar => 'used_including_snap_reserve', scalar => 'delayed_free_fp_percent', scalar => 'snapmirror_destination_fp', scalar => 'flexvol_metadata_fp_percent', scalar => 'dedupe_metafiles_tmp', scalar => 'dedupe_metafiles_fp', scalar => 'dedupe_metafiles_tmp_fp', scalar => 'volume_filesystem_metadata_percent', scalar => 'used_including_snap_reserve_percent', scalar => 'volume_guarantee_fp', scalar => 'external_cache', scalar => 'snapmirror_metadata_percent', scalar => 'snapmirror_metadata', scalar => 'space_full_threshold_percent', scalar => 'space_nearly_full_threshold_percent', scalar => 'snapshot_count', ]; =head1 METHODS =head2 fetch my $node_state = NACL::CS::VolumeMember->fetch(command_interface=>$ci,...); my @node_states = NACL::CS::VolumeMember->fetch(command_interface=>$ci,...); see L Supports CMode CLI. =over =item Exceptions =over =item C When there are no elements matching the query specified or elements of that type doesn't exist, then this exception will be thrown. =back =back =cut sub fetch { $Log->enter() if $may_enter; my $pkg = shift; my @state_objs = $pkg->SUPER::fetch( @_, choices => [ { method => "_fetch_cmode_cli", interface => "CLI", set => "CMode", }, ], exception_text => 'No matching volume member(s) found' ); $Log->exit() if $may_exit; return wantarray ? @state_objs : $state_objs[0]; } ## end sub fetch sub _fetch_cmode_cli { my $pkg = shift; return $pkg->SUPER::_fetch_cmode_cli( @_, api => "volume_member_show", ); } 1;