Cisco-UCS

 view release on metacpan or  search on metacpan

lib/Cisco/UCS/Fault.pm  view on Meta::CPAN

package Cisco::UCS::Fault;

use strict;
use warnings;

use Carp		qw(croak);
use Scalar::Util	qw(weaken);

our $VERSION = '0.51';

our @ATTRIBUTES	= qw(ack code cause created dn id occur rule severity tags 
type);

our %ATTRIBUTES	= (
	last_transition		=> 'lastTransition',
	highest_severity	=> 'highestSeverity',
	original_severity	=> 'origSeverity',
	previous_severity	=> 'prevSeverity',
	desc			=> 'descr'
);

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}->{faultInst}};

        while ( my ($k, $v) = each %attr ) { $self->{$k} = $v }

        return $self
}

{
        no strict 'refs';

        while ( my ( $pseudo, $attribute ) = each %ATTRIBUTES ) { 
                *{ __PACKAGE__ . '::' . $pseudo } = sub {
                        my $self = shift;
                        return $self->{$attribute}
                }   
        }   

        foreach my $attribute ( @ATTRIBUTES ) {
                *{ __PACKAGE__ . '::' . $attribute } = sub {
                        my $self = shift;
                        return $self->{$attribute}
                }   
        }   
}

1;

__END__

=pod

=head1 NAME

Cisco::UCS::Fault - Class for operations with Cisco UCS fault instances.

=head1 SYNOPSIS

  foreach my $error ( $ucs->get_errors ) {
    print 	"-"x50 . "\n" .
		"Error		: " . $error->id . "\n" . 
		"Created	: " . $error->created . "\n" .
		"Severity	: " . $error->severity . "\n" .
		"Description	: " . $error->desc . "\n";
  }
  
=head1 DESCRIPTION

Cisco::UCS::Fault is a class providing operations with Cisco UCS fault 
instances (errors).

Note that you are not supposed to call the constructor yourself, rather 
Cisco::UCS::Fault objects are created for you automatically by calls to 
methods in Cisco::UCS.

=head1 METHODS



( run in 0.459 second using v1.01-cache-2.11-cpan-d8267643d1d )