Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AsBuiltReport.Veeam.VBR/AsBuiltReport.Veeam.VBR.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
RootModule = 'AsBuiltReport.Veeam.VBR.psm1'

# Version number of this module.
ModuleVersion = '1.0.6'
ModuleVersion = '1.0.7'

# Supported PSEditions
CompatiblePSEditions = @('Desktop', 'Core')
Expand Down Expand Up @@ -63,7 +63,7 @@
}
@{
ModuleName = 'AsBuiltReport.Diagram';
ModuleVersion = '1.0.8'
ModuleVersion = '1.0.10'
}
)

Expand Down
6 changes: 6 additions & 0 deletions AsBuiltReport.Veeam.VBR/Language/en-US/VeeamVBR.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -2051,6 +2051,8 @@
Paragraph = The following section provides a summary of all configured Veeam Backup Proxies, including their type, status, and maximum concurrent task settings.
VMwareHeading = VMware Backup Proxies
HyperVHeading = Hyper-V Backup Proxies
NASHeading = NAS Backup Proxies
CDPHeading = CDP Backup Proxies
HardwareSoftwareHeading = Hardware & Software Inventory
LocalDisksHeading = Local Disks
SanDisksHeading = SAN Disks
Expand Down Expand Up @@ -2125,6 +2127,10 @@
IPv4Gateway = IPv4 Gateway
DisplayName = Display Name
ShortName = Short Name
CacheSize = Cache Size
CachePath = Cache Path
SourceProxyTrafficPort = Source Port
TargetProxyTrafficPort = Target Port
'@

GetAbrVbrScaleOutRepository = ConvertFrom-StringData @'
Expand Down
6 changes: 6 additions & 0 deletions AsBuiltReport.Veeam.VBR/Language/es-ES/VeeamVBR.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -2053,6 +2053,8 @@
Paragraph = La siguiente sección proporciona un resumen de todos los proxies de copia de seguridad configurados de Veeam, incluido su tipo, estado y configuración de tareas concurrentes máximas.
VMwareHeading = Proxies de copia de seguridad de VMware
HyperVHeading = Proxies de copia de seguridad de Hyper-V
NASHeading = NAS Proxies Backup
CDPHeading = CDP Proxies de Backup
HardwareSoftwareHeading = Inventario de hardware y software
LocalDisksHeading = Discos locales
SanDisksHeading = Discos SAN
Expand Down Expand Up @@ -2127,6 +2129,10 @@
IPv4Gateway = Puerta de enlace IPv4
DisplayName = Nombre para mostrar
ShortName = Nombre corto
CacheSize = Cache Size
CachePath = Cache Path
SourceProxyTrafficPort = Source Port
TargetProxyTrafficPort = Target Port
'@

GetAbrVbrScaleOutRepository = ConvertFrom-StringData @'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
function Get-AbrCDPProxyInfo {
<#
.SYNOPSIS
Retrieves information about CDP proxies from the Veeam Backup & Replication server.

.DESCRIPTION
The Get-AbrCDPProxyInfo function collects and returns information about CDP proxies configured on the Veeam Backup & Replication server.
It retrieves the proxy server details, including whether they are enabled and the maximum number of concurrent tasks they can handle.

.PARAMETERS
This function does not take any parameters.

.OUTPUTS
System.Object
Returns a collection of PSCustomObject containing the following properties:
- Name: The name of the CDP proxy server.
- AditionalInfo: An ordered dictionary with the following keys:
- Enabled: Indicates whether the proxy server is enabled ('Yes' or 'No').
- Max Tasks: The maximum number of concurrent tasks the proxy server can handle.
- IconType: The icon type associated with the proxy server.

.EXAMPLE
PS C:\> Get-AbrCDPProxyInfo
Collects and displays information about CDP proxies from the Veeam Backup & Replication server.

.NOTES
This function uses the Get-AbrCDPProxyServer cmdlet to retrieve the CDP proxy server information and the Get-AbrIconType function to determine the icon type.
Author: AsBuiltReport
Date: 2024-12-30
Version: 1.0
#>
param ()
try {
Write-PScriboMessage "Collecting CDP Proxy information from $($VBRServer)."
$Proxies = Get-VBRCDPProxy

if ($Proxies) {
$ProxiesInfo = $Proxies | ForEach-Object {
$inobj = [ordered] @{
'Enabled' = if ($_.IsEnabled) { 'Yes' } else { 'No' }
'Cache Size' = "$($_.CacheSize) $($_.CacheSizeUnit)"
'Cache Path' = $_.CachePath
}

$IconType = Get-AbrIconType -String 'ProxyServer'

[PSCustomObject] @{
Name = $_.Name
AditionalInfo = $inobj
IconType = $IconType
}
}
}

return $ProxiesInfo

} catch {
Write-PScriboMessage $_.Exception.Message
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
function Get-AbrDiagBackupToCDPProxy {
<#
.SYNOPSIS
Function to build Backup Server to Proxy diagram.
.DESCRIPTION
Build a diagram of the configuration of Veeam VBR in PDF/PNG/SVG formats using Psgraph.
.NOTES
Version: 1.0.3
Author: AsBuiltReport Organization
Twitter: @asbuiltreport
Github: asbuiltreport
.LINK
https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VBR
#>
[CmdletBinding()]

param
(

)

begin {
}

process {
try {
$CDPBackupProxy = Get-AbrBackupProxyInfo -Type 'cdp'
if ($BackupServerInfo) {
if ($CDPBackupProxy) {

if ($CDPBackupProxy.Name.Count -le 1) {
$CDPBackupProxyColumnSize = 1
} elseif ($ColumnSize) {
$CDPBackupProxyColumnSize = $ColumnSize
} else {
$CDPBackupProxyColumnSize = $CDPBackupProxy.Name.Count
}

Node CDPProxies @{Label = (Add-HtmlNodeTable -Name 'CDPProxies' -ImagesObj $Images -inputObject ($CDPBackupProxy | ForEach-Object { $_.Name.split('.')[0] }) -Align 'Center' -iconType 'VBR_Proxy_Server' -ColumnSize $CDPBackupProxyColumnSize -IconDebug $IconDebug -MultiIcon -AditionalInfo $CDPBackupProxy.AditionalInfo -Subgraph -SubgraphIconType 'VBR_Proxy' -SubgraphLabel 'CDP Backup Proxies' -SubgraphLabelPos 'top' -SubgraphTableStyle 'dashed,rounded' -FontColor $Fontcolor -TableBackgroundColor $MainGraphBGColor -CellBackgroundColor $MainGraphBGColor -TableBorderColor $Edgecolor -TableBorder '1' -FontSize 18 -SubgraphLabelFontSize 26 -SubgraphFontBold -SubgraphLabelFontColor $Fontcolor); shape = 'plain'; fontsize = 14; fontname = 'Segoe Ui' }

Edge -From BackupServers -To CDPProxies @{minlen = 3 }

}
}
} catch {
Write-PScriboMessage $_.Exception.Message
}
}
end {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ function Get-AbrBackupProxyInfo {
param
(
# Backup Proxy Type
[ValidateSet('vmware', 'hyperv', 'nas')]
[ValidateSet('vmware', 'hyperv', 'nas', 'proxy')]
[string] $Type

)
Expand All @@ -30,7 +30,7 @@ function Get-AbrBackupProxyInfo {
'vmware' { Get-VBRViProxy }
'hyperv' { Get-VBRHvProxy }
'nas' { Get-VBRNASProxyServer }

'cdp' { Get-VBRCDPProxy }
}
$BackupProxies = $BPType
$BackupProxyInfo = @()
Expand All @@ -41,6 +41,7 @@ function Get-AbrBackupProxyInfo {
'vmware' { $BackupProxy.Host.Name }
'hyperv' { $BackupProxy.Host.Name }
'nas' { $BackupProxy.Server.Name }
'cdp' { $BackupProxy.Name }
}

$Status = switch ($Type) {
Expand All @@ -62,6 +63,12 @@ function Get-AbrBackupProxyInfo {
$true { 'Enabled' }
}
}
'proxy' {
switch ($BackupProxy.IsEnabled) {
$false { 'Disabled' }
$true { 'Enabled' }
}
}
}

$BPRows = [ordered]@{
Expand All @@ -76,18 +83,21 @@ function Get-AbrBackupProxyInfo {
}
}
'nas' { 'File Backup' }
'cdp' { 'CDP Backup' }
}
Concurrent_Tasks = switch ($Type) {
'vmware' { $BackupProxy.MaxTasksCount }
'hyperv' { $BackupProxy.MaxTasksCount }
'nas' { $BackupProxy.ConcurrentTaskNumber }
'proxy' { 1 }
}
}

$IconType = switch ($Type) {
'vmware' { 'VBR_Proxy_Server' }
'hyperv' { 'VBR_Proxy_Server' }
'nas' { 'VBR_AGENT_Server' }
'cdp' { 'VBR_Proxy_Server' }
}

$TempBackupProxyInfo = [PSCustomObject]@{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,17 @@ function Get-AbrInfraDiagram {
Write-PScriboMessage "Error Message: $($_.Exception.Message)"
}
}
if ($CDPProxies = Get-AbrCDPProxyInfo) {
try {
$ProxiesCdp = Add-HtmlNodeTable -Name 'ProxiesCdp' -ImagesObj $Images -inputObject (($CDPProxies).Name | ForEach-Object { $_.split('.')[0] }) -Align 'Center' -iconType 'VBR_Proxy_Server' -ColumnSize 3 -IconDebug $IconDebug -MultiIcon -AditionalInfo ($CDPProxies.AditionalInfo) -Subgraph -SubgraphIconType 'VBR_NAS' -SubgraphLabel 'CDP Proxies' -SubgraphLabelPos 'top' -SubgraphTableStyle 'dashed,rounded' -FontColor $FontColor -SubgraphLabelFontColor $FontColor -TableBorderColor $Edgecolor -TableBorder '1' -SubgraphLabelFontSize 22 -FontSize 18 -SubgraphFontBold -TableBackgroundColor $MainGraphBGColor -CellBackgroundColor $MainGraphBGColor
} catch {
Write-PScriboMessage 'Error: Unable to create ProxiesCdp Objects. Disabling the section'
Write-PScriboMessage "Error Message: $($_.Exception.Message)"
}
}
}

if ($Proxies -and ($ProxiesVi -or $ProxiesHv -or $ProxiesNas)) {
if ($Proxies -and ($ProxiesVi -or $ProxiesHv -or $ProxiesNas -or $ProxiesCdp)) {

$ProxyNodesArray = @()

Expand All @@ -144,6 +152,9 @@ function Get-AbrInfraDiagram {
if ($NASProxies) {
$ProxyNodesArray += $ProxiesNas
}
if ($CDPProxies) {
$ProxyNodesArray += $ProxiesCdp
}

try {
$ProxiesSubgraphNode = Node -Name 'Proxies' -Attributes @{Label = (Add-HtmlSubGraph -Name 'Proxies' -ImagesObj $Images -TableArray $ProxyNodesArray -Align 'Center' -IconDebug $IconDebug -IconType 'VBR_Proxy' -Label 'Backup Proxies' -LabelPos 'top' -FontColor $Fontcolor -TableStyle 'dashed,rounded' -TableBorderColor $Edgecolor -TableBorder '1' -ColumnSize 3 -FontSize 24 -FontBold -TableBackgroundColor $MainGraphBGColor); shape = 'plain'; fillColor = 'transparent'; fontsize = 14; fontname = 'Segoe Ui' }
Expand Down
Loading