mirror of
https://github.com/Icinga/icinga-powershell-framework.git
synced 2025-12-20 23:00:35 -05:00
Adds extended repo management to IMC
This commit is contained in:
parent
8b29f505b3
commit
82bd5f1059
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