From 11959802efefa57f0b6cefa16556c8dafc565d06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Alejandro=20Anderssen=20Gonz=C3=A1lez?= Date: Wed, 10 Jul 2019 09:44:46 +0100 Subject: [PATCH] Use current sysconfig readers and infer type from config --- src/lib/network/clients/save_network.rb | 14 ++++++++------ src/lib/y2network/autoinst/config_reader.rb | 20 ++++++++------------ src/modules/Lan.rb | 2 +- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/lib/network/clients/save_network.rb b/src/lib/network/clients/save_network.rb index bd42a62e2..f8e392bbb 100644 --- a/src/lib/network/clients/save_network.rb +++ b/src/lib/network/clients/save_network.rb @@ -247,13 +247,15 @@ def configure_hosts # It creates a proposal in case of common installation. In case of AY # installation it does full import of section def configure_lan - NetworkAutoconfiguration.instance.configure_virtuals + NetworkAutoYast.instance.configure_lan if Mode.autoinst - if Mode.autoinst - NetworkAutoYast.instance.configure_lan - else - NetworkAutoconfiguration.instance.configure_dns - end + # FIXME: Really make sense to configure it in autoinst mode? At least the + # proposal should be done and checked after lan configuration and in case + # that a bridge configuratio is present in the profile it should be + # skipped or even only done in case of missing `networking -> interfaces` + # section + NetworkAutoconfiguration.instance.configure_virtuals + NetworkAutoconfiguration.instance.configure_dns unless Mode.autoinst # this depends on DNS configuration configure_hosts diff --git a/src/lib/y2network/autoinst/config_reader.rb b/src/lib/y2network/autoinst/config_reader.rb index 1b13ea518..74de02508 100644 --- a/src/lib/y2network/autoinst/config_reader.rb +++ b/src/lib/y2network/autoinst/config_reader.rb @@ -23,6 +23,7 @@ require "y2network/autoinst/routing_reader" require "y2network/autoinst/dns_reader" require "y2network/autoinst_profile/networking_section" +require "y2network/sysconfig/interfaces_reader" Yast.import "Lan" @@ -43,7 +44,9 @@ def initialize(section) # @return [Y2Network::Config] Network configuration def config attrs = { source: :sysconfig } - attrs[:interfaces] = find_interfaces + # FIXME: implement prper readers for AutoYaST + attrs[:interfaces] = interfaces_reader.interfaces + attrs[:connections] = interfaces_reader.connections attrs[:routing] = RoutingReader.new(section.routing).config if section.routing attrs[:dns] = DNSReader.new(section.dns).config if section.dns Y2Network::Config.new(attrs) @@ -51,18 +54,11 @@ def config private - # Find configured network interfaces + # Returns an interfaces reader instance # - # Configured interfaces have a configuration (ifcfg file) assigned. - # - # @return [Array] Detected interfaces - # @see Yast::NetworkInterfaces.Read - def find_interfaces - Yast::NetworkInterfaces.Read - # TODO: for the time being, we are just relying in the underlying stuff. - Yast::NetworkInterfaces.List("").map do |name| - Y2Network::Interface.new(name) - end + # @return [SysconfigInterfaces] Interfaces reader + def interfaces_reader + @interfaces_reader ||= Y2Network::Sysconfig::InterfacesReader.new end end end diff --git a/src/modules/Lan.rb b/src/modules/Lan.rb index 818cc4ad3..a488ed59a 100644 --- a/src/modules/Lan.rb +++ b/src/modules/Lan.rb @@ -681,7 +681,7 @@ def FromAY(input) Builtins.foreach(interfaces) do |devname, if_data| # devname can be in old-style fashion (eth-bus-). So, convert it devname = LanItems.getDeviceName(devname) - type = NetworkInterfaces.GetType(devname) + type = NetworkInterfaces.GetTypeFromIfcfgOrName(devname, if_data) d = Ops.get(devices, type, {}) Ops.set(d, devname, if_data) Ops.set(devices, type, d)