-
-
Notifications
You must be signed in to change notification settings - Fork 92
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Provide better usability in terms of startup and configuration …
…insights (#1474) * List all validation steps as table Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com> * Provide better usability in terms of startup and configuration insights Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com> * Thank you! Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com> * List discovery groups Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com>
- Loading branch information
1 parent
5b55cbd
commit ca19d06
Showing
18 changed files
with
317 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
using Spectre.Console; | ||
|
||
namespace Promitor.Agents.Core.Usability | ||
{ | ||
public class AsciiTableGenerator | ||
{ | ||
protected Table CreateAsciiTable(string caption = null) | ||
{ | ||
var asciiTable = new Table | ||
{ | ||
Border = TableBorder.Rounded | ||
}; | ||
|
||
if(string.IsNullOrWhiteSpace(caption) == false) | ||
{ | ||
asciiTable.Caption(caption); | ||
} | ||
|
||
return asciiTable; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
81 changes: 81 additions & 0 deletions
81
src/Promitor.Agents.ResourceDiscovery/Usability/DiscoveryGroupTableGenerator.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using GuardNet; | ||
using Humanizer; | ||
using Microsoft.Extensions.Options; | ||
using Promitor.Agents.Core.Usability; | ||
using Promitor.Agents.ResourceDiscovery.Configuration; | ||
using Spectre.Console; | ||
|
||
namespace Promitor.Agents.ResourceDiscovery.Usability | ||
{ | ||
public class DiscoveryGroupTableGenerator : AsciiTableGenerator | ||
{ | ||
private readonly IOptionsMonitor<ResourceDeclaration> _resourceDeclarationMonitor; | ||
|
||
public DiscoveryGroupTableGenerator(IOptionsMonitor<ResourceDeclaration> resourceDeclarationMonitor) | ||
{ | ||
Guard.NotNull(resourceDeclarationMonitor, nameof(resourceDeclarationMonitor)); | ||
|
||
_resourceDeclarationMonitor = resourceDeclarationMonitor; | ||
} | ||
|
||
/// <summary> | ||
/// Plots all configured information into an ASCII table | ||
/// </summary> | ||
public void PlotOverviewInAsciiTable() | ||
{ | ||
var resourceDeclaration = _resourceDeclarationMonitor.CurrentValue; | ||
PlotAzureMetadataInAsciiTable(resourceDeclaration.AzureLandscape); | ||
PlotResourceDiscoveryGroupsInAsciiTable(resourceDeclaration.ResourceDiscoveryGroups); | ||
} | ||
|
||
private void PlotResourceDiscoveryGroupsInAsciiTable(List<ResourceDiscoveryGroup> resourceDiscoveryGroups) | ||
{ | ||
var asciiTable = CreateResourceDiscoveryGroupsAsciiTable(); | ||
|
||
foreach (var resourceDiscoveryGroup in resourceDiscoveryGroups) | ||
{ | ||
var isInclusionCriteriaConfigured = resourceDiscoveryGroup.Criteria.Include != null ? "Yes" : "No"; | ||
asciiTable.AddRow(resourceDiscoveryGroup.Name, resourceDiscoveryGroup.Type.Humanize(LetterCasing.Title), isInclusionCriteriaConfigured); | ||
} | ||
|
||
AnsiConsole.Render(asciiTable); | ||
} | ||
|
||
private void PlotAzureMetadataInAsciiTable(AzureLandscape azureLandscape) | ||
{ | ||
var asciiTable = CreateAzureMetadataAsciiTable(); | ||
|
||
var rawSubscriptions = "- " + string.Join($"{Environment.NewLine} - ", azureLandscape.Subscriptions); | ||
|
||
asciiTable.AddRow(azureLandscape.TenantId, azureLandscape.Cloud.Humanize(LetterCasing.Title), rawSubscriptions); | ||
|
||
AnsiConsole.Render(asciiTable); | ||
} | ||
|
||
private Table CreateResourceDiscoveryGroupsAsciiTable() | ||
{ | ||
var asciiTable = CreateAsciiTable("Resource Discovery Groups"); | ||
|
||
// Add some columns | ||
asciiTable.AddColumn("Name"); | ||
asciiTable.AddColumn("Resource Type"); | ||
asciiTable.AddColumn("Is Include Criteria Configured?"); | ||
|
||
return asciiTable; | ||
} | ||
|
||
private Table CreateAzureMetadataAsciiTable() | ||
{ | ||
var asciiTable = CreateAsciiTable("Azure Landscape"); | ||
|
||
// Add some columns | ||
asciiTable.AddColumn("Tenant Id"); | ||
asciiTable.AddColumn("Azure Cloud"); | ||
asciiTable.AddColumn("Subscriptions"); | ||
|
||
return asciiTable; | ||
} | ||
} | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.