From 6c2aad1a7980bd09f7b28745324888cd7a224ee8 Mon Sep 17 00:00:00 2001 From: Josef Reidinger Date: Tue, 26 Feb 2019 09:28:42 +0100 Subject: [PATCH] remove resume if user wants noresume (bsc#1079537) --- src/lib/bootloader/grub2base.rb | 17 +++++++++++++---- test/grub2base_test.rb | 6 +++--- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/lib/bootloader/grub2base.rb b/src/lib/bootloader/grub2base.rb index e430e468f..d2a464def 100644 --- a/src/lib/bootloader/grub2base.rb +++ b/src/lib/bootloader/grub2base.rb @@ -198,11 +198,20 @@ def merge_grub_default(other) log.info "before merge other #{other.inspect}" KERNEL_FLAVORS_METHODS.each do |method| - next if other.public_send(method).empty? + other_params = other.public_send(method) + default_params = default.public_send(method) + next if other_params.empty? - new_kernel_params = default.public_send(method).serialize + - " " + other.public_send(method).serialize - default.public_send(method).replace(new_kernel_params) + default_serialize = default_params.serialize + # handle specially noresume as it should lead to remove all other resume + if other.public_send(method).parameter("noresume") + default_serialize.gsub!(/resume=\S+/, "") + end + + new_kernel_params = default_serialize + " " + other_params.serialize + + + default_params.replace(new_kernel_params) end merge_attributes(default, other) diff --git a/test/grub2base_test.rb b/test/grub2base_test.rb index 1f828f0ee..9d01a253f 100644 --- a/test/grub2base_test.rb +++ b/test/grub2base_test.rb @@ -447,12 +447,12 @@ end it "for kernel line place subject params and then merged ones" do - subject.grub_default.kernel_params.replace("verbose debug=true") - other.grub_default.kernel_params.replace("silent debug=false 3") + subject.grub_default.kernel_params.replace("verbose debug=true resume=/dev/sda1") + other.grub_default.kernel_params.replace("silent noresume debug=false 3") subject.merge(other) - expect(subject.grub_default.kernel_params.serialize).to eq "verbose debug=true silent debug=false 3" + expect(subject.grub_default.kernel_params.serialize).to eq "verbose debug=true silent noresume debug=false 3" end it "use grub2 password configuration specified in merged object" do