From 84b0063ba15e3f13dc02e9e7a38d66bfd46ccccf Mon Sep 17 00:00:00 2001 From: Nasar Khan Date: Tue, 30 Jan 2024 14:53:21 -0500 Subject: [PATCH] messaging hostname fqdn validation --- .../appliance_console/message_configuration.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/manageiq/appliance_console/message_configuration.rb b/lib/manageiq/appliance_console/message_configuration.rb index e7e0671c..0c9184ec 100644 --- a/lib/manageiq/appliance_console/message_configuration.rb +++ b/lib/manageiq/appliance_console/message_configuration.rb @@ -67,6 +67,8 @@ def ask_questions show_parameters return false unless agree("\nProceed? (Y/N): ") + return false if hostname?(message_server_host) && !hostname_fqdn?(message_server_host) + return false unless host_reachable?(message_server_host, "Message Server Host:") true @@ -177,6 +179,21 @@ def file_contains?(path, content) true end + def hostname?(host) + host !~ IP_REGEXP + end + + def hostname_fqdn?(host) + require "socket" + + fqdn = Addrinfo.getaddrinfo(Socket.gethostname, nil).first.getnameinfo.first + unless host == fqdn + return false + end + + true + end + def host_reachable?(host, what) require 'net/ping' say("Checking connectivity to #{host} ... ")