mirror of
https://github.com/Icinga/icinga-powershell-framework.git
synced 2025-12-20 14:51:19 -05:00
Merge pull request #354 from Icinga:feature/imc_extends_repo_management
Features: Adds extended Repository management to IMC This will extend the current repository management within the Icinga Management Console, by allowing to list, remove, sort, enable and disable repositories.
This commit is contained in:
commit
b335a4a588
9 changed files with 248 additions and 1 deletions
|
|
@ -42,6 +42,7 @@ Released closed milestones can be found on [GitHub](https://github.com/Icinga/ic
|
|||
* [#342](https://github.com/Icinga/icinga-powershell-framework/pull/342) Adds feature to print commands being executed by the Icinga Management Console with `l` and improves summary visualisation for better readability
|
||||
* [#346](https://github.com/Icinga/icinga-powershell-framework/pull/346) Adds support for version names for snapshots
|
||||
* [#348](https://github.com/Icinga/icinga-powershell-framework/pull/348) Improves debug output on TCP handling by separating several network messages into multiple messages and by logging the send message to the client
|
||||
* [#354](https://github.com/Icinga/icinga-powershell-framework/pull/354) Adds extended Repository management to Icinga Management Console
|
||||
|
||||
## 1.5.2 (2021-07-09)
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
function Show-IcingaForWindowsManagementConsoleDisableIcingaRepository()
|
||||
{
|
||||
[array]$Repositories = @();
|
||||
[array]$RepoList = Get-IcingaRepositories -ExcludeDisabled;
|
||||
[int]$MaxLength = Get-IcingaMaxTextLength -TextArray $RepoList.Name;
|
||||
|
||||
foreach ($repo in $RepoList) {
|
||||
|
||||
$PrintName = Add-IcingaWhiteSpaceToString -Text $repo.Name -Length $MaxLength;
|
||||
$PrintName = [string]::Format('{0}=> {1}', $PrintName, $repo.Value.RemotePath);
|
||||
|
||||
$Repositories += @{
|
||||
'Caption' = $PrintName;
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsoleDisableIcingaRepository';
|
||||
'Help' = '';
|
||||
'Action' = @{
|
||||
'Command' = 'Show-IcingaWindowsManagementConsoleYesNoDialog';
|
||||
'Arguments' = @{
|
||||
'-Caption' = ([string]::Format('Disable Icinga Repository "{0}"', $repo.Name));
|
||||
'-Command' = 'Disable-IcingaRepository';
|
||||
'-CmdArguments' = @{
|
||||
'-Name' = $repo.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($Repositories.Count -ne 0) {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'Select a repository to disable it from the system' `
|
||||
-Entries $Repositories;
|
||||
} else {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'There are no local configured Icinga Repositories'
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
function Show-IcingaForWindowsManagementConsoleEnableIcingaRepository()
|
||||
{
|
||||
[array]$Repositories = @();
|
||||
[array]$RepoList = Get-IcingaRepositories;
|
||||
[int]$MaxLength = Get-IcingaMaxTextLength -TextArray $RepoList.Name;
|
||||
|
||||
foreach ($repo in $RepoList) {
|
||||
|
||||
if ($repo.Value.Enabled) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$PrintName = Add-IcingaWhiteSpaceToString -Text $repo.Name -Length $MaxLength;
|
||||
$PrintName = [string]::Format('{0}=> {1}', $PrintName, $repo.Value.RemotePath);
|
||||
|
||||
$Repositories += @{
|
||||
'Caption' = $PrintName;
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsoleEnableIcingaRepository';
|
||||
'Help' = '';
|
||||
'Action' = @{
|
||||
'Command' = 'Show-IcingaWindowsManagementConsoleYesNoDialog';
|
||||
'Arguments' = @{
|
||||
'-Caption' = ([string]::Format('Enable Icinga Repository "{0}"', $repo.Name));
|
||||
'-Command' = 'Enable-IcingaRepository';
|
||||
'-CmdArguments' = @{
|
||||
'-Name' = $repo.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($Repositories.Count -ne 0) {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'Select a repository to enable it from the system' `
|
||||
-Entries $Repositories;
|
||||
} else {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'There are no local configured Icinga Repositories'
|
||||
}
|
||||
}
|
||||
|
|
@ -12,6 +12,36 @@ function Show-IcingaForWindowsManagementConsoleManageIcingaRepositories()
|
|||
'Caption' = 'Set Icinga Repository "Icinga Snapshot"';
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsoleSetIcingaSnapshotRepositories';
|
||||
'Help' = 'Allows to set the repository URL for the "Icinga Snapshot" repository and will override it, if it already exist';
|
||||
},
|
||||
@{
|
||||
'Caption' = 'Show Icinga Repository list';
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsoleIcingaRepositoriesList';
|
||||
'Help' = 'Shows a list of all defined Icinga Repositories on this machine';
|
||||
},
|
||||
@{
|
||||
'Caption' = 'Move Icinga Repository to top';
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsolePushIcingaRepository';
|
||||
'Help' = 'Allows you to move certain repositories on the system to the top of the list, which will then be applied first';
|
||||
},
|
||||
@{
|
||||
'Caption' = 'Move Icinga Repository to bottom';
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsolePopIcingaRepository';
|
||||
'Help' = 'Allows you to move certain repositories on the system to the bottom of the list, which will then be applied last';
|
||||
},
|
||||
@{
|
||||
'Caption' = 'Enable Icinga Repository';
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsoleEnableIcingaRepository';
|
||||
'Help' = 'Allows you to enable certain repositories on the system';
|
||||
},
|
||||
@{
|
||||
'Caption' = 'Disable Icinga Repository';
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsoleDisableIcingaRepository';
|
||||
'Help' = 'Allows you to disable certain repositories on the system';
|
||||
},
|
||||
@{
|
||||
'Caption' = 'Remove Icinga Repository';
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsoleRemoveIcingaRepository';
|
||||
'Help' = 'Allows you to remove certain repositories from the system';
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
function Show-IcingaForWindowsManagementConsolePopIcingaRepository()
|
||||
{
|
||||
[array]$Repositories = @();
|
||||
[array]$RepoList = Get-IcingaRepositories;
|
||||
[int]$MaxLength = Get-IcingaMaxTextLength -TextArray $RepoList.Name;
|
||||
|
||||
foreach ($repo in $RepoList) {
|
||||
|
||||
$PrintName = Add-IcingaWhiteSpaceToString -Text $repo.Name -Length $MaxLength;
|
||||
$PrintName = [string]::Format('{0}=> {1}', $PrintName, $repo.Value.RemotePath);
|
||||
|
||||
$Repositories += @{
|
||||
'Caption' = $PrintName;
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsolePopIcingaRepository';
|
||||
'Help' = '';
|
||||
'Action' = @{
|
||||
'Command' = 'Show-IcingaWindowsManagementConsoleYesNoDialog';
|
||||
'Arguments' = @{
|
||||
'-Caption' = ([string]::Format('Move Icinga Repository "{0}" to bottom', $repo.Name));
|
||||
'-Command' = 'Pop-IcingaRepository';
|
||||
'-CmdArguments' = @{
|
||||
'-Name' = $repo.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($Repositories.Count -ne 0) {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'Select a repository to move it to the bottom of the list' `
|
||||
-Entries $Repositories;
|
||||
} else {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'There are no local configured Icinga Repositories'
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
function Show-IcingaForWindowsManagementConsolePushIcingaRepository()
|
||||
{
|
||||
[array]$Repositories = @();
|
||||
[array]$RepoList = Get-IcingaRepositories;
|
||||
[int]$MaxLength = Get-IcingaMaxTextLength -TextArray $RepoList.Name;
|
||||
|
||||
foreach ($repo in $RepoList) {
|
||||
|
||||
$PrintName = Add-IcingaWhiteSpaceToString -Text $repo.Name -Length $MaxLength;
|
||||
$PrintName = [string]::Format('{0}=> {1}', $PrintName, $repo.Value.RemotePath);
|
||||
|
||||
$Repositories += @{
|
||||
'Caption' = $PrintName;
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsolePushIcingaRepository';
|
||||
'Help' = '';
|
||||
'Action' = @{
|
||||
'Command' = 'Show-IcingaWindowsManagementConsoleYesNoDialog';
|
||||
'Arguments' = @{
|
||||
'-Caption' = ([string]::Format('Move Icinga Repository "{0}" to top', $repo.Name));
|
||||
'-Command' = 'Push-IcingaRepository';
|
||||
'-CmdArguments' = @{
|
||||
'-Name' = $repo.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($Repositories.Count -ne 0) {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'Select a repository to move it to the top of the list' `
|
||||
-Entries $Repositories;
|
||||
} else {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'There are no local configured Icinga Repositories'
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
function Show-IcingaForWindowsManagementConsoleRemoveIcingaRepository()
|
||||
{
|
||||
[array]$Repositories = @();
|
||||
[array]$RepoList = Get-IcingaRepositories;
|
||||
[int]$MaxLength = Get-IcingaMaxTextLength -TextArray $RepoList.Name;
|
||||
|
||||
foreach ($repo in $RepoList) {
|
||||
|
||||
$PrintName = Add-IcingaWhiteSpaceToString -Text $repo.Name -Length $MaxLength;
|
||||
$PrintName = [string]::Format('{0}=> {1}', $PrintName, $repo.Value.RemotePath);
|
||||
|
||||
$Repositories += @{
|
||||
'Caption' = $PrintName;
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsoleRemoveIcingaRepository';
|
||||
'Help' = '';
|
||||
'Action' = @{
|
||||
'Command' = 'Show-IcingaWindowsManagementConsoleYesNoDialog';
|
||||
'Arguments' = @{
|
||||
'-Caption' = ([string]::Format('Remove Icinga Repository "{0}"', $repo.Name));
|
||||
'-Command' = 'Remove-IcingaRepository';
|
||||
'-CmdArguments' = @{
|
||||
'-Name' = $repo.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($Repositories.Count -ne 0) {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'Select a repository to remove it from the system' `
|
||||
-Entries $Repositories;
|
||||
} else {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'There are no local configured Icinga Repositories'
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
function Show-IcingaForWindowsManagementConsoleIcingaRepositoriesList()
|
||||
{
|
||||
[array]$Repositories = @();
|
||||
[array]$RepoList = Get-IcingaRepositories;
|
||||
[int]$MaxLength = Get-IcingaMaxTextLength -TextArray $RepoList.Name;
|
||||
|
||||
foreach ($repo in $RepoList) {
|
||||
|
||||
$PrintName = Add-IcingaWhiteSpaceToString -Text $repo.Name -Length $MaxLength;
|
||||
$PrintName = [string]::Format('{0}=> {1}', $PrintName, $repo.Value.RemotePath);
|
||||
|
||||
$Repositories += @{
|
||||
'Caption' = $PrintName;
|
||||
'Command' = 'Show-IcingaForWindowsManagementConsoleIcingaRepositoriesList';
|
||||
'Help' = '';
|
||||
'Disabled' = (-Not $repo.Value.Enabled);
|
||||
}
|
||||
}
|
||||
|
||||
if ($Repositories.Count -ne 0) {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'List of local configured Icinga Repositories' `
|
||||
-Entries $Repositories;
|
||||
} else {
|
||||
Show-IcingaForWindowsInstallerMenu `
|
||||
-Header 'There are no local configured Icinga Repositories'
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
function Show-IcingaForWindowsMenuRemoveComponents()
|
||||
{
|
||||
|
||||
[array]$UninstallFeatures = @();
|
||||
$AgentInstalled = (Get-IcingaAgentInstallation).Installed;
|
||||
$PowerShellServiceInstalled = Get-Service -Name 'icingapowershell' -ErrorAction SilentlyContinue;
|
||||
|
|
|
|||
Loading…
Reference in a new issue