VBTK::Wrapper::Vxprint - Veritas Volume Monitoring with 'vxprint'


VBTK documentation Contained in the VBTK distribution.

Index


Code Index:

NAME

Top

VBTK::Wrapper::Vxprint - Veritas Volume Monitoring with 'vxprint'

SYNOPSIS

Top

  # If you like all the defaults, then there's no need to over-ride them.
  $o = new VBTK::Wrapper::Vxprint ();
  $vbObj = $o->addVBObj();

  VBTK::runAll;

DESCRIPTION

Top

This perl library is a front-end to the VBTK::Wrapper class. It supports the same public methods as the VBTK::Wrapper class, but with common defaults to simplify the setup of a 'vxprint' monitoring process.

METHODS

Top

The following methods are supported

$o = new VBTK::Wrapper::Vxprint (<parm1> => <val1>, <parm2> => <val2>, ...)

This method calls 'new VBTK::Wrapper' after defaulting the parameters to best monitor the 'vxprint' command. For a detailed description of the parameters, see VBTK::Wrapper. The defaults are as follows. If you like all the defaults then you don't have to pass in any parms.

Interval
    Interval => 600,

Execute
    Execute => 'vxprint -ht',

VBDetail

Show the exact data as returned by the vxprint command.

    VBDetail => [ '$data' ],

Timeout
    Timeout => 30,

TimeoutStatus
    TimeoutStatus => 'Fail',

DebugHeader
    DebugHeader => 'vxprint',

$vbObj = $o->addVBObj(<parm1> => <val1>, <parm2> => <val2>, ...)

This method calls VBTK::Wrapper::addVBObj after defaulting unspecified parameters to best monitor the 'vxprint' command. For a detailed description of the addVBObj parameters, see VBTK::Parser. The defaults are as follows. If you like all the defaults then you don't have to pass in any parms

VBObjName

Name the VBObject using the local host's name.

    VBObjName => ".$::HOST.vm.vxprint",

Rules

If we see the words error or fail in the output, then set the status to 'Failed'.

    Rules => {
         '$data =~ /error|fail/i' => 'Fail' },

StatusHistoryLimit

Limit to storing the last 30 status changes

    StatusHistoryLimit => 30,

ExpireAfter
    ExpireAfter => (<Interval> * 3) seconds

Description
    Description = qq(
        This object uses the 'vxprint' command to monitor the Veritas Volumes on
        $::HOST.  It will set the status to 'Warning' or 'Failed' based on the
        output of the 'vxprint' command. ),

BaselineDiffStatus

Set the status to 'Warning' if the returned text differs from the baseline.

    BaselineDiffStatus => 'Warn',

SEE ALSO

Top

VBTK, VBTK::Wrapper, VBTK::Parser, VBTK::ClientObject, VBTK::Server

AUTHOR

Top

Brent Henry, vbtoolkit@yahoo.com

COPYRIGHT

Top


VBTK documentation Contained in the VBTK distribution.

#############################################################################
#
#                 NOTE: This file under revision control using RCS
#                       Any changes made without RCS will be lost
#
#              $Source: /usr/local/cvsroot/vbtk/VBTK/Wrapper/Vxprint.pm,v $
#            $Revision: 1.7 $
#                $Date: 2002/03/04 20:53:08 $
#              $Author: bhenry $
#              $Locker:  $
#               $State: Exp $
#
#              Purpose: An extension of the Wrapper library which defaults the
#                       proper settings necessary to run a Veritas volume manager
#                       vxprint command.
#
#           Depends on: VBTK::Common, VBTK::Wrapper
#
#       Copyright (C) 1996 - 2002  Brent Henry
#
#       This program is free software; you can redistribute it and/or
#       modify it under the terms of version 2 of the GNU General Public
#       License as published by the Free Software Foundation available at:
#       http://www.gnu.org/copyleft/gpl.html
#
#       This program is distributed in the hope that it will be useful,
#       but WITHOUT ANY WARRANTY; without even the implied warranty of
#       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#       GNU General Public License for more details.
#
#############################################################################
#
#
#       REVISION HISTORY:
#
#       $Log: Vxprint.pm,v $
#       Revision 1.7  2002/03/04 20:53:08  bhenry
#       *** empty log message ***
#
#       Revision 1.6  2002/03/04 16:49:10  bhenry
#       Changed requirement back to perl 5.6.0
#
#       Revision 1.5  2002/03/02 00:53:56  bhenry
#       Documentation updates
#
#       Revision 1.4  2002/02/13 07:36:14  bhenry
#       Disabled RrdLogRecovery and removed use of @log
#
#       Revision 1.3  2002/01/26 06:14:28  bhenry
#       Changed to inherit from VBTK::Wrapper
#
#       Revision 1.2  2002/01/21 17:07:56  bhenry
#       Disabled 'uninitialized' warnings
#
#       Revision 1.1.1.1  2002/01/17 18:05:57  bhenry
#       VBTK Project
#

package VBTK::Wrapper::Vxprint;

use 5.6.0;
use strict;
use warnings;
# I like using undef as a value so I'm turning off the uninitialized warnings
no warnings qw(uninitialized);

use VBTK::Common;
use VBTK::Wrapper;

# Inherit methods from VBTK::Wrapper;
our @ISA=qw(VBTK::Wrapper);

our $VERBOSE = $ENV{VERBOSE};

#-------------------------------------------------------------------------------
# Function:     new
# Description:  Object constructor.  Allocates memory for all class members
# Input Parms:
# Output Parms: Pointer to class
#-------------------------------------------------------------------------------
sub new
{
    my $type = shift;
    my $self = {};
    bless $self, $type;

    # Store all passed input name pairs in the object
    $self->set(@_);

    # Setup a hash of default parameters
    my $defaultParms = {
        Interval          => 600,
        Execute           => "vxprint -ht",
        VBServerURI       => $::VBURI,
        VBHeader          => undef,
        VBDetail          => [ '$data' ],
        LogFile           => undef,
        LogHeader         => undef,
        LogDetail         => undef,
        RotateLogAt       => undef,
        RotateLogOnEOF    => undef,
        Split             => undef,
        Filter            => undef,
        Ignore            => undef,
        SkipLines         => undef,
        Timeout           => 30,
        TimeoutStatus     => 'Fail',
        Follow            => undef,
        FollowTimeout     => undef,
        SuppressMessages  => undef,
        FollowHeartbeat   => undef,
        SetRunStatus      => undef,
        NonZeroExitStatus => undef,
        SuppressStdout    => undef,
        SuppressMessages  => undef,
        DebugHeader       => 'vxprint'
    };

    # Run a validation on the passed parms, using the default parms        
    $self->validateParms($defaultParms) || &fatal("Exiting");

    # Initialize a wrapper object.
    $self->SUPER::new() || return undef;

    # Store the defaults for later
    $self->{defaultParms} = $defaultParms;

    ($self);
}

#-------------------------------------------------------------------------------
# Function:     addVBObj
# Description:  Add rules to the wrapper object.
# Input Parms:
# Output Parms: Pointer to class
#-------------------------------------------------------------------------------
sub addVBObj
{
    my $self = shift;
    my $Interval   = $self->{Interval};
    my %args = @_;

    # Setup some reasonable thresholds        
    my $expireAfterSec = int($Interval * 3);
    my $description = qq( 
                This object uses the 'vxprint' command to monitor the Veritas Volumes on
                $::HOST.  It will set the status to 'Warning' or 'Failed' based on the
                output of the 'vxprint' command.
        );

    # Setup a hash of default rules to be returned
    my $defaultRules = {
        VBObjName           => ".$::HOST.vm.vxprint",
        TextHistoryLimit    => undef,
        ReverseText         => undef,
        Rules              => {
            '$data =~ /error|fail/i' => 'Fail' },
        Requirements        => undef,
        StatusHistoryLimit  => 30,
        StatusChangeActions => undef,
        StatusUpgradeRules  => undef,
        ExpireAfter         => "$expireAfterSec seconds",
        Description         => $description,
        BaselineDiffStatus  => "Warn",
        RrdTimeCol          => undef,
        RrdColumns          => undef,
        RrdFilter           => undef,
        RrdMin              => undef,
        RrdMax              => undef,
        RrdXFF              => undef,
        RrdCF               => undef,
        RrdDST              => undef,
    };

    # Run the validation    
    &validateParms(\%args,$defaultRules) || &fatal("Exiting");

    # Add the rule
    my $vbObj = $self->SUPER::addVBObj(%args);

    $self->{defaultRules} = $defaultRules;

    ($vbObj);
}

1;
__END__