From 8316a75c1499b86f994dc27aab7e0bd116a7c2e3 Mon Sep 17 00:00:00 2001 From: Michal Filka Date: Thu, 10 Apr 2025 10:44:05 +0200 Subject: [PATCH 1/4] Copy files needed for NVMe from instsys to the target --- service/lib/agama/storage/finisher.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/service/lib/agama/storage/finisher.rb b/service/lib/agama/storage/finisher.rb index 8d63950556..95566eb6f8 100644 --- a/service/lib/agama/storage/finisher.rb +++ b/service/lib/agama/storage/finisher.rb @@ -130,7 +130,9 @@ class CopyFilesStep < Step FILES = [ { dir: "/etc/udev/rules.d", file: "40-*" }, { dir: "/etc/udev/rules.d", file: "41-*" }, - { dir: "/etc/udev/rules.d", file: "70-persistent-net.rules" } + { dir: "/etc/udev/rules.d", file: "70-persistent-net.rules" }, + { dir: "/etc/nvme", file: "hostnqn" }, + { dir: "/etc/nvme", file: "hostid" } ].freeze def label From 19518a769ba5168ffceee76f76972e8125c7222c Mon Sep 17 00:00:00 2001 From: Michal Filka Date: Fri, 11 Apr 2025 11:05:49 +0200 Subject: [PATCH 2/4] Documentation --- service/lib/agama/storage/finisher.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/service/lib/agama/storage/finisher.rb b/service/lib/agama/storage/finisher.rb index 95566eb6f8..4e25eaccfb 100644 --- a/service/lib/agama/storage/finisher.rb +++ b/service/lib/agama/storage/finisher.rb @@ -131,6 +131,7 @@ class CopyFilesStep < Step { dir: "/etc/udev/rules.d", file: "40-*" }, { dir: "/etc/udev/rules.d", file: "41-*" }, { dir: "/etc/udev/rules.d", file: "70-persistent-net.rules" }, + # Copy /etc/nvme/host* to keep NVMe working after installation, bsc#1238038 { dir: "/etc/nvme", file: "hostnqn" }, { dir: "/etc/nvme", file: "hostid" } ].freeze From 7e7ffa7733708ed82b074ceba7436cda23782526 Mon Sep 17 00:00:00 2001 From: Michal Filka Date: Fri, 11 Apr 2025 11:09:24 +0200 Subject: [PATCH 3/4] Updated changelog --- service/package/rubygem-agama-yast.changes | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/service/package/rubygem-agama-yast.changes b/service/package/rubygem-agama-yast.changes index 300c3db69a..51a2ff56f8 100644 --- a/service/package/rubygem-agama-yast.changes +++ b/service/package/rubygem-agama-yast.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Apr 11 09:07:22 UTC 2025 - Michal Filka + +- bsc#1238038 + - copy NVMe configuration files from inst-sys to target + (gh#agama-project/agama#2257). + ------------------------------------------------------------------- Thu Apr 10 20:26:29 UTC 2025 - Josef Reidinger From 7e6a335e14356a9421c1a358bc5dc4a2f07298e2 Mon Sep 17 00:00:00 2001 From: Michal Filka Date: Sun, 13 Apr 2025 18:57:39 +0200 Subject: [PATCH 4/4] Get rid of hardcoded destination dir in storage finisher --- service/lib/agama/storage/finisher.rb | 13 ++++++++++--- service/test/agama/storage/finisher_test.rb | 12 ++++++++++++ service/test/fixtures/root_dir/etc/nvme/hostid | 0 service/test/fixtures/root_dir/etc/nvme/hostnqn | 0 4 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 service/test/fixtures/root_dir/etc/nvme/hostid create mode 100644 service/test/fixtures/root_dir/etc/nvme/hostnqn diff --git a/service/lib/agama/storage/finisher.rb b/service/lib/agama/storage/finisher.rb index 4e25eaccfb..3a37feb5f9 100644 --- a/service/lib/agama/storage/finisher.rb +++ b/service/lib/agama/storage/finisher.rb @@ -145,9 +145,12 @@ def run? end def run - target = File.join(Yast::Installation.destdir, UDEV_RULES_DIR) - FileUtils.mkdir_p(target) - FileUtils.cp(glob_files, target) + glob_files.each do |file| + target = File.dirname(file).sub(root_dir, dest_dir) + + FileUtils.mkdir_p(target) + FileUtils.cp(file, target) + end end private @@ -156,6 +159,10 @@ def root_dir ROOT_PATH end + def dest_dir + Yast::Installation.destdir + end + def glob_files Dir.glob(FILES.map { |f| File.join(root_dir, f[:dir], f[:file]) }) end diff --git a/service/test/agama/storage/finisher_test.rb b/service/test/agama/storage/finisher_test.rb index dcf14db305..e3232fe6f8 100644 --- a/service/test/agama/storage/finisher_test.rb +++ b/service/test/agama/storage/finisher_test.rb @@ -94,6 +94,11 @@ "41-qeth-0.0.0800.rules", "70-persistent-net.rules" ] end + let(:nvme_files) do + [ + "hostnqn", "hostid" + ] + end it "copies some specific udev rules to the target system when exist" do subject.run @@ -101,6 +106,13 @@ expect(File.exist?(File.join(destdir, "/etc/udev/rules.d/#{rule}"))).to eql(true) end end + + it "copies some specific NVMe configuration files to the target system" do + subject.run + nvme_files.each do |file| + expect(File.exist?(File.join(destdir, "/etc/nvme/#{file}"))).to eql(true) + end + end end end diff --git a/service/test/fixtures/root_dir/etc/nvme/hostid b/service/test/fixtures/root_dir/etc/nvme/hostid new file mode 100644 index 0000000000..e69de29bb2 diff --git a/service/test/fixtures/root_dir/etc/nvme/hostnqn b/service/test/fixtures/root_dir/etc/nvme/hostnqn new file mode 100644 index 0000000000..e69de29bb2