127 lines
2.6 KiB
Perl
127 lines
2.6 KiB
Perl
# --
|
|
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
|
# --
|
|
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
|
# the enclosed file COPYING for license information (GPL). If you
|
|
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
|
# --
|
|
|
|
package Kernel::System::SupportDataCollector::PluginBase;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Scalar::Util qw();
|
|
|
|
use Kernel::Language qw(Translatable);
|
|
|
|
our $StatusUnknown = 0;
|
|
our $StatusInfo = 1;
|
|
our $StatusOK = 2;
|
|
our $StatusWarning = 3;
|
|
our $StatusProblem = 4;
|
|
|
|
our %Status2Name = (
|
|
$StatusUnknown => Translatable('Unknown'),
|
|
$StatusOK => Translatable('OK'),
|
|
$StatusWarning => Translatable('Warning'),
|
|
$StatusProblem => Translatable('Problem'),
|
|
$StatusInfo => Translatable('Information'),
|
|
);
|
|
|
|
our @ObjectDependencies = ();
|
|
|
|
sub new {
|
|
my ( $Type, %Param ) = @_;
|
|
|
|
# allocate new hash ref to object
|
|
my $Self = {};
|
|
bless( $Self, $Type );
|
|
|
|
return $Self;
|
|
}
|
|
|
|
# Override this in the plugins to specify their DisplayPath
|
|
sub GetDisplayPath {
|
|
return Translatable('General');
|
|
}
|
|
|
|
sub AddResultUnknown {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return $Self->_AddResult(
|
|
%Param,
|
|
Status => $StatusUnknown,
|
|
);
|
|
}
|
|
|
|
sub AddResultInformation {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return $Self->_AddResult(
|
|
%Param,
|
|
Status => $StatusInfo,
|
|
);
|
|
}
|
|
|
|
sub AddResultOk {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return $Self->_AddResult(
|
|
%Param,
|
|
Status => $StatusOK,
|
|
);
|
|
}
|
|
|
|
sub AddResultWarning {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return $Self->_AddResult(
|
|
%Param,
|
|
Status => $StatusWarning,
|
|
);
|
|
}
|
|
|
|
sub AddResultProblem {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return $Self->_AddResult(
|
|
%Param,
|
|
Status => $StatusProblem,
|
|
);
|
|
}
|
|
|
|
sub _AddResult {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
my %Result = %Param;
|
|
$Result{Identifier} //= '';
|
|
$Result{Identifier} =~ s{:+}{_}; # Replace all :: in the Identifier
|
|
if ( $Result{Identifier} ) {
|
|
$Result{Identifier} = Scalar::Util::blessed($Self) . "::$Result{Identifier}";
|
|
}
|
|
else {
|
|
$Result{Identifier} = Scalar::Util::blessed($Self);
|
|
}
|
|
|
|
$Result{ShortIdentifier} = $Result{Identifier};
|
|
$Result{ShortIdentifier} =~ s{Kernel::System::SupportDataCollector::Plugin(Asynchronous)?::}{}xmsg;
|
|
|
|
$Result{DisplayPath} //= $Self->GetDisplayPath();
|
|
|
|
$Self->{Results} //= [];
|
|
push @{ $Self->{Results} }, \%Result;
|
|
return;
|
|
}
|
|
|
|
sub GetResults {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
return (
|
|
Success => 1,
|
|
Result => $Self->{Results} // [],
|
|
);
|
|
}
|
|
|
|
1;
|