# $Id$ # # Copyright (c) 2001-2012 NetApp, Inc., All Rights Reserved # Any use, modification, or distribution is prohibited # without prior written consent from NetApp, Inc. # ## @summary NetworkOptionsSwitchlessCluster ComponentState Module (auto-generated by CGT) ## @author dl-nacl-dev@netapp.com ## @status shared ## @pod here =head1 NAME NACL::CS::NetworkOptionsSwitchlessCluster =head1 DESCRIPTION C is a derived class of L. It represents the state of an ONTAP NetworkOptionsSwitchlessCluster. A related class is L, which represents access to an ONTAP NetworkOptionsSwitchlessCluster. =head1 ATTRIBUTES The individual pieces of data that are part of the state of the NetworkOptionsSwitchlessCluster element are the attributes of the NetworkOptionsSwitchlessCluster ComponentState. Additionally, the command_interface used to obtain the ComponentState object is also an attribute of the object. This makes it easier to obtain the component object corresponding to the CS object, using L. =over =item command_interface The command_interface with which the CS object was obtained. (Available in all CS objects regardless of requested_fields and the mode/interface) =item C<< force >> Filled in for CMode CLI. =item C<< enabled >> Filled in for CMode CLI/ZAPI. Maps to: CMode ZAPI: For Output mapping: enabled =back =cut package NACL::CS::NetworkOptionsSwitchlessCluster; use strict; use warnings; use Params::Validate qw(validate); use NATE::Log qw(log_global); my $Log = log_global(); my $may_enter = $Log->may_enter(); my $may_exit = $Log->may_exit(); use NACL::Exceptions::NoElementsFound qw(:try); use base 'NACL::CS::ComponentState::ONTAP'; use Class::MethodMaker [ scalar => 'force', scalar => 'enabled', ]; =head1 METHODS =head2 fetch my $NetworkOptionsSwitchlessCluster_state = NACL::CS::NetworkOptionsSwitchlessCluster->fetch(command_interface => $ci, ...); (Class method) Discovers which elements are present and returns their state in ComponentState objects. This being a "singleton" table (i.e. one which can only have one row) is callable only in scalar context. See L for a more detailed description along with a complete explanation of the options it accepts. Supports CMode CLI/ZAPI. Invokes "net options get" API for CMode ZAPI. =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' }, { method => '_fetch_cmode_zapi', interface => 'ZAPI', set => 'CMode' } ], exception_text => 'No matching network options switchless-cluster(s) found', is_singleton => 1, show_cmd => 'network options switchless-cluster show', ); $Log->exit() if $may_exit; return wantarray ? @state_objs : $state_objs[0]; } sub _fetch_cmode_cli { $Log->enter() if $may_enter; my $pkg = shift; my @state_objs = $pkg->SUPER::_fetch_cmode_cli( @_, api => 'network_options_switchless_cluster_show', is_singleton => 1, ); $Log->exit() if $may_exit; return @state_objs; } sub _fetch_cmode_zapi { $Log->enter() if $may_enter; my $pkg = shift; my %opts = validate @_, $pkg->_fetch_backend_validate_spec(); my $apiset = $opts{apiset}; my $net_response; my @state_objs; $net_response = $apiset->net_options_get(); my $net_output = $net_response->get_parsed_output(); foreach my $row (@{$net_output->[0]{'net-options'}}) { my %state_fields; $state_fields{'enabled'} = $row->{'switchless-cluster-info'}[0]{'enabled'}; my $obj = $pkg->new(command_interface => $opts{command_interface},); $obj->_set_fields(row => \%state_fields); push @state_objs, $obj; } ## end foreach my $row ( @{ $net_output... $Log->exit() if $may_exit; return @state_objs; } ## end sub _fetch_cmode_zapi 1;