Cisco-UCS
view release on metacpan or search on metacpan
lib/Cisco/UCS/Chassis.pm view on Meta::CPAN
package Cisco::UCS::Chassis;
use warnings;
use strict;
use Cisco::UCS::FEX;
use Cisco::UCS::Common::FanModule;
use Cisco::UCS::Common::Fan;
use Cisco::UCS::Chassis::PSU;
use Cisco::UCS::Chassis::Stats;
use Carp qw(croak);
use Scalar::Util qw(weaken);
use vars qw(@ISA);
@ISA = qw(Cisco::UCS);
our $VERSION = '0.51';
our %ATTRIBUTES = (
adminState => 'admin_state',
connPath => 'conn_path',
connStatus => 'conn_status',
dn => 'dn',
id => 'id',
managingInst => 'managing_instance',
model => 'model',
operState => 'oper_state',
operability => 'operability',
power => 'power',
presence => 'presence',
seepromOperState=> 'seeprom_oper_state',
serial => 'serial',
thermal => 'thermal',
usrLbl => 'label',
vendor => 'vendor',
);
{
no strict 'refs';
while ( my ($attribute, $pseudo) = each %ATTRIBUTES ) {
*{ __PACKAGE__ . '::' . $pseudo } = sub {
my $self = shift;
return $self->{$attribute}
}
}
}
sub new {
my ( $class, %args ) = @_;
my $self = {};
bless $self, $class;
defined $args{dn}
? $self->{dn} = $args{dn}
: croak 'dn not defined';
defined $args{ucs}
? weaken($self->{ucs} = $args{ucs} )
: croak 'ucs not defined';
my %attr = %{$self->{ucs}->resolve_dn(
dn => $self->{dn}
)->{outConfig}->{equipmentChassis}};
while ( my ($k, $v) = each %attr ) { $self->{$k} = $v }
return $self;
}
sub blade {
my ( $self, $id ) = @_;
return (
defined $self->{blade}->{$id}
? $self->{blade}->{$id}
: $self->get_blades( $id )
)
}
sub get_blade {
my ( $self, $id ) = @_;
return (
$id ? $self->get_blades( $id )
: undef
)
}
sub get_blades {
my ( $self, $id ) = @_;
return $self->_get_child_objects(
id => $id,
type => 'computeBlade',
class => 'Cisco::UCS::Blade',
attr => 'blade',
uid => 'slotId',
class_filter => {
classId => 'computeBlade',
chassisId => $self->{id}
}
)
}
sub fex {
my ( $self, $id ) = @_;
return (
defined $self->{fex}->{$id}
? $self->{fex}->{$id}
: $self->get_fexs( $id )
)
}
sub get_fex {
my ( $self, $id ) = @_;
return (
( run in 2.164 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )