ASNMTAP
view release on metacpan or search on metacpan
lib/ASNMTAP/Asnmtap/Plugins/SOAP.pm view on Meta::CPAN
}
my $cookies = $parms{cookies};
unless ( $cookies =~ /^[01]$/ ) {
$$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => 'SOAP parameter cookies must be 0 or 1' }, $TYPE{APPEND} );
return ( $ERRORS{UNKNOWN} );
}
unless ( defined $parms{perfdataLabel} ) {
$$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => 'Missing SOAP parameter perfdataLabel' }, $TYPE{APPEND} );
return ( $ERRORS{UNKNOWN} );
}
my $PATCH_HTTP_KEEPALIVE = $parms{PATCH_HTTP_KEEPALIVE};
unless ( $PATCH_HTTP_KEEPALIVE =~ /^[01]$/ ) {
$$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => 'SOAP parameter PATCH_HTTP_KEEPALIVE must be 0 or 1' }, $TYPE{APPEND} );
return ( $ERRORS{UNKNOWN} );
}
my $WSRF = $parms{WSRF};
unless ( $WSRF =~ /^[01]$/ ) {
$$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => 'SOAP parameter WSRF must be 0 or 1' }, $TYPE{APPEND} );
return ( $ERRORS{UNKNOWN} );
}
my $TYPE_ERROR_RETURN = $parms{TYPE_ERROR_RETURN};
unless ( $TYPE_ERROR_RETURN =~ /^(?:REPLACE|APPEND|INSERT|COMMA_APPEND|COMMA_INSERT)$/ ) {
$$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => 'SOAP parameter TYPE_ERROR_RETURN must be [REPLACE|APPEND|INSERT|COMMA_APPEND|COMMA_INSERT]' }, $TYPE{APPEND} );
return ( $ERRORS{UNKNOWN} );
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
my $browseragent = $$asnmtapInherited->browseragent ();
my $timeout = $$asnmtapInherited->timeout ();
my $proxySettings = $$asnmtapInherited->getOptionsArgv ( 'proxy' );
my $debug = $$asnmtapInherited->getOptionsValue ( 'debug' );
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub _soapCheckTransportStatus {
my ($asnmtapInherited, $service, $TYPE_ERROR_RETURN, $debug) = @_;
my $transportStatus = $service->transport->status;
print "ASNMTAP::Asnmtap::Plugins::SOAP::_soapCheckTransportStatus: $transportStatus\n" if ($debug);
if ( $service->transport->is_success ) {
$$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{OK}, alert => $transportStatus }, $TYPE{APPEND} );
return $ERRORS{OK};
};
for ( $transportStatus ) {
/500 Can_t connect to/ &&
do { $$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => $transportStatus }, $TYPE{$TYPE_ERROR_RETURN} ); return $ERRORS{UNKNOWN}; last; };
/500 configure certs failed/ &&
do { $$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => $transportStatus }, $TYPE{$TYPE_ERROR_RETURN} ); return $ERRORS{UNKNOWN}; last; };
/500 Connect failed/ &&
do { $$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => $transportStatus }, $TYPE{$TYPE_ERROR_RETURN} ); return $ERRORS{UNKNOWN}; last; };
/500 proxy connect failed/ &&
do { $$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => $transportStatus }, $TYPE{$TYPE_ERROR_RETURN} ); return $ERRORS{UNKNOWN}; last; };
/500 Internal Server Error/ &&
do { $$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => $transportStatus }, $TYPE{$TYPE_ERROR_RETURN} ); return $ERRORS{UNKNOWN}; last; };
}
$$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{CRITICAL}, alert => $transportStatus }, $TYPE{$TYPE_ERROR_RETURN} );
return $ERRORS{CRITICAL};
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub _soapCheckFault {
my ($asnmtapInherited, $som, $debug) = @_;
my $faultcode = $som->faultcode; $faultcode =~ s/^\s+//g; $faultcode =~ s/\s+$//g;
my $faultdetail = $som->faultdetail;
my $faultstring = $som->faultstring;
my $faultactor = $som->faultactor;
if ( $debug ) {
print "ASNMTAP::Asnmtap::Plugins::SOAP::_soapCheckFault->faultcode : ", $faultcode, "\n" if (defined $faultcode);
print "ASNMTAP::Asnmtap::Plugins::SOAP::_soapCheckFault->faultdetail : ", $faultdetail, "\n" if (defined $faultdetail);
print "ASNMTAP::Asnmtap::Plugins::SOAP::_soapCheckFault->faultstring : ", $faultstring, "\n" if (defined $faultstring);
print "ASNMTAP::Asnmtap::Plugins::SOAP::_soapCheckFault->faultactor : ", $faultactor, "\n" if (defined $faultactor);
}
$$asnmtapInherited->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, error => $faultcode. ( defined $faultstring ? ' - ' .$faultstring : '' ) }, $TYPE{APPEND} );
return $ERRORS{UNKNOWN};
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
my ($service, $alert, $error, $result);
if ( $WSRF ) {
if ( $debug >= 4 ) {
eval "use WSRF::Lite +trace => 'all'";
} elsif ($debug == 1) {
eval "use WSRF::Lite +trace => qw( debug )";
} else {
eval "use WSRF::Lite";
}
$service = new WSRF::Lite
-> wsaddress ( WSRF::WS_Address->new()->Address( $parms{proxy} ) )
-> autotype ( 1 )
-> readable ( $readable )
-> envprefix ( $envprefix )
-> encprefix ( $encprefix )
-> xmlschema ( 'http://www.w3.org/2001/XMLSchema' )
-> uri ( $namespace )
-> on_action ( sub { my $uri = $_[0]; $uri =~ s/\/$//; my $method = (defined $soapaction ? ( $soapaction eq '' ? '' : $soapaction ) : $uri .'/'. $_[1]) } )
-> on_fault ( sub { } )
;
} else {
if ( $debug >= 4 ) {
( run in 0.690 second using v1.01-cache-2.11-cpan-39bf76dae61 )