Src/Private/Get-VbrBackupCCvCDReplicaResourcesInfo.ps1
function Get-VbrBackupCCvCDReplicaResourcesInfo { <# .SYNOPSIS Function to extract veeam backup & replication cloud connect vcd replica resources information. .DESCRIPTION Build a diagram of the configuration of Veeam VBR in PDF/PNG/SVG formats using Psgraph. .NOTES Version: 0.6.30 Author: Jonathan Colon Twitter: @jcolonfzenpr Github: rebelinux .LINK https://github.com/rebelinux/Veeam.Diagrammer #> [CmdletBinding()] [OutputType([System.Object[]])] param ( ) process { Write-Verbose -Message "Collecting Cloud Connect vCD Replica Resources information from $($VBRServer.Name)." try { $BackupCCvCDReplicaResourcesInfo = @() if ($CloudObjects = (Get-VBRCloudTenant | Where-Object { $_.vCDReplicationResourcesEnabled }).vCDReplicationResource.OrganizationvDCOptions) { foreach ($CloudObject in $CloudObjects) { $AditionalInfo = [PSCustomObject] [ordered] @{ 'Used CPU' = switch ([string]::IsNullOrEmpty($CloudObject.UsedCPU)) { $true { 'Unlimited' } $false { "$([math]::Round($CloudObject.UsedCPU / 1000, 1)) Ghz" } default { '--' } } 'Used Memory' = switch ([string]::IsNullOrEmpty($CloudObject.UsedMemory)) { $true { 'Unlimited' } $false { ConvertTo-FileSizeString -Size (Convert-Size -From MB -To Bytes -Value $CloudObject.UsedMemory) -RoundUnits 2 } default { '--' } } 'Allocation Model' = switch ($CloudObject.AllocationModel) { 'AllocationPool' { 'Allocation Pool' } 'PayAsYouGo' { 'Pay As You Go' } 'ReservationPool' { 'Reservation Pool' } default { 'Unknown' } } 'Enabled' = switch ($CloudObject.Enabled) { $true { 'Yes' } $false { 'No' } default { 'Unknown' } } } $TempBackupCCvCDReplicaResourcesInfo = [PSCustomObject]@{ Name = $CloudObject.OrganizationvDCName Label = Add-DiaNodeIcon -Name $CloudObject.OrganizationvDCName -IconType "VBR_Cloud_Connect_vCD" -Align "Center" -AditionalInfo $AditionalInfo -ImagesObj $Images -IconDebug $IconDebug -FontSize 18 Id = $CloudObject.OrganizationvDCID AditionalInfo = $AditionalInfo WanAcceleration = & { if ($CloudObject.WANAccelarationEnabled) { if ($CloudObject.WANAccelerator.Name) { $WANName = $CloudObject.WANAccelerator.Name.split(".")[0] Get-VbrBackupWanAccelInfo | Where-Object { $_.Name -eq $WANName } } } } } $BackupCCvCDReplicaResourcesInfo += $TempBackupCCvCDReplicaResourcesInfo } } return $BackupCCvCDReplicaResourcesInfo } catch { Write-Verbose -Message $_.Exception.Message } } end {} } |