From e67ea5c139318ab8d6b714dcbab268857f84ad86 Mon Sep 17 00:00:00 2001 From: Evgeniy L Date: Tue, 25 Feb 2014 15:30:57 +0400 Subject: [PATCH] Add additional checking of net type in agent When we call method IPAddr.new("some non api string") it stuck on several seconds in VMware, with several interfaces we have several minutes additional timeout. Change-Id: I25e784eef2e471922cb5128c0cbf94eff8ba3726 Closes-bug: #1284571 --- bin/agent | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/agent b/bin/agent index 70698f43f5..432fda2fb8 100755 --- a/bin/agent +++ b/bin/agent @@ -442,7 +442,10 @@ class NodeAgent def _master_ip_and_mac @os[:network][:interfaces].each do |_, intinfo| intinfo[:addresses].each do |k, v| - if !(IPAddr.new(k) rescue nil).nil? + # Here we need to check family because IPAddr.new with bad + # data works very slow on some environments + # https://bugs.launchpad.net/fuel/+bug/1284571 + if v[:family] == 'inet' && !(IPAddr.new(k) rescue nil).nil? net = IPAddr.new("#{k}/#{v[:netmask]}") if net.include? @api_ip mac = intinfo[:addresses].find { |_, info| info[:family] == 'lladdr' }[0]