in Tools&Framework/azsapsca/patterns/AZSAP/sbdazure-00001.pl [121:170]
sub getSTONITHwait {
SDP::Core::printDebug('> getSTONITHwait', 'BEGIN');
my $RCODE = 0;
my $FILE_OPEN = 'ha.txt';
my $SECTION = 'cibadmin -Q';
my @CONTENT = ();
my $HA_DOWN = 0;
if ( SDP::Core::getSection($FILE_OPEN, $SECTION, \@CONTENT) ) {
foreach $_ (@CONTENT) {
next if ( m/^\s*$/ ); # Skip blank lines
if ( /CIB failed.*connection failed/ ) {
SDP::Core::printDebug('WARNING', "CIB Connection Failed, Checking cib.xml");
$HA_DOWN = 1;
last;
}
if ( /nvpair.*name=.*stonith-timeout.*value="(.*)"/ ) {
$STONITH_TIMEOUT = $1;
SDP::Core::printDebug(" CIB STONITH TIMEOUT", $STONITH_TIMEOUT);
$RCODE++;
last;
}
}
} else {
SDP::Core::updateStatus(STATUS_ERROR, "ERROR: getSTONITHwait(): Cannot find \"$SECTION\" section in $FILE_OPEN");
}
if ( $HA_DOWN ) {
$SECTION = '/cib.xml$';
if ( SDP::Core::getSection($FILE_OPEN, $SECTION, \@CONTENT) ) {
foreach $_ (@CONTENT) {
next if ( m/^\s*$/ ); # Skip blank lines
if ( /nvpair.*name=.*stonith-timeout.*value="(.*)"/ ) {
$STONITH_TIMEOUT = $1;
SDP::Core::printDebug(" CIB.XML STONITH TIMEOUT", $STONITH_TIMEOUT);
$RCODE++;
last;
}
}
} else {
SDP::Core::updateStatus(STATUS_ERROR, "ERROR: getSTONITHwait(): Cannot find \"$SECTION\" section in $FILE_OPEN");
}
}
if ( $RCODE ) {
$STONITH_TIMEOUT =~ s/\D*//g;
} else {
SDP::Core::printDebug(" DEFAULT STONITH TIMEOUT", $STONITH_TIMEOUT);
}
SDP::Core::printDebug("< getSTONITHwait", "Returns: $RCODE");
return $RCODE;
}