[interface[:interface], name]
end.to_h
-node[:networking][:interfaces].each do |name, interface|
- if interface[:interface] =~ /^(.*)\.(\d+)$/
- vlan_interface = Regexp.last_match(1)
- vlan_id = Regexp.last_match(2)
-
- parent = interfaces[vlan_interface] || "vlans_#{vlan_interface}"
-
- node.default_unless[:networking][:interfaces][parent][:interface] = vlan_interface
- node.default_unless[:networking][:interfaces][parent][:vlans] = []
-
- node.default[:networking][:interfaces][parent][:vlans] << vlan_id
- end
+node[:networking][:interfaces].each do |_, interface|
+ next unless interface[:interface] =~ /^(.*)\.(\d+)$/
- next unless interface[:role] && (role = node[:networking][:roles][interface[:role]])
+ vlan_interface = Regexp.last_match(1)
+ vlan_id = Regexp.last_match(2)
- if interface[:inet] && role[:inet]
- node.default_unless[:networking][:interfaces][name][:inet][:prefix] = role[:inet][:prefix]
- node.default_unless[:networking][:interfaces][name][:inet][:gateway] = role[:inet][:gateway]
- node.default_unless[:networking][:interfaces][name][:inet][:routes] = role[:inet][:routes]
- node.default_unless[:networking][:interfaces][name][:inet][:rules] = role[:inet][:rules]
- end
+ parent = interfaces[vlan_interface] || "vlans_#{vlan_interface}"
- if interface[:inet6] && role[:inet6]
- node.default_unless[:networking][:interfaces][name][:inet6][:prefix] = role[:inet6][:prefix]
- node.default_unless[:networking][:interfaces][name][:inet6][:gateway] = role[:inet6][:gateway]
- node.default_unless[:networking][:interfaces][name][:inet6][:routes] = role[:inet6][:routes]
- node.default_unless[:networking][:interfaces][name][:inet6][:rules] = role[:inet6][:rules]
- end
+ node.default_unless[:networking][:interfaces][parent][:interface] = vlan_interface
+ node.default_unless[:networking][:interfaces][parent][:vlans] = []
- node.default_unless[:networking][:interfaces][name][:metric] = role[:metric]
- node.default_unless[:networking][:interfaces][name][:zone] = role[:zone]
+ node.default[:networking][:interfaces][parent][:vlans] << vlan_id
end
node[:networking][:interfaces].each do |_, interface|