mirror of
https://github.com/Icinga/icinga-powershell-framework.git
synced 2025-12-20 23:00:35 -05:00
Merge pull request #166 from Icinga:fix/agent_version_fetching_and_local_sources
Fix: Fixes release fetching of Agent with correct comparison and proper support for local sources Fixes fetching of Icinga Agent MSI packages by correctly comparing versions to ensure we always use the latest version and fixes `release` usage for local/network drive sources.
This commit is contained in:
commit
054459cbce
2 changed files with 60 additions and 24 deletions
|
|
@ -42,6 +42,7 @@ Released closed milestones can be found on [GitHub](https://github.com/Icinga/ic
|
|||
* [#152](https://github.com/Icinga/icinga-powershell-framework/issues/152) Fixes incorrect rendering for empty arrays which used `$null` incorrectly instead of `@()` and fixed ValidateSet which now also supports arrays as data type
|
||||
* [#159](https://github.com/Icinga/icinga-powershell-framework/pull/159) Fixes crash during update of the Icinga Framework, caused by the newly introduced experimental feature for code caching
|
||||
* [#165](https://github.com/Icinga/icinga-powershell-framework/pull/165) Fixes fetching for Icinga Agent certificate for REST-Api daemon on upper/lower case hostname mismatch
|
||||
* [#166](https://github.com/Icinga/icinga-powershell-framework/pull/166) Fixes fetching of Icinga Agent MSI packages by correctly comparing versions to ensure we always use the latest version and fixes `release` usage for local/network drive sources
|
||||
|
||||
## 1.2.0 (2020-08-28)
|
||||
|
||||
|
|
|
|||
|
|
@ -19,10 +19,35 @@ function Get-IcingaAgentMSIPackage()
|
|||
$ProgressPreference = "SilentlyContinue";
|
||||
$Architecture = Get-IcingaAgentArchitecture;
|
||||
$LastUpdate = $null;
|
||||
$Version = $Version.ToLower();
|
||||
|
||||
if ($Version -eq 'snapshot' -Or $Version -eq 'release') {
|
||||
if (Test-Path $Source) {
|
||||
$Content = Get-ChildItem -Path $Source;
|
||||
|
||||
foreach ($entry in $Content) {
|
||||
$PackageVersion = ($entry.Name.Split('-')[1]).Replace('v', '');
|
||||
|
||||
if ($Version -eq 'snapshot') {
|
||||
if ($PackageVersion -eq 'snapshot') {
|
||||
$UseVersion = 'snapshot';
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($PackageVersion -eq 'snapshot') {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($null -eq $UseVersion -Or [version]$PackageVersion -ge [version]$UseVersion) {
|
||||
$UseVersion = $PackageVersion;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$Content = (Invoke-IcingaWebRequest -Uri $Source -UseBasicParsing).RawContent.Split("`r`n");
|
||||
$UsePackage = $null;
|
||||
$UseVersion = $null;
|
||||
|
||||
foreach ($line in $Content) {
|
||||
if ($line -like '*.msi*' -And $line -like "*$Architecture.msi*") {
|
||||
|
|
@ -37,20 +62,30 @@ function Get-IcingaAgentMSIPackage()
|
|||
$LastUpdate = $LastUpdate.SubString(0, $LastUpdate.IndexOf(' '));
|
||||
$LastUpdate = $LastUpdate.Replace('-', '');
|
||||
$MSIPackage = [string]::Format('{0}.msi', $MSIPackage);
|
||||
$PackageVersion = ($MSIPackage.Split('-')[1]).Replace('v', '');
|
||||
|
||||
if ($Version -eq 'snapshot') {
|
||||
if ($line -like '*snapshot*') {
|
||||
$UsePackage = $MSIPackage;
|
||||
if ($PackageVersion -eq 'snapshot') {
|
||||
$UseVersion = 'snapshot';
|
||||
break;
|
||||
}
|
||||
} elseif ($Version -eq 'release') {
|
||||
if ($line -like '*snapshot*' -Or $line -like '*-rc*') {
|
||||
continue;
|
||||
}
|
||||
$UsePackage = $MSIPackage;
|
||||
break;
|
||||
|
||||
if ($null -eq $UseVersion -Or [version]$PackageVersion -ge [version]$UseVersion) {
|
||||
$UseVersion = $PackageVersion;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($Version -eq 'snapshot') {
|
||||
$UsePackage = [string]::Format('Icinga2-{0}-{1}.msi', $UseVersion, $Architecture);
|
||||
} else {
|
||||
$UsePackage = [string]::Format('Icinga2-v{0}-{1}.msi', $UseVersion, $Architecture);
|
||||
}
|
||||
} else {
|
||||
$UsePackage = [string]::Format('Icinga2-v{0}-{1}.msi', $Version, $Architecture);
|
||||
}
|
||||
|
|
@ -67,7 +102,7 @@ function Get-IcingaAgentMSIPackage()
|
|||
|
||||
return @{
|
||||
'InstallerPath' = $DownloadPath;
|
||||
'Version' = ($UsePackage).Replace('Icinga2-v', '').Replace([string]::Format('-{0}.msi', $Architecture), '')
|
||||
'Version' = ($UsePackage).Replace('Icinga2-v', '').Replace('Icinga2-', '').Replace([string]::Format('-{0}.msi', $Architecture), '')
|
||||
'LastUpdate' = $LastUpdate;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue