From 2ac3de5267ecf6fc3e28db1cb89b19f241f114c9 Mon Sep 17 00:00:00 2001 From: Lord Hepipud Date: Fri, 22 May 2020 12:08:42 +0200 Subject: [PATCH] Fixes FQDN to IP wizard conversion question --- .../misc/Start-IcingaAgentInstallWizard.psm1 | 12 ++++++++---- lib/core/tools/Convert-IcingaEndpointsToIP.psm1 | 15 +++++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/core/icingaagent/misc/Start-IcingaAgentInstallWizard.psm1 b/lib/core/icingaagent/misc/Start-IcingaAgentInstallWizard.psm1 index 075bafc..a8ebdae 100644 --- a/lib/core/icingaagent/misc/Start-IcingaAgentInstallWizard.psm1 +++ b/lib/core/icingaagent/misc/Start-IcingaAgentInstallWizard.psm1 @@ -285,11 +285,15 @@ function Start-IcingaAgentInstallWizard() if ((Get-IcingaAgentInstallerAnswerInput -Prompt ([string]::Format('Do you want to convert all possible provided FQDN address for endpoint/network configuration for Icinga 2 to plain IP-Address?', $CAPort)) -Default 'y').result -eq 1) { $InstallerArguments += "-ConvertEndpointIPConfig 1"; $ConvertEndpointIPConfig = $TRUE; - $EndpointsConversion = Convert-IcingaEndpointsToIPv4 -NetworkConfig $Endpoints; - if ($EndpointsConversion.HasErrors) { - Write-Host 'Not all of your endpoints configuration could be converted and was therefor dropped'; + if ($EndpointConnections.Count -eq 0) { + $EndpointsConversion = Convert-IcingaEndpointsToIPv4 -NetworkConfig $Endpoints; + } else { + $EndpointsConversion = Convert-IcingaEndpointsToIPv4 -NetworkConfig $EndpointConnections; } - $Endpoints = $EndpointsConversion.Network; + if ($EndpointsConversion.HasErrors) { + Write-Host ([string]::Format('Not all of your endpoint configuration could be resolved and is not reachable by this host. These endpoints were dropped: {0}', ([string]::Join(', ', $EndpointsConversion.Unresolved)))); + } + $EndpointConnections = $EndpointsConversion.Network; } else { $InstallerArguments += "-ConvertEndpointIPConfig 0"; $ConvertEndpointIPConfig = $FALSE; diff --git a/lib/core/tools/Convert-IcingaEndpointsToIP.psm1 b/lib/core/tools/Convert-IcingaEndpointsToIP.psm1 index 9305b88..0131db4 100644 --- a/lib/core/tools/Convert-IcingaEndpointsToIP.psm1 +++ b/lib/core/tools/Convert-IcingaEndpointsToIP.psm1 @@ -25,9 +25,10 @@ function Convert-IcingaEndpointsToIPv4() [array]$NetworkConfig ); - [array]$ResolvedNetwork = @(); - [bool]$HasUnresolved = $FALSE; - [string]$Domain = $ENV:UserDNSDomain; + [array]$ResolvedNetwork = @(); + [array]$UnresolvedNetwork = @(); + [bool]$HasUnresolved = $FALSE; + [string]$Domain = $ENV:UserDNSDomain; foreach ($entry in $NetworkConfig) { $Network = Get-IPConfigFromString -IPConfig $entry; @@ -48,13 +49,15 @@ function Convert-IcingaEndpointsToIPv4() ); $ResolvedNetwork += $entry.Replace($Network.address, $ResolvedIP); } catch { - $HasUnresolved = $TRUE; + $UnresolvedNetwork += $entry; + $HasUnresolved = $TRUE; } } } return @{ - 'Network' = $ResolvedNetwork; - 'HasErrors' = $HasUnresolved; + 'Network' = $ResolvedNetwork; + 'HasErrors' = $HasUnresolved; + 'Unresolved' = $UnresolvedNetwork; }; }