init III
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
# --
|
||||
# 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::Console::Command::Dev::Tools::GenericInterface::DebugRead;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use utf8;
|
||||
|
||||
use parent qw(Kernel::System::Console::BaseCommand);
|
||||
|
||||
our @ObjectDependencies = (
|
||||
'Kernel::System::GenericInterface::DebugLog',
|
||||
);
|
||||
|
||||
sub Configure {
|
||||
my ( $Self, %Param ) = @_;
|
||||
|
||||
$Self->Description('Read parts of the generic interface debug log based on your given options.');
|
||||
$Self->AddOption(
|
||||
Name => 'communication-id',
|
||||
Description => "Restriction on the communication id.",
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/.*/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'communication-type',
|
||||
Description => "Restriction on the communication type.",
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/^(?:Provider|Requester)$/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'created-at-or-after',
|
||||
Description => "Restriction on entries created after given timestamp.",
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/^\d{4}-\d{2}-\d{2}[ ]\d{2}:\d{2}:\d{2}$/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'created-at-or-before',
|
||||
Description => "Restriction on entries created before given timestamp.",
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/^\d{4}-\d{2}-\d{2}[ ]\d{2}:\d{2}:\d{2}$/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'remote-ip',
|
||||
Description => "Restriction on entries of a given ip address.",
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/.*/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'webservice-id',
|
||||
Description => "Restriction on entries of a given web service id.",
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/^\d+$/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'with-data',
|
||||
Description => "Restriction on entries of a given web service id.",
|
||||
Required => 0,
|
||||
HasValue => 0,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'limit',
|
||||
Description => "Specify result entries limit, default is 100.",
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/^\d+$/smx,
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sub Run {
|
||||
my ( $Self, %Param ) = @_;
|
||||
|
||||
# get options
|
||||
my $CommunicationID = $Self->GetOption('communication-id');
|
||||
my $CommunicationType = $Self->GetOption('communication-type');
|
||||
my $CreatedAtOrAfter = $Self->GetOption('created-at-or-after');
|
||||
my $CreatedAtOrBefore = $Self->GetOption('created-at-or-before');
|
||||
my $RemoteIP = $Self->GetOption('remote-ip');
|
||||
my $WebserviceID = $Self->GetOption('webservice-id');
|
||||
my $WithData = $Self->GetOption('with-data');
|
||||
my $Limit = $Self->GetOption('limit');
|
||||
|
||||
# create needed objects
|
||||
my $DebugLogObject = $Kernel::OM->Get('Kernel::System::GenericInterface::DebugLog');
|
||||
|
||||
# search for log entries
|
||||
$Self->Print("Searching for DebugLog entries...\n\n");
|
||||
my $LogData = $DebugLogObject->LogSearch(
|
||||
CommunicationID => $CommunicationID,
|
||||
CommunicationType => $CommunicationType,
|
||||
CreatedAtOrAfter => $CreatedAtOrAfter,
|
||||
CreatedAtOrBefore => $CreatedAtOrBefore,
|
||||
RemoteIP => $RemoteIP,
|
||||
WebserviceID => $WebserviceID,
|
||||
WithData => $WithData,
|
||||
Limit => $Limit,
|
||||
);
|
||||
|
||||
if ( ref $LogData eq 'ARRAY' ) {
|
||||
|
||||
my $Counter = 0;
|
||||
for my $Item ( @{$LogData} ) {
|
||||
for my $Key (qw( LogID CommunicationID CommunicationType WebserviceID RemoteIP Created )) {
|
||||
$Self->Print("$Key: $Item->{$Key}, ");
|
||||
}
|
||||
|
||||
$Self->Print("\n");
|
||||
|
||||
if ($WithData) {
|
||||
|
||||
for my $DataItem ( @{ $Item->{Data} } ) {
|
||||
$Self->Print(" - ");
|
||||
for my $Key (qw( DebugLevel Summary Data Created)) {
|
||||
$Self->Print("$Key: $DataItem->{$Key}, ");
|
||||
}
|
||||
$Self->Print("\n");
|
||||
}
|
||||
}
|
||||
$Self->Print("\n");
|
||||
$Counter++;
|
||||
}
|
||||
|
||||
$Self->Print("\n Log entries found: $Counter \n");
|
||||
}
|
||||
else {
|
||||
$Self->Print("No DebugLog entries were found.\n");
|
||||
}
|
||||
|
||||
return $Self->ExitCodeOk();
|
||||
}
|
||||
|
||||
1;
|
||||
Reference in New Issue
Block a user