diff --git a/package/yast2-network.changes b/package/yast2-network.changes index 81d47c725..89643478b 100644 --- a/package/yast2-network.changes +++ b/package/yast2-network.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Sep 24 09:58:00 UTC 2019 - Knut Anderssen + +- bsc#1136934 + - Do not offer empty name devices as VLAN etherdevice candidates. +- 4.1.53 + ------------------------------------------------------------------- Tue Sep 10 07:40:04 UTC 2019 - Michal Filka diff --git a/src/include/network/lan/address.rb b/src/include/network/lan/address.rb index 4acf87118..0f97ac526 100644 --- a/src/include/network/lan/address.rb +++ b/src/include/network/lan/address.rb @@ -475,63 +475,28 @@ def StoreBridge(key, _event) # @param _key [String] id of the widget def InitVLANSlave(_key) items = [] - # unconfigured devices - Builtins.foreach( - Convert.convert( - LanItems.Items, - from: "map ", - to: "map " - ) - ) do |_i, a| - if Builtins.size(Ops.get_string(a, "ifcfg", "")) == 0 - dev_name = Ops.get_string(a, ["hwinfo", "dev_name"], "") - items = Builtins.add( - items, - Item( - Id(dev_name), - dev_name, - dev_name == Ops.get_string(@settings, "ETHERDEVICE", "") ? true : false - ) - ) - end + LanItems.Items.each do |_i, a| + next unless a.fetch("ifcfg", "").empty? + dev_name = a.dig("hwinfo", "dev_name") || "" + next if dev_name.empty? + selected = dev_name == @settings.fetch("ETHERDEVICE", "") + items << Item(Id(dev_name), dev_name, selected) end # configured devices configurations = NetworkInterfaces.FilterDevices("netcard") - Builtins.foreach( - Builtins.splitstring( - Ops.get(NetworkInterfaces.CardRegex, "netcard", ""), - "|" - ) - ) do |devtype| - Builtins.foreach( - Convert.convert( - Map.Keys(Ops.get_map(configurations, devtype, {})), - from: "list", - to: "list " - ) - ) do |devname| - if Builtins.contains(["vlan"], NetworkInterfaces.GetType(devname)) - next - end - items = Builtins.add( - items, - Item( - Id(devname), - Builtins.sformat( - "%1 - %2", - devname, - Ops.get_string(configurations, [devtype, devname, "NAME"], "") - ), - Ops.get_string(@settings, "ETHERDEVICE", "") == devname - ) - ) + NetworkInterfaces.CardRegex["netcard"].split("|").each do |devtype| + (configurations[devtype] || {}).keys.each do |devname| + next if NetworkInterfaces.GetType(devname) == "vlan" + description = configurations.dig(devtype, devname, "NAME") + selected = devname == @settings.fetch("ETHERDEVICE", "") + items << Item(Id(devname), "#{devname} - #{description}", selected) end end UI.ChangeWidget(Id(:vlan_eth), :Items, items) UI.ChangeWidget( Id(:vlan_id), :Value, - Ops.get_integer(@settings, "VLAN_ID", 0) + @settings.fetch("VLAN_ID", 0).to_i ) nil