in cookbooks/fb_network_scripts/libraries/rh_int_helpers.rb [140:173]
def get_changed_keys(current, new)
changed_keys = []
Chef::Log.debug("fb_network_scripts: current #{current}, new #{new}")
current_keys = Set.new(current.keys)
new_keys = Set.new(new.keys)
added_keys = new_keys - current_keys
removed_keys = current_keys - new_keys
changed_keys += added_keys.to_a unless added_keys.empty?
changed_keys += removed_keys.to_a unless removed_keys.empty?
common_keys = current_keys & new_keys
common_keys.each do |key|
case key
when 'IPV6ADDR'
have = get_ip_object(current[key], true)
want = get_ip_object(new[key])
changed_keys << key unless have == want
when 'IPV6ADDR_SECONDARIES'
have = Set.new(
current[key].split.sort.map { |x| get_ip_object(x, true) },
)
want = Set.new(new[key].split.sort.map { |x| get_ip_object(x) })
changed_keys << key unless have == want
else
changed_keys << key unless current[key] == new[key]
end
end
Chef::Log.debug("fb_network_scripts: changed is #{changed_keys}")
changed_keys.sort.uniq
end