Hello community,

here is the log from the commit of package yast2-kdump for openSUSE:Factory 
checked in at 2017-04-12 17:08:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-kdump (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-kdump.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-kdump"

Wed Apr 12 17:08:38 2017 rev:80 rq:483756 version:3.2.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-kdump/yast2-kdump.changes  2017-02-18 
03:15:11.917405020 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-kdump.new/yast2-kdump.changes     
2017-04-12 17:08:39.799412935 +0200
@@ -1,0 +2,6 @@
+Wed Mar 29 14:25:05 UTC 2017 - [email protected]
+
+- fix dumping kernel with Xen hypervisor (bsc#1014136)
+- 3.2.3
+
+-------------------------------------------------------------------

Old:
----
  yast2-kdump-3.2.2.tar.bz2

New:
----
  yast2-kdump-3.2.3.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ yast2-kdump.spec ++++++
--- /var/tmp/diff_new_pack.gX903x/_old  2017-04-12 17:08:40.575303102 +0200
+++ /var/tmp/diff_new_pack.gX903x/_new  2017-04-12 17:08:40.575303102 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-kdump
-Version:        3.2.2
+Version:        3.2.3
 Release:        0
 Summary:        Configuration of kdump
 License:        GPL-2.0

++++++ yast2-kdump-3.2.2.tar.bz2 -> yast2-kdump-3.2.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-kdump-3.2.2/package/yast2-kdump.changes 
new/yast2-kdump-3.2.3/package/yast2-kdump.changes
--- old/yast2-kdump-3.2.2/package/yast2-kdump.changes   2017-02-15 
15:43:21.851607361 +0100
+++ new/yast2-kdump-3.2.3/package/yast2-kdump.changes   2017-03-30 
10:40:36.685023378 +0200
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+Wed Mar 29 14:25:05 UTC 2017 - [email protected]
+
+- fix dumping kernel with Xen hypervisor (bsc#1014136)
+- 3.2.3
+
+-------------------------------------------------------------------
 Tue Feb 14 12:08:46 UTC 2017 - [email protected]
 
 - Explicitly create the kdump initrd (bsc#1022496).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-kdump-3.2.2/package/yast2-kdump.spec 
new/yast2-kdump-3.2.3/package/yast2-kdump.spec
--- old/yast2-kdump-3.2.2/package/yast2-kdump.spec      2017-02-15 
15:43:21.851607361 +0100
+++ new/yast2-kdump-3.2.3/package/yast2-kdump.spec      2017-03-30 
10:40:36.685023378 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-kdump
-Version:        3.2.2
+Version:        3.2.3
 Release:        0
 Summary:        Configuration of kdump
 License:        GPL-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-kdump-3.2.2/src/autoyast-rnc/kdump.rnc 
new/yast2-kdump-3.2.3/src/autoyast-rnc/kdump.rnc
--- old/yast2-kdump-3.2.2/src/autoyast-rnc/kdump.rnc    2017-02-15 
15:43:21.855607361 +0100
+++ new/yast2-kdump-3.2.3/src/autoyast-rnc/kdump.rnc    2017-03-30 
10:40:36.685023378 +0200
@@ -6,15 +6,22 @@
 kdump =
   element kdump {
      (kdump_crash_kernel_value | kdump_crash_kernel_list)? &
+    # parameter specify crashkernel value for xen hypervisor
+     (kdump_crash_xen_kernel_value | kdump_crash_xen_kernel_list)? &
      kdump_add_crash_kernel? &
      kdump_general?
 }
 
 kdump_crash_kernel_value = element crash_kernel { text }
+kdump_crash_xen_kernel_value = element crash_xen_kernel { text }
 kdump_crash_kernel_list = element crash_kernel {
      LIST,
      kdump_crash_kernel_entry+
 }
+kdump_crash_xen_kernel_list = element crash_xen_kernel {
+     LIST,
+     kdump_crash_kernel_entry+
+}
 kdump_crash_kernel_entry = element listentry { text }
 kdump_add_crash_kernel = element add_crash_kernel { BOOLEAN }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-kdump-3.2.2/src/modules/Kdump.rb 
new/yast2-kdump-3.2.3/src/modules/Kdump.rb
--- old/yast2-kdump-3.2.2/src/modules/Kdump.rb  2017-02-15 15:43:21.899607361 
+0100
+++ new/yast2-kdump-3.2.3/src/modules/Kdump.rb  2017-03-30 10:40:36.717023378 
+0200
@@ -107,6 +107,10 @@
       # array values of kernel parameter
       @crashkernel_param_values = []
 
+      # array values of kernel parameter for Xen hypervisor
+      # see @crashkernel_param_values for details
+      @crashkernel_xen_param_values = []
+
       # Boolean option indicates add kernel param
       # "crashkernel"
       #
@@ -271,6 +275,7 @@
     def ReadKdumpKernelParam
       result = Bootloader.kernel_param(:common, "crashkernel")
       result = Bootloader.kernel_param(:xen_guest, "crashkernel") if result == 
:missing
+      xen_result = Bootloader.kernel_param(:xen_host, "crashkernel")
       # result could be [String,Array,:missing,:present]
       # String   - the value of the only occurrence
       # Array    - the values of the multiple occurrences
@@ -296,6 +301,14 @@
         @allocated_memory = get_allocated_memory(@crashkernel_param_values)
       end
 
+      if xen_result == :missing || xen_result == :present
+        @crashkernel_xen_param_values = xen_result
+      else
+        # Let's make sure it's an array
+        # filtering nils and empty entries bnc#991140
+        @crashkernel_xen_param_values = 
Array(xen_result).compact.reject(&:empty?)
+      end
+
       true
     end
 
@@ -464,14 +477,18 @@
         if Mode.autoinst || Mode.autoupgrade
           # Use the value(s) read by import
           crash_values = @crashkernel_param_values
+          crash_xen_values = @crashkernel_xen_param_values
           # Always write the value
           skip_crash_values = false
         else
           # Calculate the param values based on @allocated_memory
           crash_values = crash_kernel_values
+          crash_xen_values = crash_xen_kernel_values
           remove_offsets!(crash_values) if Mode.update
+          remove_offsets!(crash_xen_values) if Mode.update
           # Skip writing of param if it's already set to the desired values
           skip_crash_values = @crashkernel_param && @crashkernel_param_values 
== crash_values
+          skip_crash_values &&= @crashkernel_xen_param_values && 
@crashkernel_xen_param_values == crash_xen_values
         end
 
         if skip_crash_values
@@ -480,6 +497,7 @@
           Service.Restart(KDUMP_SERVICE_NAME) if 
Service.active?(KDUMP_SERVICE_NAME)
         else
           Bootloader.modify_kernel_params(:common, :xen_guest, :recovery, 
"crashkernel" => crash_values)
+          Bootloader.modify_kernel_params(:xen_host, "crashkernel" => 
crash_xen_values)
           # do mass write in installation to speed up, so skip this one
           if !Stage.initial
             old_progress = Progress.set(false)
@@ -487,9 +505,13 @@
             Progress.set(old_progress)
           end
           Builtins.y2milestone(
-            "[kdump] (WriteKdumpBootParameter) adding chrashkernel options 
with values: %1",
+            "[kdump] (WriteKdumpBootParameter) adding crashkernel options with 
values: %1",
             crash_values
           )
+          Builtins.y2milestone(
+            "[kdump] (WriteKdumpBootParameter) adding xen crashkernel options 
with values: %1",
+            crash_xen_values
+          )
           reboot_needed = true
           Service.Enable(KDUMP_SERVICE_NAME)
         end
@@ -497,7 +519,7 @@
         # If we don't need the param but it is there
         if @crashkernel_param
           #delete crashkernel parameter from bootloader
-          Bootloader.modify_kernel_params(:common, :xen_guest, :recovery, 
"crashkernel" => :missing)
+          Bootloader.modify_kernel_params(:common, :xen_guest, :recovery, 
:xen_host, "crashkernel" => :missing)
           if !Stage.initial
             old_progress = Progress.set(false)
             Bootloader.Write
@@ -931,8 +953,11 @@
     def Export
       crash_kernel = crash_kernel_values
       crash_kernel = crash_kernel[0] if crash_kernel.size == 1
+      crash_xen_kernel = crash_xen_kernel_values
+      crash_xen_kernel = crash_xen_kernel[0] if crash_xen_kernel.size == 1
       out = {
         "crash_kernel"     => crash_kernel,
+        "crash_xen_kernel" => crash_xen_kernel,
         "add_crash_kernel" => @add_crashkernel_param,
         "general"          => filterExport(@KDUMP_SETTINGS)
       }
@@ -966,6 +991,14 @@
         # Make sure it's an array
         @crashkernel_param_values = Array(crash_kernel_values)
       end
+
+      if Builtins.haskey(settings, "crash_xen_kernel")
+        # Make sure it's an array
+        @crashkernel_xen_param_values = 
Array(settings.fetch("crash_xen_kernel", ""))
+      else
+        @crashkernel_xen_param_values = Array(crash_xen_kernel_values)
+      end
+
       if settings.has_key?("add_crash_kernel")
         @add_crashkernel_param = settings["add_crash_kernel"]
       else
@@ -1133,6 +1166,31 @@
 
       result
     end
+
+    def crash_xen_kernel_values
+      # If the current values include "nasty" things and the user has not
+      # overriden the value of @crashkernel_list_ranges to autorize the
+      # modification.
+      # The old value (ensuring the Array format) will be returned.
+      if @crashkernel_list_ranges
+        return Array(@crashkernel_xen_param_values.dup)
+      end
+
+      result = []
+      high = @allocated_memory[:high]
+      low = @allocated_memory[:low]
+      sum = 0
+      sum += low.to_i if low
+      sum += high.to_i if high
+
+      if sum != 0
+        result << "#{sum}M\\<4G"
+      end
+
+      log.info "built xen crashkernel values are #{result}"
+
+      result
+    end
 
     # Removes offsets from all the crashkernel values
     #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-kdump-3.2.2/test/kdump_test.rb 
new/yast2-kdump-3.2.3/test/kdump_test.rb
--- old/yast2-kdump-3.2.2/test/kdump_test.rb    2017-02-15 15:43:21.939607361 
+0100
+++ new/yast2-kdump-3.2.3/test/kdump_test.rb    2017-03-30 10:40:36.721023378 
+0200
@@ -421,6 +421,7 @@
 
     context "during autoinstallation" do
       let(:bootlader_kernel_params) { ["73M,high"] }
+      let(:bootlader_xen_kernel_params) { ["73M\\<4G"] }
 
       before do
         allow(Yast::Mode).to receive(:autoinst).and_return true
@@ -430,12 +431,15 @@
       end
 
       context "if kdump is requested and a value for crashkernel is supplied" 
do
-        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => 
"the_value" } }
+        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => 
"the_value", "crash_xen_kernel" => "xen_value" } }
 
         it "writes the crashkernel value to the bootloader and enables the 
service" do
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, "crashkernel" => 
["the_value"])
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, "crashkernel" => ["xen_value"])
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Enable).with("kdump")
 
@@ -444,12 +448,15 @@
       end
 
       context "if kdump is requested but empty value for crashkernel is 
supplied" do
-        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => [] } }
+        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => [], 
"crash_xen_kernel" => [] } }
 
         it "writes an empty crashkernel in the bootloader and enables the 
service" do
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, "crashkernel" => [])
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, "crashkernel" => [])
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Enable).with("kdump")
 
@@ -464,6 +471,9 @@
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, "crashkernel" => 
bootlader_kernel_params)
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, "crashkernel" => bootlader_xen_kernel_params)
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Enable).with("kdump")
 
@@ -486,12 +496,15 @@
       end
 
       context "if kdump crashkernel contains an offset" do
-        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => 
"72M@128" } }
+        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => 
"72M@128", "crash_xen_kernel" => "72M@128"} }
 
         it "writes the crashkernel value without removing the offset" do
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, "crashkernel" => ["72M@128"])
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, "crashkernel" => ["72M@128"])
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Enable).with("kdump")
 
@@ -502,6 +515,7 @@
 
     context "during autoupgrade" do
       let(:bootlader_kernel_params) { ["75M,high"] }
+      let(:bootlader_xen_kernel_params) { ["75M\\<4G"] }
 
       before do
         allow(Yast::Mode).to receive(:autoupgrade).and_return true
@@ -511,12 +525,15 @@
       end
 
       context "if kdump is requested and a value for crashkernel is supplied" 
do
-        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => 
"the_value" } }
+        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => 
"the_value", "crash_xen_kernel" => "xen_value" } }
 
         it "writes the crashkernel value to the bootloader and enables the 
service" do
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, "crashkernel" => 
["the_value"])
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, "crashkernel" => ["xen_value"])
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Enable).with("kdump")
 
@@ -525,12 +542,15 @@
       end
 
       context "if kdump is requested but an empty value for crashkernel is 
supplied" do
-        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => [] } }
+        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => [], 
"crash_xen_kernel" => [] } }
 
         it "writes an empty crashkernel in the bootloader and enables the 
service" do
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, "crashkernel" => [])
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, "crashkernel" => [])
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Enable).with("kdump")
 
@@ -545,6 +565,9 @@
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, "crashkernel" => 
bootlader_kernel_params)
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, "crashkernel" => bootlader_xen_kernel_params)
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Enable).with("kdump")
 
@@ -567,12 +590,15 @@
       end
 
       context "if kdump crashkernel contains an offset" do
-        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => 
"72M@128" } }
+        let(:profile) { { "add_crash_kernel" => true, "crash_kernel" => 
"72M@128", "crash_xen_kernel" => "72M@128" } }
 
         it "writes the crashkernel value without removing the offset" do
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, "crashkernel" => ["72M@128"])
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, "crashkernel" => ["72M@128"])
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Enable).with("kdump")
 
@@ -586,16 +612,21 @@
         allow(Yast::Mode).to receive(:normal).and_return true
         allow(Yast::Popup).to receive(:Message)
         allow(Yast::Bootloader).to receive(:kernel_param).and_return 
kernel_param
+        allow(Yast::Bootloader).to receive(:kernel_param).with(:xen_host, 
"crashkernel").and_return xen_kernel_param
         Yast::Kdump.ReadKdumpKernelParam
       end
 
       context "crashkernel is already configured in the bootloader" do
         let(:kernel_param) { "64M" }
+        let(:xen_kernel_param) { "64M\\<4G" }
 
         it "updates crashkernel and enables service if crashkernel is changed" 
do
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, "crashkernel" => ["128M"])
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, "crashkernel" => ["128M\\<4G"])
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Enable).with("kdump")
 
@@ -617,7 +648,7 @@
 
           expect(Yast::Bootloader)
           .to receive(:modify_kernel_params)
-          .with(:common, :xen_guest, :recovery, "crashkernel" => :missing)
+          .with(:common, :xen_guest, :recovery, :xen_host, "crashkernel" => 
:missing)
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Disable).with("kdump")
 
@@ -628,11 +659,15 @@
 
       context "crashkernel is currently not configured in the bootloader" do
         let(:kernel_param) { :missing }
+        let(:xen_kernel_param) { :missing }
 
         it "writes chrashkernel and enables the service if kdump was enabled" 
do
           expect(Yast::Bootloader)
           .to receive(:modify_kernel_params)
           .with(:common, :xen_guest, :recovery, "crashkernel" => ["64M"])
+          expect(Yast::Bootloader)
+          .to receive(:modify_kernel_params)
+          .with(:xen_host, "crashkernel" => ["64M\\<4G"])
           expect(Yast::Bootloader).to receive(:Write)
           expect(Yast::Service).to receive(:Enable).with("kdump")
 
@@ -661,17 +696,22 @@
 
         context "if the value includes an offset" do
           let(:kernel_param) { "64M@512" }
+          let(:xen_kernel_param) { "64M@512" }
 
           it "removes the range" do
             expect(Yast::Bootloader)
               .to receive(:modify_kernel_params)
               .with(:common, :xen_guest, :recovery, {"crashkernel" => ["64M"]})
+            expect(Yast::Bootloader)
+              .to receive(:modify_kernel_params)
+              .with(:xen_host, "crashkernel" => ["64M\\<4G"])
             Yast::Kdump.WriteKdumpBootParameter
           end
         end
 
         context "if the value includes several ranges and an offset" do
           let(:kernel_param) { "-512M:64M,512M-:128M@1024" }
+          let(:xen_kernel_param) { "-512M:64M,512M-:128M@1024" }
 
           it "does not try to write a new value" do
             expect(Yast::Bootloader).to_not receive(:modify_kernel_params)
@@ -699,6 +739,9 @@
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, {"crashkernel" => ["64M"]})
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, "crashkernel" => ["64M\\<4G"])
           Yast::Kdump.WriteKdumpBootParameter
         end
       end
@@ -710,6 +753,9 @@
           expect(Yast::Bootloader)
             .to receive(:modify_kernel_params)
             .with(:common, :xen_guest, :recovery, {"crashkernel" => 
["-512M:64M,512M-:128M"]})
+          expect(Yast::Bootloader)
+            .to receive(:modify_kernel_params)
+            .with(:xen_host, {"crashkernel" => ["-512M:64M,512M-:128M"]})
           Yast::Kdump.WriteKdumpBootParameter
         end
       end


Reply via email to