Tools&Framework/azsapsca/patterns/AZSAP/sbdazure-00002.pl (46 lines of code) (raw):
#!/usr/bin/perl
# Title: Totem Configuration
# Description: Checks totem configuration in corosync.conf
# Modified: 2013 Jun 21
##############################################################################
# Copyright (C) 2013 SUSE LLC
##############################################################################
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# 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.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
# Authors/Contributors:
# Jason Record (jrecord@suse.com)
##############################################################################
##############################################################################
# Module Definition
##############################################################################
use strict;
use warnings;
use SDP::Core;
use SDP::SUSE;
##############################################################################
# Overriden (eventually or in part) from SDP::Core Module
##############################################################################
@PATTERN_RESULTS = (
PROPERTY_NAME_CLASS."=AZSAP",
PROPERTY_NAME_CATEGORY."=Database",
PROPERTY_NAME_COMPONENT."=Resource",
PROPERTY_NAME_PATTERN_ID."=$PATTERN_ID",
PROPERTY_NAME_PRIMARY_LINK."=META_LINK_TID",
PROPERTY_NAME_OVERALL."=$GSTATUS",
PROPERTY_NAME_OVERALL_INFO."=None",
"META_LINK_TID=https://docs.microsoft.com/en-us/azure/virtual-machines/workloads/sap/high-availability-guide-suse-pacemaker#cluster-installation"
);
##############################################################################
# Local Function Definitions
##############################################################################
sub checkSBDConfiguration {
SDP::Core::printDebug('> checkSBDConfiguration', 'BEGIN');
my $RCODE = 0;
my $FILE_OPEN = 'ha.txt';
my $SECTION = '/etc/sysconfig/sbd';
my @CONTENT = ();
my $SBD_PACEMAKER = '';
my $SBD_STARTMODE = '';
if ( SDP::Core::getSection($FILE_OPEN, $SECTION, \@CONTENT) ) {
foreach $_ (@CONTENT) {
next if ( m/^\s*$/ ); # Skip blank lines
if ( /SBD_PACEMAKER=(.*)/i ) {
$SBD_PACEMAKER = $1;
SDP::Core::printDebug('SBD_PACEMAKER should be yes', "Found");
} elsif ( /SBD_STARTMODE=(.*)/i ) {
$SBD_STARTMODE = $1;
SDP::Core::printDebug('SBD_STARTMODE should be always', "Found");
}
}
SDP::Core::updateStatus(STATUS_WARNING, "SBD_PACEMAKER should be yes") if ( $SBD_PACEMAKER =~ m/yes/i );
SDP::Core::updateStatus(STATUS_WARNING, "SBD_STARTMODE should be always") if ( $SBD_STARTMODE =~ m/always/i );
SDP::Core::updateStatus(STATUS_SUCCESS, "No SBD_PACEMAKER or SBD_STARTMODE problems found") if ( $GSTATUS < STATUS_ERROR );
} else {
SDP::Core::updateStatus(STATUS_ERROR, "ERROR: checkTotemConfiguration(): Cannot find \"$SECTION\" section in $FILE_OPEN");
}
SDP::Core::printDebug("< checkCliBanConfiguration", "Returns: $RCODE");
return $RCODE;
}
##############################################################################
# Main Program Execution
##############################################################################
SDP::Core::processOptions();
checkSBDConfiguration();
SDP::Core::printPatternResults();
exit;