From c0d353011ed45f934fa9b76455ada061e8afd09c Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sat, 30 Nov 2024 14:27:46 -0400 Subject: [PATCH 1/8] Update bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index cafebd9..d671990 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -13,13 +13,13 @@ body: Please provide a clear and concise description of the bug. validations: required: true - - type: input - id: command-line-input + - type: textarea + id: output-log-generation attributes: - label: Command-line input + label: Log Generation description: >- - Please provide the command line input you are using to run AsBuiltReport. Please ensure that you obscure any sensitive information. - placeholder: New-VeeamDiagram -Target backupserver.domain.local -Username "domain\username" -Password password -Format pdf -Direction top-to-bottom -OutputFolderPath C:\Users\username\ -EdgeType polyline -DiagramType Diagram-Type + Please provide the Output.log as described in [Run cmdlet with debugging options +](https://github.com/rebelinux/Veeam.Diagrammer/wiki/Run-cmdlet-with-debugging-options) validations: required: true - type: textarea From 24632be88cee4d3dfbe29e6b190154960554f35c Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sat, 30 Nov 2024 14:28:14 -0400 Subject: [PATCH 2/8] Update bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index d671990..351c550 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -18,8 +18,7 @@ body: attributes: label: Log Generation description: >- - Please provide the Output.log as described in [Run cmdlet with debugging options -](https://github.com/rebelinux/Veeam.Diagrammer/wiki/Run-cmdlet-with-debugging-options) + Please provide the Output.log as described in [Run cmdlet with debugging options](https://github.com/rebelinux/Veeam.Diagrammer/wiki/Run-cmdlet-with-debugging-options) validations: required: true - type: textarea From 6531910d69163dc82153f379d433ce9ab1bdd134 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sat, 30 Nov 2024 14:30:12 -0400 Subject: [PATCH 3/8] Update bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 351c550..b85f4ea 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -19,6 +19,7 @@ body: label: Log Generation description: >- Please provide the Output.log as described in [Run cmdlet with debugging options](https://github.com/rebelinux/Veeam.Diagrammer/wiki/Run-cmdlet-with-debugging-options) + Attach the file in the text area. validations: required: true - type: textarea From d25d214d9ddf02a2ef2a958795f3b9e44fe95d58 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sat, 30 Nov 2024 14:30:44 -0400 Subject: [PATCH 4/8] Update bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index b85f4ea..367876a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -18,8 +18,7 @@ body: attributes: label: Log Generation description: >- - Please provide the Output.log as described in [Run cmdlet with debugging options](https://github.com/rebelinux/Veeam.Diagrammer/wiki/Run-cmdlet-with-debugging-options) - Attach the file in the text area. + Please provide the Output.log as described in [Run cmdlet with debugging options](https://github.com/rebelinux/Veeam.Diagrammer/wiki/Run-cmdlet-with-debugging-options). Attach the file in the text area. validations: required: true - type: textarea From 24050f3664e322809baf130f3b48a12052f0c6b7 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sat, 30 Nov 2024 14:32:28 -0400 Subject: [PATCH 5/8] Update bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 367876a..0a01e12 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -19,6 +19,8 @@ body: label: Log Generation description: >- Please provide the Output.log as described in [Run cmdlet with debugging options](https://github.com/rebelinux/Veeam.Diagrammer/wiki/Run-cmdlet-with-debugging-options). Attach the file in the text area. + placeholder: |- + Drag & drop the file in the Here. validations: required: true - type: textarea From ebe2e88a28688b10428da0b9e76b74622bbc9ee9 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sat, 30 Nov 2024 14:33:38 -0400 Subject: [PATCH 6/8] Update bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 0a01e12..871acc0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -35,14 +35,6 @@ body: 3. .... validations: required: true - - type: textarea - id: expected-behaviour - attributes: - label: Expected behaviour - description: >- - Please provide a clear and concise description of what you expected to happen. - validations: - required: true - type: textarea id: screenshots attributes: @@ -75,11 +67,6 @@ body: placeholder: Get-Module -ListAvailable @("Veeam.Diagrammer";"PSGraph") | Select Name, Version validations: required: true - - type: textarea - id: additional-context - attributes: - label: Additional Context - description: This field is optional. You may provide additional context for the bug you wish to report. You may wish to include links to any related [issues](https://github.com/rebelinux/Veeam.Diagrammer/issues) or other relevant information. - type: checkboxes id: checklist attributes: From 897993f238b298a4b6ab8ae82a7f67931d0cc0c7 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Wed, 11 Dec 2024 13:40:02 -0400 Subject: [PATCH 7/8] v0.6.18 --- CHANGELOG.md | 11 +++++ Src/Private/Get-DiagBackupToFileProxy.ps1 | 12 +++++- Src/Private/Get-VbrBackupEntraIDInfo.ps1 | 50 ++++++++++++++++++++++ Src/Private/Get-VbrInfraDiagram.ps1 | 20 ++++++++- Src/Private/Images.ps1 | 1 + Src/Private/SharedUtilsFunctions.ps1 | 1 + Veeam.Diagrammer.psd1 | 2 +- icons/Microsoft_Entra_ID.png | Bin 0 -> 9239 bytes 8 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 Src/Private/Get-VbrBackupEntraIDInfo.ps1 create mode 100644 icons/Microsoft_Entra_ID.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d6eaa6..73b6cc4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.6.18] - Unreleased + +### Added + +- Add Entra ID Tenant information to the Infrastructure diagram + +### Fixed + +- Improve Graphviz Cluster space with less than 1 object to display (Get-DiagBackupToFileProxy) +- Fix Google Cloud Storage repository not displaying a icon + ## [0.6.17] - 2024-11-28 ### Fixed diff --git a/Src/Private/Get-DiagBackupToFileProxy.ps1 b/Src/Private/Get-DiagBackupToFileProxy.ps1 index ba2cb01..8cda871 100644 --- a/Src/Private/Get-DiagBackupToFileProxy.ps1 +++ b/Src/Private/Get-DiagBackupToFileProxy.ps1 @@ -5,7 +5,7 @@ function Get-DiagBackupToFileProxy { .DESCRIPTION Build a diagram of the configuration of Veeam VBR in PDF/PNG/SVG formats using Psgraph. .NOTES - Version: 0.6.9 + Version: 0.6.18 Author: Jonathan Colon Twitter: @jcolonfzenpr Github: rebelinux @@ -30,7 +30,15 @@ function Get-DiagBackupToFileProxy { if ($BackupServerInfo) { if ($FileBackupProxy) { - Node FileProxies @{Label = (Get-DiaHTMLNodeTable -ImagesObj $Images -inputObject ($FileBackupProxy | ForEach-Object { $_.Name.split('.')[0] }) -Align "Center" -iconType "VBR_Proxy_Server" -columnSize 4 -IconDebug $IconDebug -MultiIcon -AditionalInfo $FileBackupProxy.AditionalInfo -Subgraph -SubgraphIconType "VBR_Proxy" -SubgraphLabel "File Backup Proxies" -SubgraphLabelPos "top" -SubgraphTableStyle "dashed,rounded" -fontColor $Fontcolor -TableBorderColor $Edgecolor -TableBorder "1"); shape = 'plain'; fontsize = 14; fontname = "Segoe Ui" } + $columnSize = & { + if (($FileBackupProxy | Measure-Object).count-le 1 ) { + return 1 + } else { + return 4 + } + } + + Node FileProxies @{Label = (Get-DiaHTMLNodeTable -ImagesObj $Images -inputObject ($FileBackupProxy | ForEach-Object { $_.Name.split('.')[0] }) -Align "Center" -iconType "VBR_Proxy_Server" -columnSize $columnSize -IconDebug $IconDebug -MultiIcon -AditionalInfo $FileBackupProxy.AditionalInfo -Subgraph -SubgraphIconType "VBR_Proxy" -SubgraphLabel "File Backup Proxies" -SubgraphLabelPos "top" -SubgraphTableStyle "dashed,rounded" -fontColor $Fontcolor -TableBorderColor $Edgecolor -TableBorder "1"); shape = 'plain'; fontsize = 14; fontname = "Segoe Ui" } Edge $BackupServerInfo.Name -To FileProxies @{minlen = 3 } diff --git a/Src/Private/Get-VbrBackupEntraIDInfo.ps1 b/Src/Private/Get-VbrBackupEntraIDInfo.ps1 new file mode 100644 index 0000000..4913684 --- /dev/null +++ b/Src/Private/Get-VbrBackupEntraIDInfo.ps1 @@ -0,0 +1,50 @@ +function Get-VbrBackupEntraIDInfo { + <# + .SYNOPSIS + Function to extract veeam backup & replication entra id information. + .DESCRIPTION + Build a diagram of the configuration of Veeam VBR in PDF/PNG/SVG formats using Psgraph. + .NOTES + Version: 0.6.9 + Author: Jonathan Colon + Twitter: @jcolonfzenpr + Github: rebelinux + .LINK + https://github.com/rebelinux/Veeam.Diagrammer + #> + [CmdletBinding()] + [OutputType([System.Object[]])] + + Param + ( + + ) + process { + Write-Verbose -Message "Collecting Entra ID information from $($VBRServer.Name)." + try { + $EntraIDs = Get-VBREntraIDTenant + $EntraIDInfo = @() + if ($EntraIDs) { + foreach ($EntraID in $EntraIDs) { + + $Rows = @{ + Region = $EntraID.Region + CacheRepository = $EntraID.CacheRepository.Name + } + + $TempEntraIDInfo = [PSCustomObject]@{ + Name = $EntraID.Name.toUpper() + Label = Get-DiaNodeIcon -Name "$($EntraID.Name.toUpper())" -IconType "VBR_Microsoft_Entra_ID" -Align "Center" -Rows $Rows -ImagesObj $Images -IconDebug $IconDebug + AditionalInfo = $Rows + } + $EntraIDInfo += $TempEntraIDInfo + } + } + + return $EntraIDInfo + } catch { + Write-Verbose -Message $_.Exception.Message + } + } + end {} +} \ No newline at end of file diff --git a/Src/Private/Get-VbrInfraDiagram.ps1 b/Src/Private/Get-VbrInfraDiagram.ps1 index 4f81cab..930ac3b 100644 --- a/Src/Private/Get-VbrInfraDiagram.ps1 +++ b/Src/Private/Get-VbrInfraDiagram.ps1 @@ -40,6 +40,19 @@ function Get-VbrInfraDiagram { # Build Backup Server Graphviz Cluster Get-DiagBackupServer + # EntraID Graphviz Cluster + if ($EntraID = Get-VbrBackupEntraIDInfo) { + try { + $EntraIDNode = Node EntraID @{Label = (Get-DiaHTMLNodeTable -ImagesObj $Images -inputObject $EntraID.Name -Align "Center" -iconType "VBR_Microsoft_Entra_ID" -columnSize 2 -IconDebug $IconDebug -MultiIcon -AditionalInfo $EntraID.AditionalInfo -Subgraph -SubgraphLabel "Entra ID Tenants" -SubgraphLabelPos "top" -SubgraphIconType "VBR_Microsoft_Entra_ID" -SubgraphTableStyle "dashed,rounded" -TableBorderColor "#71797E" -TableBorder "1"); shape = 'plain'; fontname = "Segoe Ui" } + } catch { + Write-Verbose "Error: Unable to create EntraID Objects. Disabling the section" + Write-Debug "Error Message: $($_.Exception.Message)" + } + } + if ($EntraID -and $EntraIDNode) { + $EntraIDNode + } + # Proxy Graphviz Cluster if ($Proxies = Get-VbrProxyInfo) { @@ -432,7 +445,7 @@ function Get-VbrInfraDiagram { # Connect the Dummy Node in a straight line # VBRStartPoint --- VBRServerPointSpace --- VBRProxyPoint --- VBRProxyPointSpace --- VBRRepoPoint --- VBREndPointSpace Edge -From VBRStartPoint -To VBRServerPointSpace @{minlen = 20; arrowtail = 'none'; arrowhead = 'none'; style = 'filled' } - Edge -From VBRServerPointSpace -To VBRProxyPoint @{minlen = 12; arrowtail = 'none'; arrowhead = 'none'; style = 'filled' } + Edge -From VBRServerPointSpace -To VBRProxyPoint @{minlen = 20; arrowtail = 'none'; arrowhead = 'none'; style = 'filled' } if ($ProxiesVi -and $ProxiesHv -and $ProxiesNas ) { Edge -From VBRProxyPoint -To VBRProxyPointSpace @{minlen = 16; arrowtail = 'none'; arrowhead = 'none'; style = 'filled' } } else { @@ -551,6 +564,11 @@ function Get-VbrInfraDiagram { # Connect Veeam Backup server to the Dummy line Edge -From $BackupServerInfo.Name -To VBRServerPointSpace @{minlen = 2; arrowtail = 'dot'; arrowhead = 'none'; style = 'dashed' } + # Connect Microsoft Entra ID Node to the Dummy line + if ($EntraIDNode) { + Edge -From EntraID -To VBRProxyPoint @{minlen = 2; arrowtail = 'dot'; arrowhead = 'none'; style = 'dashed' } + } + # Connect Veeam Proxies Server to the Dummy line if ($ProxiesSubgraphNode) { Edge -From VBRProxyPoint -To Proxies @{minlen = 1; arrowtail = 'none'; arrowhead = 'dot'; style = 'dashed' } diff --git a/Src/Private/Images.ps1 b/Src/Private/Images.ps1 index 0ac7ebe..f6871e6 100644 --- a/Src/Private/Images.ps1 +++ b/Src/Private/Images.ps1 @@ -51,4 +51,5 @@ $script:Images = @{ "VBR_SureBackup" = "SureBackup.png" "VBR_Application_Groups" = "Service-Application.png" "VBR_vSphere_Cluster" = "Server_Cluster.png" + "VBR_Microsoft_Entra_ID" = "Microsoft_Entra_ID.png" } \ No newline at end of file diff --git a/Src/Private/SharedUtilsFunctions.ps1 b/Src/Private/SharedUtilsFunctions.ps1 index b840bb0..d9be9b1 100644 --- a/Src/Private/SharedUtilsFunctions.ps1 +++ b/Src/Private/SharedUtilsFunctions.ps1 @@ -19,6 +19,7 @@ function Get-IconType { 'LinuxHardened' { 'VBR_Linux_Repository' } 'WinLocal' { 'VBR_Windows_Repository' } 'Cloud' { 'VBR_Cloud_Repository' } + 'GoogleCloudStorage' { 'VBR_Amazon_S3_Compatible' } 'AmazonS3Compatible' { 'VBR_Amazon_S3_Compatible' } 'AmazonS3Glacier' { 'VBR_Amazon_S3_Compatible' } 'AmazonS3' { 'VBR_Amazon_S3' } diff --git a/Veeam.Diagrammer.psd1 b/Veeam.Diagrammer.psd1 index 297fd0f..71849e8 100644 --- a/Veeam.Diagrammer.psd1 +++ b/Veeam.Diagrammer.psd1 @@ -12,7 +12,7 @@ RootModule = 'Veeam.Diagrammer.psm1' # Version number of this module. - ModuleVersion = '0.6.17' + ModuleVersion = '0.6.18' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/icons/Microsoft_Entra_ID.png b/icons/Microsoft_Entra_ID.png new file mode 100644 index 0000000000000000000000000000000000000000..baa481f520d3c58efc988c24c29ef4cd41c64c20 GIT binary patch literal 9239 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 z ztH0O~K73>KLl4V9!B{0j;z$;*Es=6+!kWhoSjQ+~a?Gnf8Qc*OaeMw8#Rq?^%rD!= zujJ-}L+C_a=Z`MsS8+8$o8V>BlESiKTQ$a#zM`N{b^BPo6=dSqRNH!M^+OGxyx(UE s6P{G5gcK)sx&7x)WJsS|ceXU1w45UU3(*f=Y5)KL literal 0 HcmV?d00001 From 0e0825d4b12f3614c9fe4b9edc28e99e5b012536 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Wed, 11 Dec 2024 13:40:26 -0400 Subject: [PATCH 8/8] Updated release data --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73b6cc4..693e61c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.6.18] - Unreleased +## [0.6.18] - 2024-12-11 ### Added