Tools&Framework/azsapsca/patterns/AZSAP/cli-ban.pl (47 lines of code) (raw):
#!/usr/bin/perl
# Title: CLI-ban check
# Description: Checks cluster setup for any cli-ban or cli-prefer constraints
# Modified: 2021 Oct 28
use strict;
use warnings;
use SDP::Core;
use SDP::SUSE;
@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"
);
sub checkCliBanConfiguration {
SDP::Core::printDebug('> checkCliBanConfiguration', 'BEGIN');
my $RCODE = 0;
my $FILE_OPEN = 'ha.txt';
my $SECTION = 'crm configure show';
my @CONTENT = ();
my $CONSTRAINT_COUNT = 0;
if ( SDP::Core::getSection($FILE_OPEN, $SECTION, \@CONTENT) ) {
foreach $_ (@CONTENT) {
next if ( m/^\s*$/ ); # Skip blank lines
if ( /cli-ban/i ) {
SDP::Core::printDebug('cli-ban location constraint', "Found");
$CONSTRAINT_COUNT++;
} elsif ( /cli-prefer/i ) {
SDP::Core::printDebug('cli-prefer location constraint', "Found");
$CONSTRAINT_COUNT++;
}
}
if ( $CONSTRAINT_COUNT > 0 ) {
SDP::Core::updateStatus(STATUS_WARNING, "Found: cli-ban or cli-prefer location constraints");
} else {
SDP::Core::updateStatus(STATUS_SUCCESS, "No cli-ban or cli-prefer location constraints found ")
}
} else {
SDP::Core::updateStatus(STATUS_ERROR, "ERROR: checkCliBanConfiguration(): Cannot find \"$SECTION\" section in $FILE_OPEN");
}
SDP::Core::printDebug("< checkCliBanConfiguration", "Returns: $RCODE");
return $RCODE;
}
SDP::Core::processOptions();
checkCliBanConfiguration();
SDP::Core::printPatternResults();
exit;