From a68e38e19868aeb1d66dfe42b8321b2430e9090d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Imobach=20Gonz=C3=A1lez=20Sosa?= Date: Mon, 29 Mar 2021 12:51:59 +0100 Subject: [PATCH 1/2] Use the ESSID to name the NM config file --- .../connection_config_writer.rb | 12 +++++- .../connection_config_writer_test.rb | 39 ++++++++++++++++++- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/src/lib/y2network/network_manager/connection_config_writer.rb b/src/lib/y2network/network_manager/connection_config_writer.rb index 6f5a2bed2..dc0779362 100644 --- a/src/lib/y2network/network_manager/connection_config_writer.rb +++ b/src/lib/y2network/network_manager/connection_config_writer.rb @@ -39,7 +39,7 @@ class ConnectionConfigWriter def write(conn, old_conn = nil, opts = {}) return if conn == old_conn - path = SYSTEM_CONNECTIONS_PATH.join(conn.name).sub_ext(FILE_EXT) + path = SYSTEM_CONNECTIONS_PATH.join(file_basename_for(conn)).sub_ext(FILE_EXT) file = CFA::NmConnection.new(path) handler_class = find_handler_class(conn.type) return nil if handler_class.nil? @@ -74,6 +74,16 @@ def find_handler_class(type) "Connection handler could not be loaded: #{e.message}" nil end + + # Returns the file base name for the given connection + # + # @param conn [ConnectionConfig::Base] + # @return [String] + def file_basename_for(conn) + return conn.essid.to_s if conn.is_a?(ConnectionConfig::Wireless) + + conn.name + end end end end diff --git a/test/y2network/network_manager/connection_config_writer_test.rb b/test/y2network/network_manager/connection_config_writer_test.rb index fa0cf38a7..5195372bb 100644 --- a/test/y2network/network_manager/connection_config_writer_test.rb +++ b/test/y2network/network_manager/connection_config_writer_test.rb @@ -21,6 +21,7 @@ require "y2network/network_manager/connection_config_writer" require "y2network/network_manager/connection_config_writers/ethernet" +require "y2network/network_manager/connection_config_writers/wireless" require "y2network/connection_config/ethernet" require "y2network/interface_type" require "cfa/nm_connection" @@ -71,10 +72,10 @@ allow(CFA::NmConnection).to receive(:new).and_return(file) allow(writer).to receive(:ensure_permissions) allow(::File).to receive(:exist?).with(Pathname.new(path)).and_return(true) + allow(::File).to receive(:exist?).and_call_original end it "uses the appropiate handler" do - expect(writer).to receive(:require).and_return(handler) expect(handler).to receive(:write).with(conn, {}) writer.write(conn) end @@ -90,6 +91,42 @@ end end + it "uses the connection name as base file name" do + expect(CFA::NmConnection).to receive(:new) do |path| + expect(path.basename).to eq(Pathname.new("eth0.nmconnection")) + end.and_return(file) + writer.write(conn) + end + + context "when writing a wireless connection" do + let(:conn) do + Y2Network::ConnectionConfig::Wireless.new.tap do |wlo1| + wlo1.name = "wlo1" + wlo1.interface = "wlo1" + wlo1.ip = ip_config + wlo1.essid = "MY_WIRELESS" + end + end + + let(:handler) do + instance_double( + Y2Network::NetworkManager::ConnectionConfigWriters::Wireless, write: nil + ) + end + + before do + allow(Y2Network::NetworkManager::ConnectionConfigWriters::Wireless).to receive(:new) + .and_return(handler) + end + + it "uses the ESSID as the base file name" do + expect(CFA::NmConnection).to receive(:new) do |path| + expect(path.basename).to eq(Pathname.new("MY_WIRELESS.nmconnection")) + end.and_return(file) + writer.write(conn) + end + end + it "does nothing if the connection has not changed" end end From 3aeaf6ec8b6b66c0dfaeb7fe6cc2a9665e0f2f66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Imobach=20Gonz=C3=A1lez=20Sosa?= Date: Mon, 29 Mar 2021 12:55:37 +0100 Subject: [PATCH 2/2] Bump version and update changes file --- package/yast2-network.changes | 7 +++++++ package/yast2-network.spec | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/package/yast2-network.changes b/package/yast2-network.changes index 2dea849ad..c2e8727bf 100644 --- a/package/yast2-network.changes +++ b/package/yast2-network.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Mar 29 11:52:08 UTC 2021 - Imobach Gonzalez Sosa + +- Use the ESSID to name the NetworkManager configuration files + for wireless networks (bsc#1183733). +- 4.3.63 + ------------------------------------------------------------------- Thu Mar 18 12:59:31 UTC 2021 - Knut Anderssen diff --git a/package/yast2-network.spec b/package/yast2-network.spec index d9ddb549f..b79bd0c9d 100644 --- a/package/yast2-network.spec +++ b/package/yast2-network.spec @@ -17,7 +17,7 @@ Name: yast2-network -Version: 4.3.62 +Version: 4.3.63 Release: 0 Summary: YaST2 - Network Configuration License: GPL-2.0-only