mirror of
https://github.com/centreon/centreon-plugins.git
synced 2025-09-25 18:58:39 +02:00
enh(apps::backup::veeam::local::jobstatus): Add Veeam Agent compatibility for jobs monitoring (#5730)
Refs:CTOR-1801
This commit is contained in:
parent
d4b7084fac
commit
ddbf4b6bb5
@ -47,8 +47,68 @@ Try {
|
|||||||
|
|
||||||
$items = New-Object System.Collections.Generic.List[Hashtable];
|
$items = New-Object System.Collections.Generic.List[Hashtable];
|
||||||
|
|
||||||
|
$isVeeamAgent=$false
|
||||||
|
$vbrjob=Get-VBRJob
|
||||||
|
|
||||||
|
if (($vbrjob | Select-Object -first 1).JobType -like "*Agent*") {
|
||||||
|
$isVeeamAgent=$true
|
||||||
|
} else {
|
||||||
|
$isVeeamAgent=$false
|
||||||
|
}
|
||||||
|
|
||||||
$sessions = @{}
|
$sessions = @{}
|
||||||
Get-VBRBackupSession | Sort CreationTimeUTC -Descending | ForEach-Object {
|
|
||||||
|
if ($isVeeamAgent) {
|
||||||
|
Get-VBRComputerBackupJobSession | Sort-Object CreationTime -Descending | ForEach-Object {
|
||||||
|
$jobId = $_.JobId.toString()
|
||||||
|
if (-not $sessions.ContainsKey($jobId)) {
|
||||||
|
$sessions[$jobId] = New-Object System.Collections.Generic.List[Hashtable];
|
||||||
|
$session = @{}
|
||||||
|
$session.result = $_.Result.value__
|
||||||
|
$session.creationTimeUTC = (get-date -date $_.CreationTime.ToUniversalTime() -Uformat ' . "'%s'" . ')
|
||||||
|
$session.endTimeUTC = (get-date -date $_.EndTime.ToUniversalTime() -Uformat ' . "'%s'" . ')
|
||||||
|
$sessions[$jobId].Add($session)
|
||||||
|
} elseif ($sessions[$jobId].Length -lt 2) {
|
||||||
|
$session = @{}
|
||||||
|
$session.result = $_.Result.value__
|
||||||
|
$session.creationTimeUTC = (get-date -date $_.CreationTime.ToUniversalTime() -Uformat ' . "'%s'" . ')
|
||||||
|
$session.endTimeUTC = (get-date -date $_.EndTime.ToUniversalTime() -Uformat ' . "'%s'" . ')
|
||||||
|
$sessions[$jobId].Add($session)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Get-VBRComputerBackupJob | ForEach-Object {
|
||||||
|
$item = @{}
|
||||||
|
$item.name = $_.Name
|
||||||
|
$item.type = $_.Type.value__
|
||||||
|
$item.isRunning = $false
|
||||||
|
$item.scheduled = $_.ScheduleEnabled
|
||||||
|
$item.isContinuous = 0
|
||||||
|
|
||||||
|
if ($_.isContinuous -eq $true) {
|
||||||
|
$item.isContinuous = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
$Id = $_.Id.toString()
|
||||||
|
if ($sessions.ContainsKey($Id)) {
|
||||||
|
$item.sessions = $sessions[$Id]
|
||||||
|
if ($sessions[$_.Id].State -eq "Running") {
|
||||||
|
$item.isRunning = $true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$item.sessions = New-Object System.Collections.Generic.List[Hashtable];
|
||||||
|
$session = @{}
|
||||||
|
$session.result = -10
|
||||||
|
$session.creationTimeUTC = ""
|
||||||
|
$session.endTimeUTC = ""
|
||||||
|
$item.sessions.Add($session)
|
||||||
|
}
|
||||||
|
|
||||||
|
$items.Add($item)
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Get-VBRBackupSession | Sort-Object CreationTimeUTC -Descending | ForEach-Object {
|
||||||
$jobId = $_.jobId.toString()
|
$jobId = $_.jobId.toString()
|
||||||
if (-not $sessions.ContainsKey($jobId)) {
|
if (-not $sessions.ContainsKey($jobId)) {
|
||||||
$sessions[$jobId] = New-Object System.Collections.Generic.List[Hashtable];
|
$sessions[$jobId] = New-Object System.Collections.Generic.List[Hashtable];
|
||||||
@ -66,7 +126,7 @@ Try {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Get-VBRJob | ForEach-Object {
|
$vbrjob | ForEach-Object {
|
||||||
$item = @{}
|
$item = @{}
|
||||||
$item.name = $_.Name
|
$item.name = $_.Name
|
||||||
$item.type = $_.JobType.value__
|
$item.type = $_.JobType.value__
|
||||||
@ -92,6 +152,7 @@ Try {
|
|||||||
|
|
||||||
$items.Add($item)
|
$items.Add($item)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$jsonString = $items | ConvertTo-JSON-20 -forceArray $true
|
$jsonString = $items | ConvertTo-JSON-20 -forceArray $true
|
||||||
Write-Host $jsonString
|
Write-Host $jsonString
|
||||||
@ -112,6 +173,6 @@ __END__
|
|||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
Method to get veeam job status informations.
|
Method to get Veeam job status information.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
Loading…
x
Reference in New Issue
Block a user