Hello community,

here is the log from the commit of package yast2-reipl for openSUSE:Factory 
checked in at 2014-05-02 19:23:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-reipl (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-reipl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-reipl"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-reipl/yast2-reipl.changes  2013-11-17 
09:59:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.yast2-reipl.new/yast2-reipl.changes     
2014-05-02 19:23:54.000000000 +0200
@@ -1,0 +2,6 @@
+Fri May  2 12:21:49 UTC 2014 - [email protected]
+
+- adapt module to SLE12 code base (bcn#875515) ( patch by Ihno )
+- 3.1.2
+
+-------------------------------------------------------------------

Old:
----
  yast2-reipl-3.1.1.tar.bz2

New:
----
  yast2-reipl-3.1.2.tar.bz2

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

Other differences:
------------------
++++++ yast2-reipl.spec ++++++
--- /var/tmp/diff_new_pack.QYoFkB/_old  2014-05-02 19:23:55.000000000 +0200
+++ /var/tmp/diff_new_pack.QYoFkB/_new  2014-05-02 19:23:55.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package yast2-reipl
 #
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-reipl
-Version:        3.1.1
+Version:        3.1.2
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -31,7 +31,7 @@
 BuildRequires:  update-desktop-files
 BuildRequires:  yast2
 BuildRequires:  yast2-bootloader
-BuildRequires:  yast2-devtools >= 3.0.6
+BuildRequires:  yast2-devtools >= 3.1.10
 BuildRequires:  yast2-storage
 BuildRequires:  yast2-testsuite
 

++++++ yast2-reipl-3.1.1.tar.bz2 -> yast2-reipl-3.1.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-reipl-3.1.1/VERSION 
new/yast2-reipl-3.1.2/VERSION
--- old/yast2-reipl-3.1.1/VERSION       2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/VERSION       1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-3.1.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-reipl-3.1.1/package/yast2-reipl.changes 
new/yast2-reipl-3.1.2/package/yast2-reipl.changes
--- old/yast2-reipl-3.1.1/package/yast2-reipl.changes   2013-11-15 
13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/package/yast2-reipl.changes   2014-05-02 
14:49:51.000000000 +0200
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+Fri May  2 12:21:49 UTC 2014 - [email protected]
+
+- adapt module to SLE12 code base (bcn#875515) ( patch by Ihno )
+- 3.1.2
+
+-------------------------------------------------------------------
 Wed Nov 13 15:56:18 UTC 2013 - [email protected]
 
 - Add explicit COPYING file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-reipl-3.1.1/package/yast2-reipl.spec 
new/yast2-reipl-3.1.2/package/yast2-reipl.spec
--- old/yast2-reipl-3.1.1/package/yast2-reipl.spec      2013-11-15 
13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/package/yast2-reipl.spec      2014-05-02 
14:49:51.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-reipl
-Version:        3.1.1
+Version:        3.1.2
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -31,7 +31,7 @@
 BuildRequires:  update-desktop-files
 BuildRequires:  yast2
 BuildRequires:  yast2-bootloader
-BuildRequires:  yast2-devtools >= 3.0.6
+BuildRequires:  yast2-devtools >= 3.1.10
 BuildRequires:  yast2-storage
 BuildRequires:  yast2-testsuite
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/inst_reipl.rb 
new/yast2-reipl-3.1.2/src/clients/inst_reipl.rb
--- old/yast2-reipl-3.1.1/src/clients/inst_reipl.rb     2013-11-15 
13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/inst_reipl.rb     2014-05-02 
14:49:51.000000000 +0200
@@ -46,8 +46,7 @@
       Yast.include self, "reipl/dialogs.rb"
 
       # The main ()
-      Builtins.y2milestone("----------------------------------------")
-      Builtins.y2milestone("Reipl module started")
+      Builtins.y2milestone("Reipl module started 
----------------------------------------")
 
       @args = GetInstArgs.argmap
 
@@ -64,8 +63,7 @@
       @ret = Convert.to_symbol(ConfigureDialog())
 
       # Finish
-      Builtins.y2milestone("Reipl module finished")
-      Builtins.y2milestone("----------------------------------------")
+      Builtins.y2milestone("Reipl module finished 
----------------------------------------")
 
       @ret 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/inst_reiplauto.rb 
new/yast2-reipl-3.1.2/src/clients/inst_reiplauto.rb
--- old/yast2-reipl-3.1.1/src/clients/inst_reiplauto.rb 2013-11-15 
13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/inst_reiplauto.rb 2014-05-02 
14:49:51.000000000 +0200
@@ -43,19 +43,12 @@
       Yast.import "Confirm"
       Yast.import "Storage"
       # The main ()
-      Builtins.y2milestone("----------------------------------------")
-      Builtins.y2milestone("inst_reiplauto started")
-
-      if !Reipl.SanityCheck
-        Builtins.y2milestone("SanityCheck failed!")
-        return :cancel
-      end
+      Builtins.y2milestone("inst_reiplauto started 
----------------------------------------")
 
       @args = GetInstArgs.argmap
 
-      if Ops.get_string(@args, "first_run", "yes") != "no"
-        Ops.set(@args, "first_run", "yes")
-      end
+      # first run unless explicitelly mentioned
+      @args["first_run"] = "yes" if @args["first_run"] != "no"
 
       Wizard.HideAbortButton if Mode.mode == "firstboot"
 
@@ -63,12 +56,8 @@
 
       @configuration = Reipl.ReadState
 
-      if @configuration != nil
-        @configuration = Reipl.ModifyReiplWithBootPartition(@configuration)
-
-        if @configuration != nil
-          Reipl.WriteState(@configuration)
-        else
+      if [email protected]?
+        if !Reipl.IPL_from_boot_zipl
           Builtins.y2error("Could not modify reipl configuration")
         end
       else
@@ -76,10 +65,9 @@
       end
 
       # Finish
-      Builtins.y2milestone("inst_reiplauto finished")
-      Builtins.y2milestone("----------------------------------------")
+      Builtins.y2milestone("inst_reiplauto finished 
----------------------------------------")
 
-      :next 
+      :next
 
       # EOF
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/reipl.rb 
new/yast2-reipl-3.1.2/src/clients/reipl.rb
--- old/yast2-reipl-3.1.1/src/clients/reipl.rb  2013-11-15 13:12:39.000000000 
+0100
+++ new/yast2-reipl-3.1.2/src/clients/reipl.rb  2014-05-02 14:49:51.000000000 
+0200
@@ -38,8 +38,7 @@
       textdomain "reipl"
 
       # The main ()
-      Builtins.y2milestone("----------------------------------------")
-      Builtins.y2milestone("Reipl module started")
+      Builtins.y2milestone("Reipl module started 
----------------------------------------")
 
       Yast.import "Progress"
       Yast.import "Report"
@@ -89,8 +88,7 @@
       Builtins.y2debug("ret=%1", @ret)
 
       # Finish
-      Builtins.y2milestone("Reipl module finished")
-      Builtins.y2milestone("----------------------------------------")
+      Builtins.y2milestone("Reipl module finished 
----------------------------------------")
 
       deep_copy(@ret) 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/reipl_auto.rb 
new/yast2-reipl-3.1.2/src/clients/reipl_auto.rb
--- old/yast2-reipl-3.1.1/src/clients/reipl_auto.rb     2013-11-15 
13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/reipl_auto.rb     2014-05-02 
14:49:51.000000000 +0200
@@ -42,8 +42,7 @@
 
       textdomain "reipl"
 
-      Builtins.y2milestone("----------------------------------------")
-      Builtins.y2milestone("Reipl auto started")
+      Builtins.y2milestone("Reipl auto started 
----------------------------------------")
 
       Yast.import "Reipl"
       Yast.include self, "reipl/wizards.rb"
@@ -111,8 +110,7 @@
       end
 
       Builtins.y2debug("ret=%1", @ret)
-      Builtins.y2milestone("Reipl auto finished")
-      Builtins.y2milestone("----------------------------------------")
+      Builtins.y2milestone("Reipl auto finished 
----------------------------------------")
 
       deep_copy(@ret) 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-reipl-3.1.1/src/clients/reipl_bootloader_finish.rb 
new/yast2-reipl-3.1.2/src/clients/reipl_bootloader_finish.rb
--- old/yast2-reipl-3.1.1/src/clients/reipl_bootloader_finish.rb        
2013-11-15 13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/reipl_bootloader_finish.rb        
2014-05-02 14:49:51.000000000 +0200
@@ -28,88 +28,31 @@
       # Other architectures do not support it
       if Arch.s390
         @oldConfiguration = Reipl.ReadState
-        @newConfiguration = Reipl.ReadState
 
-        if @oldConfiguration != nil
-          @newConfiguration = Reipl.ModifyReiplWithBootPartition(
-            @newConfiguration
-          )
+        if !Reipl.IPL_from_boot_zipl
+          @newConfiguration = Reipl.ReadState
 
           @oldCcwMap = Ops.get_map(@oldConfiguration, "ccw")
           @newCcwMap = Ops.get_map(@newConfiguration, "ccw")
           @oldFcpMap = Ops.get_map(@oldConfiguration, "fcp")
           @newFcpMap = Ops.get_map(@newConfiguration, "fcp")
 
-          @different = Ops.get_string(@oldConfiguration, "method", "a") !=
-            Ops.get_string(@newConfiguration, "method", "b") ||
-            Ops.get_string(@oldCcwMap, "device", "a") !=
-              Ops.get_string(@newCcwMap, "device", "b") ||
-            Ops.get_string(@oldCcwMap, "loadparm", "a") !=
-              Ops.get_string(@newCcwMap, "loadparm", "b") ||
-            Ops.get_string(@oldCcwMap, "parm", "a") !=
-              Ops.get_string(@newCcwMap, "parm", "b") ||
-            Ops.get_string(@oldFcpMap, "device", "a") !=
-              Ops.get_string(@newFcpMap, "device", "b") ||
-            Ops.get_string(@oldFcpMap, "wwpn", "a") !=
-              Ops.get_string(@newFcpMap, "wwpn", "b") ||
-            Ops.get_string(@oldFcpMap, "lun", "a") !=
-              Ops.get_string(@newFcpMap, "lun", "b") ||
-            Ops.get_string(@oldFcpMap, "bootprog", "a") !=
-              Ops.get_string(@newFcpMap, "bootprog", "b") ||
-            Ops.get_string(@oldFcpMap, "br_lba", "a") !=
-              Ops.get_string(@newFcpMap, "br_lba", "b")
-
-          Builtins.y2milestone(
-            "(oldConfiguration['method']:'a' != 
newConfiguration['method']:'b') = %1",
-            Ops.get_string(@oldConfiguration, "method", "a") !=
-              Ops.get_string(@newConfiguration, "method", "b")
-          )
-          Builtins.y2milestone(
-            "(oldCcwMap['device']:'a' != newCcwMap['device']:'b')              
 = %1",
-            Ops.get_string(@oldCcwMap, "device", "a") !=
-              Ops.get_string(@newCcwMap, "device", "b")
-          )
-          Builtins.y2milestone(
-            "(oldCcwMap['loadparm']:'a' != newCcwMap['loadparm']:'b')          
 = %1",
-            Ops.get_string(@oldCcwMap, "loadparm", "a") !=
-              Ops.get_string(@newCcwMap, "loadparm", "b")
-          )
-          Builtins.y2milestone(
-            "(oldCcwMap['parm']:'a' != newCcwMap['parm']:'b')                  
 = %1",
-            Ops.get_string(@oldCcwMap, "parm", "a") !=
-              Ops.get_string(@newCcwMap, "parm", "b")
-          )
-          Builtins.y2milestone(
-            "(oldFcpMap['device']:'a' != newFcpMap['device']:'b')              
 = %1",
-            Ops.get_string(@oldFcpMap, "device", "a") !=
-              Ops.get_string(@newFcpMap, "device", "b")
-          )
-          Builtins.y2milestone(
-            "(oldFcpMap['wwpn']:'a' != newFcpMap['wwpn']:'b')                  
 = %1",
-            Ops.get_string(@oldFcpMap, "wwpn", "a") !=
-              Ops.get_string(@newFcpMap, "wwpn", "b")
-          )
-          Builtins.y2milestone(
-            "(oldFcpMap['lun']:'a' != newFcpMap['lun']:'b')                    
 = %1",
-            Ops.get_string(@oldFcpMap, "lun", "a") !=
-              Ops.get_string(@newFcpMap, "lun", "b")
-          )
-          Builtins.y2milestone(
-            "(oldFcpMap['bootprog']:'a' != newFcpMap['bootprog']:'b')          
 = %1",
-            Ops.get_string(@oldFcpMap, "bootprog", "a") !=
-              Ops.get_string(@newFcpMap, "bootprog", "b")
-          )
-          Builtins.y2milestone(
-            "(oldFcpMap['br_lba']:'a' != newFcpMap['br_lba']:'b')              
 = %1",
-            Ops.get_string(@oldFcpMap, "br_lba", "a") !=
-              Ops.get_string(@newFcpMap, "br_lba", "b")
-          )
+          ccw_different = ["device", "loadparm", "parm"].any? do |param|
+            # TODO: why two nils are different?
+            res = @oldCcwMap[param].nil? || @newCcwMap[param].nil? || 
@oldCcwMap[param] != @newCcwMap[param]
+            Builtins.y2milestone "ccw comparison for '#{param}' is different?: 
#{res}"
+            res
+          end
+          fcp_different = ["device", "wwpn", "lun", "bootprog", "br_lba"].any? 
do |param|
+            # TODO: why two nils are different?
+            res = @oldFcpMap[param].nil? || @newFcpMap[param].nil? || 
@oldFcpMap[param] != @newFcpMap[param]
+            Builtins.y2milestone "fcp comparison for '#{param}' is different?: 
#{res}"
+            res
+          end
+          @different = ccw_different || fcp_different
           Builtins.y2milestone("different = %1", @different)
 
-          Builtins.y2milestone(
-            "newConfiguration['method'] :  %1",
-            Ops.get_string(@newConfiguration, "method", "ERROR")
-          )
+          Builtins.y2milestone("newConfiguration['method'] :  %1", 
Ops.get_string(@newConfiguration, "method", "ERROR"))
           if Ops.get_string(@newConfiguration, "method", "ERROR") == "ccw"
             Builtins.y2milestone("making ccw ipl text")
             @dev = Builtins.substring(
@@ -170,14 +113,8 @@
         end
       end
 
-      Builtins.y2milestone(
-        "Configuration (reIPL) has been changed: %1",
-        @different
-      )
-      Builtins.y2milestone(
-        "Configuration (reIPL) generated shutdown dialog box message: %1",
-        @ipl_msg
-      )
+      Builtins.y2milestone("Configuration (reIPL) has been changed: %1", 
@different)
+      Builtins.y2milestone("Configuration (reIPL) generated shutdown dialog 
box message: %1", @ipl_msg)
 
       @ret = { "different" => @different, "ipl_msg" => @ipl_msg }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-reipl-3.1.1/src/clients/reipl_finish.rb 
new/yast2-reipl-3.1.2/src/clients/reipl_finish.rb
--- old/yast2-reipl-3.1.1/src/clients/reipl_finish.rb   2013-11-15 
13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/clients/reipl_finish.rb   2014-05-02 
14:49:51.000000000 +0200
@@ -23,89 +23,35 @@
       # Other architectures do not support it
       if Arch.s390
         @oldConfiguration = Reipl.ReadState
-        @newConfiguration = Reipl.ReadState
 
-        if @oldConfiguration != nil
-          @newConfiguration = Reipl.ModifyReiplWithBootPartition(
-            @newConfiguration
-          )
+        # FIXME almost same code as reipl_bootloader_finish and this client is 
not called at all now
+        if Reipl.IPL_from_boot_zipl
+
+          @newConfiguration = Reipl.ReadState
 
           @oldCcwMap = Ops.get_map(@oldConfiguration, "ccw")
           @newCcwMap = Ops.get_map(@newConfiguration, "ccw")
           @oldFcpMap = Ops.get_map(@oldConfiguration, "fcp")
           @newFcpMap = Ops.get_map(@newConfiguration, "fcp")
 
-          @different = Ops.get_string(@oldConfiguration, "method", "a") !=
-            Ops.get_string(@newConfiguration, "method", "b") ||
-            Ops.get_string(@oldCcwMap, "device", "a") !=
-              Ops.get_string(@newCcwMap, "device", "b") ||
-            Ops.get_string(@oldCcwMap, "loadparm", "a") !=
-              Ops.get_string(@newCcwMap, "loadparm", "b") ||
-            Ops.get_string(@oldCcwMap, "parm", "a") !=
-              Ops.get_string(@newCcwMap, "parm", "b") ||
-            Ops.get_string(@oldFcpMap, "device", "a") !=
-              Ops.get_string(@newFcpMap, "device", "b") ||
-            Ops.get_string(@oldFcpMap, "wwpn", "a") !=
-              Ops.get_string(@newFcpMap, "wwpn", "b") ||
-            Ops.get_string(@oldFcpMap, "lun", "a") !=
-              Ops.get_string(@newFcpMap, "lun", "b") ||
-            Ops.get_string(@oldFcpMap, "bootprog", "a") !=
-              Ops.get_string(@newFcpMap, "bootprog", "b") ||
-            Ops.get_string(@oldFcpMap, "br_lba", "a") !=
-              Ops.get_string(@newFcpMap, "br_lba", "b")
-
-          Builtins.y2milestone(
-            "(oldConfiguration['method']:'a' != 
newConfiguration['method']:'b') = %1",
-            Ops.get_string(@oldConfiguration, "method", "a") !=
-              Ops.get_string(@newConfiguration, "method", "b")
-          )
-          Builtins.y2milestone(
-            "(oldCcwMap['device']:'a' != newCcwMap['device']:'b')              
 = %1",
-            Ops.get_string(@oldCcwMap, "device", "a") !=
-              Ops.get_string(@newCcwMap, "device", "b")
-          )
-          Builtins.y2milestone(
-            "(oldCcwMap['loadparm']:'a' != newCcwMap['loadparm']:'b')          
 = %1",
-            Ops.get_string(@oldCcwMap, "loadparm", "a") !=
-              Ops.get_string(@newCcwMap, "loadparm", "b")
-          )
-          Builtins.y2milestone(
-            "(oldCcwMap['parm']:'a' != newCcwMap['parm']:'b')                  
 = %1",
-            Ops.get_string(@oldCcwMap, "parm", "a") !=
-              Ops.get_string(@newCcwMap, "parm", "b")
-          )
-          Builtins.y2milestone(
-            "(oldFcpMap['device']:'a' != newFcpMap['device']:'b')              
 = %1",
-            Ops.get_string(@oldFcpMap, "device", "a") !=
-              Ops.get_string(@newFcpMap, "device", "b")
-          )
-          Builtins.y2milestone(
-            "(oldFcpMap['wwpn']:'a' != newFcpMap['wwpn']:'b')                  
 = %1",
-            Ops.get_string(@oldFcpMap, "wwpn", "a") !=
-              Ops.get_string(@newFcpMap, "wwpn", "b")
-          )
-          Builtins.y2milestone(
-            "(oldFcpMap['lun']:'a' != newFcpMap['lun']:'b')                    
 = %1",
-            Ops.get_string(@oldFcpMap, "lun", "a") !=
-              Ops.get_string(@newFcpMap, "lun", "b")
-          )
-          Builtins.y2milestone(
-            "(oldFcpMap['bootprog']:'a' != newFcpMap['bootprog']:'b')          
 = %1",
-            Ops.get_string(@oldFcpMap, "bootprog", "a") !=
-              Ops.get_string(@newFcpMap, "bootprog", "b")
-          )
-          Builtins.y2milestone(
-            "(oldFcpMap['br_lba']:'a' != newFcpMap['br_lba']:'b')              
 = %1",
-            Ops.get_string(@oldFcpMap, "br_lba", "a") !=
-              Ops.get_string(@newFcpMap, "br_lba", "b")
-          )
+          ccw_different = ["device", "loadparm", "parm"].any? do |param|
+            # TODO: why two nils are different?
+            res = @oldCcwMap[param].nil? || @newCcwMap[param].nil? || 
@oldCcwMap[param] != @newCcwMap[param]
+            Builtins.y2milestone "ccw comparison for '#{param}' is different?: 
#{res}"
+            res
+          end
+          fcp_different = ["device", "wwpn", "lun", "bootprog", "br_lba"].any? 
do |param|
+            # TODO: why two nils are different?
+            res = @oldFcpMap[param].nil? || @newFcpMap[param].nil? || 
@oldFcpMap[param] != @newFcpMap[param]
+            Builtins.y2milestone "fcp comparison for '#{param}' is different?: 
#{res}"
+            res
+          end
+
+          @different = ccw_different || fcp_different
           Builtins.y2milestone("different = %1", @different)
         end
 
-        Builtins.y2milestone(
-          "Configuration (reIPL) has been changed: %1",
-          @different
-        )
+        Builtins.y2milestone("Configuration (reIPL) has been changed: %1", 
@different)
       end
 
       @different
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-reipl-3.1.1/src/include/reipl/dialogs.rb 
new/yast2-reipl-3.1.2/src/include/reipl/dialogs.rb
--- old/yast2-reipl-3.1.1/src/include/reipl/dialogs.rb  2013-11-15 
13:12:39.000000000 +0100
+++ new/yast2-reipl-3.1.2/src/include/reipl/dialogs.rb  2014-05-02 
14:49:51.000000000 +0200
@@ -42,15 +42,9 @@
     # Configure dialog
     # @return dialog result
     def ConfigureDialog
-      ccw_map = Convert.convert(
-        Ops.get(Reipl.reipl_configuration, "ccw") do
+      ccw_map = Reipl.reipl_configuration["ccw"] ||
           { "device" => "", "loadparm" => "" }
-        end,
-        :from => "any",
-        :to   => "map <string, string>"
-      )
-      fcp_map = Convert.convert(
-        Ops.get(Reipl.reipl_configuration, "fcp") do
+      fcp_map = Reipl.reipl_configuration["fcp"] ||
           {
             "device"   => "",
             "wwpn"     => "",
@@ -58,10 +52,8 @@
             "bootprog" => "",
             "br_lba"   => ""
           }
-        end,
-        :from => "any",
-        :to   => "map <string, string>"
-      )
+      nss_map = Reipl.reipl_configuration["nss"] ||
+          { "name" => "" }
 
       # Reipl configure dialog caption
       caption = _("Reipl Configuration")
@@ -77,7 +69,6 @@
               Left(
                 RadioButton(
                   Id(:useccw),
-                  Opt(:notify),
                   _("&ccw"),
                   Reipl.ccw_exists
                 )
@@ -85,11 +76,17 @@
               Left(
                 RadioButton(
                   Id(:usefcp),
-                  Opt(:notify),
                   _("&fcp"),
                   Reipl.fcp_exists
                 )
               ),
+              Left(
+                RadioButton(
+                  Id(:usenss),
+                  _("&nss"),
+                  Reipl.nss_exists
+                )
+              ),
               VSpacing(0.2)
             )
           )
@@ -144,11 +141,19 @@
             _("B&oot program selector"),
             Ops.get_string(fcp_map, "bootprog", "")
           ),
+          VSpacing(0.2)
+        )
+      )
+
+      nss_contents = Frame(
+        Id(:nss_frame),
+        _("nss parameters"),
+        VBox(
           VSpacing(0.2),
           TextEntry(
-            Id(:fcp_br_lba),
-            _("Boo&t record logical block address"),
-            Ops.get_string(fcp_map, "br_lba", "")
+            Id(:nss_name),
+            _("&Name"),
+            Ops.get_string(ccw_map, "name", "")
           ),
           VSpacing(0.2)
         )
@@ -160,7 +165,9 @@
           VSpacing(1),
           ccw_contents,
           VSpacing(1),
-          fcp_contents
+          fcp_contents,
+          VSpacing(1),
+          nss_contents
         )
       )
 
@@ -176,6 +183,8 @@
       UI.ChangeWidget(Id(:useccw), :Enabled, Reipl.ccw_exists)
       UI.ChangeWidget(Id(:fcp_frame), :Enabled, Reipl.fcp_exists)
       UI.ChangeWidget(Id(:usefcp), :Enabled, Reipl.fcp_exists)
+      UI.ChangeWidget(Id(:nss_frame), :Enabled, Reipl.nss_exists)
+      UI.ChangeWidget(Id(:usenss), :Enabled, Reipl.nss_exists)
 
       # @TODO
       #  UI::ChangeWidget(`id(`ccw_device), `ValidChars, 
"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-");
@@ -215,8 +224,10 @@
                 Convert.to_string(UI.QueryWidget(Id(:fcp_bootprog), :Value))
               Reipl.modified = true
             end
-            if Ops.get_string(fcp_map, "br_lba", "") !=
-                Convert.to_string(UI.QueryWidget(Id(:fcp_br_lba), :Value))
+          end
+          if Reipl.nss_exists
+            if Ops.get_string(nss_map, "name", "") !=
+                Convert.to_string(UI.QueryWidget(Id(:nss_name), :Value))
               Reipl.modified = true
             end
           end
@@ -229,14 +240,10 @@
         elsif ret == :next
           # Grab the data from the entry fields
           if Reipl.ccw_exists
-            Ops.set(
-              ccw_map,
-              "device",
+            Ops.set(ccw_map, "device",
               Convert.to_string(UI.QueryWidget(Id(:ccw_device), :Value))
             )
-            Ops.set(
-              ccw_map,
-              "loadparm",
+            Ops.set(ccw_map, "loadparm",
               Convert.to_string(UI.QueryWidget(Id(:ccw_loadparm), :Value))
             )
 
@@ -265,23 +272,21 @@
               "bootprog",
               Convert.to_string(UI.QueryWidget(Id(:fcp_bootprog), :Value))
             )
-            Ops.set(
-              fcp_map,
-              "br_lba",
-              Convert.to_string(UI.QueryWidget(Id(:fcp_br_lba), :Value))
-            )
-
             # Apparently, maps are copy on write.  We need to put the new one 
back into the globals.
             Ops.set(Reipl.reipl_configuration, "fcp", fcp_map)
           end
 
+          if Reipl.nss_exists
+            Ops.set(nss_map, "name",
+              Convert.to_string(UI.QueryWidget(Id(:nss_name), :Value))
+            )
+            # Apparently, maps are copy on write.  We need to put the new one 
back into the globals.
+            Ops.set(Reipl.reipl_configuration, "nss", nss_map)
+          end
+
           break
         elsif ret == :back
           break
-        elsif ret == :usefcp
-          next
-        elsif ret == :useccw
-          next
         else
           Builtins.y2error("unexpected retcode: %1", ret)
           next
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-reipl-3.1.1/src/modules/Reipl.rb 
new/yast2-reipl-3.1.2/src/modules/Reipl.rb
--- old/yast2-reipl-3.1.1/src/modules/Reipl.rb  2013-11-15 13:12:39.000000000 
+0100
+++ new/yast2-reipl-3.1.2/src/modules/Reipl.rb  2014-05-02 14:49:51.000000000 
+0200
@@ -76,17 +76,19 @@
       #                ]
       #];
 
-      @reipl_directory = Ops.add(FindSysfsRoot(), "/firmware/reipl")
-      @ccw_directory = Ops.add(@reipl_directory, "/ccw")
-      @fcp_directory = Ops.add(@reipl_directory, "/fcp")
-      @ccw_exists = FileUtils.IsDirectory(@ccw_directory) != nil
-      @fcp_exists = FileUtils.IsDirectory(@fcp_directory) != nil
+      @reipl_directory = "/sys/firmware/reipl"
+      @ccw_directory = @reipl_directory + "/ccw"
+      @fcp_directory = @reipl_directory + "/fcp"
+      @nss_directory = @reipl_directory + "/nss"
+      @ccw_exists = FileUtils.IsDirectory(@ccw_directory)
+      @fcp_exists = FileUtils.IsDirectory(@fcp_directory)
+      @nss_exists = FileUtils.IsDirectory(@fcp_directory)
     end
 
     # Abort function
     # @return [Boolean] return true if abort
     def Abort
-      return @AbortFunction.call == true if @AbortFunction != nil
+      return @AbortFunction.call if @AbortFunction
       false
     end
 
@@ -101,384 +103,26 @@
     def SetModified
       Builtins.y2debug("Reipl::SetModified")
       @modified = true
-
       nil
     end
 
-    # Find where sysfs has been mounted.
-    # @return [String] the root
-    def FindSysfsRoot
-      ret = nil
-      mounts = nil
-
-      mounts = Convert.convert(
-        SCR.Read(path(".etc.mtab")),
-        :from => "any",
-        :to   => "list <map>"
-      )
-
-      Builtins.foreach(mounts) do |mount|
-        Builtins.y2debug("FindSysfsRoot: mount = %1", mount)
-        if ret == nil && Ops.get_string(mount, "vfstype", "ERROR") == "sysfs" 
&&
-            Ops.get_string(mount, "spec", "ERROR") == "sysfs"
-          ret = Ops.get_string(mount, "file")
-        end
-      end
-
-      if ret == nil
-        Builtins.y2error("FindSysfsRoot: after all this, ret is still nil!")
-
-        # Note: This likely won't work so you need to check the results of 
calls using what we
-        # are returning now.
-        ret = "/sys"
-      end
-
-      Builtins.y2milestone("FindSysfsRoot: returning %1", ret)
-
-      ret
-    end
-
     # Check to see if reipl is supported by the kernel.
     # @return [Boolean] true if support exists.
-    def SanityCheck
-      # @TBD The following is broken during install since the id command is 
missing
-      # bash-3.1# find `echo $PATH | tr ':' ' '` -name id
-      #        if (!Confirm::MustBeRoot ()) {
-      #                y2error ("User must be root!");
-      #        }
-
-      if !FileUtils.IsDirectory(@reipl_directory)
-        Builtins.y2error("Directory does not exist: %1", @reipl_directory)
-        return false
-      end
-
-      if !@ccw_exists && !@fcp_exists
-        Builtins.y2error(
-          "Either ccw or fcp must exist under %1",
-          @reipl_directory
-        )
-        return false
-      end
-
-      if @ccw_exists
-        if !FileUtils.Exists(Ops.add(@ccw_directory, "/device"))
-          Builtins.y2error("Missing device under %1", @ccw_directory)
-          return false
-        end
-        if !FileUtils.Exists(Ops.add(@ccw_directory, "/loadparm"))
-          Builtins.y2error("Missing loadparm under %1", @ccw_directory)
-          return false
-        end 
-        # don't check for "parm" since it might not be there under zLPAR
-      end
-
-      if @fcp_exists
-        if !FileUtils.Exists(Ops.add(@fcp_directory, "/device"))
-          Builtins.y2error("Missing device under %1", @fcp_directory)
-          return false
-        end
-        if !FileUtils.Exists(Ops.add(@fcp_directory, "/wwpn"))
-          Builtins.y2error("Missing wwpn under %1", @fcp_directory)
-          return false
-        end
-        if !FileUtils.Exists(Ops.add(@fcp_directory, "/lun"))
-          Builtins.y2error("Missing lun under %1", @fcp_directory)
-          return false
-        end
-        if !FileUtils.Exists(Ops.add(@fcp_directory, "/bootprog"))
-          Builtins.y2error("Missing bootprog under %1", @fcp_directory)
-          return false
-        end
-        if !FileUtils.Exists(Ops.add(@fcp_directory, "/br_lba"))
-          Builtins.y2error("Missing br_lba under %1", @fcp_directory)
-          return false
-        end
-      end
-
-      if !FileUtils.Exists(Ops.add(@reipl_directory, "/reipl_type"))
-        Builtins.y2error("Missing reipl_type under %1", @reipl_directory)
-        return false
-      end
-
-      true
-    end
-
-    # Returns the parameters of the boot partition that was found where the
-    # MBR was located.
-    # @return a list of parameters
-    def FindBootPartition
-      uParts = nil
-      fError = false
-      command = nil
-      result = nil
-
-      mp = Storage.GetMountPoints
-
-      mountdata_boot = Ops.get_list(mp, "/boot", Ops.get_list(mp, "/", []))
-      Builtins.y2milestone("mountdata_boot %1", mountdata_boot)
-      boot_device = Ops.get_string(mountdata_boot, 0, "")
-
-      # Examples: /dev/dasda2 or /dev/sda3
-      Builtins.y2milestone(
-        "FindBootPartition: BootPartitionDevice = %1",
-        boot_device
-      )
-
-      # Examples: dasda2 or sda3
-      fullDisk = Builtins.substring(boot_device, 5)
-
-      Builtins.y2milestone("FindBootPartition: fullDisk = %1", fullDisk)
-
-      if Builtins.substring(fullDisk, 0, 4) == "dasd"
-        disk = nil
-        #   fullDisk might be a full block device or just a partition on such a
-        #   block device. If it is a partition we have to get rid of the suffix
-        #   specifying the partition in order to get the containing block 
device.
-        #   This device could have thousands of block devices, which is not 
uncommon
-        #   on s390. In such a case the devices would have names such as 
"dasdaab" or
-        #   "dasdaab1."
-        split = Builtins.regexptokenize(fullDisk, "^(dasd)([a-z]*)([0-9]*)$")
-
-        if split == nil || Builtins.size(split) != 3
-          Builtins.y2error(
-            "FindBootPartition: Could not regexptokenize fullDisk, split = %1",
-            split
-          )
-
-          fError = true
-        else
-          disk = Ops.add(Ops.get(split, 0, ""), Ops.get(split, 1, ""))
-        end
-
-        Builtins.y2milestone(
-          "FindBootPartition: found that the MBR uses dasd (%1)",
-          disk
-        )
-
-        if disk != nil
-          # bash-3.1# readlink -m /sys/block/dasda/device
-          # /sys/devices/css0/0.0.0006/0.0.4dcf
-          command = Ops.add(
-            Ops.add(
-              Ops.add(
-                Ops.add("/usr/bin/readlink -n -m ", FindSysfsRoot()),
-                "/block/"
-              ),
-              disk
-            ),
-            "/device"
-          )
-          Builtins.y2milestone("Executing %1", command)
-          result = Convert.to_map(
-            SCR.Execute(path(".target.bash_output"), command)
-          )
-
-          if Ops.get_integer(result, "exit", -1) != 0
-            Builtins.y2error(
-              "FindBootPartition: Execute errors and returns %1",
-              Ops.get_integer(result, "exit", -1)
-            )
-            Builtins.y2error(
-              "FindBootPartition: Execute stdout is \"%1\"",
-              Ops.get_string(result, "stdout", "")
-            )
-            Builtins.y2error(
-              "FindBootPartition: Execute stderr is \"%1\"",
-              Ops.get_string(result, "stderr", "")
-            )
-
-            fError = true
-          end
-
-          Builtins.y2milestone("FindBootPartition: result = %1", result)
-
-          readlinkParts = nil
-
-          readlinkParts = Builtins.splitstring(
-            Ops.get_string(result, "stdout", ""),
-            "/"
-          )
-
-          Builtins.y2milestone(
-            "FindBootPartition: readlinkParts = %1",
-            readlinkParts
-          )
-
-          if Ops.less_than(Builtins.size(readlinkParts), 1)
-            Builtins.y2error(
-              "FindBootPartition: readlinkParts size is unexpected %1",
-              readlinkParts
-            )
-
-            fError = true
-          end
-
-          ccwDevice = Ops.get(
-            readlinkParts,
-            Ops.subtract(Builtins.size(readlinkParts), 1),
-            ""
-          )
-
-          uParts = ["ccw", ccwDevice] if !fError
-        end
-      elsif Builtins.substring(fullDisk, 0, 2) == "sd"
-        disk = nil
-        #   fullDisk might be a full block device or just a partition on such a
-        #   block device. If it is a partition we have to get rid of the suffix
-        #   specifying the partition in order to get the containing block 
device.
-        #   This device could have thousands of block devices, which is not 
uncommon
-        #   on s390. In such a case the devices would have names such as 
"sdaab" or
-        #   "sdaab1."
-        split = Builtins.regexptokenize(fullDisk, "^(sd)([a-z]*)([0-9]*)$")
-
-        if split == nil || Builtins.size(split) != 3
-          Builtins.y2error(
-            "FindBootPartition: Could not regexptokenize fullDisk, split = %1",
-            split
-          )
-
-          fError = true
-        else
-          disk = Ops.add(Ops.get(split, 0, ""), Ops.get(split, 1, ""))
-        end
-
-        if disk != nil
-          Builtins.y2milestone(
-            "FindBootPartition: found that the MBR uses SCSI (%1)",
-            disk
-          )
-
-          deviceDirectory = Ops.add(
-            Ops.add(Ops.add(FindSysfsRoot(), "/block/"), disk),
-            "/device/"
-          )
-
-          # bash-3.1# cat /sys/block/sda/device/hba_id
-          # 0.0.1734
-          hbaId = Convert.to_string(
-            SCR.Read(path(".target.string"), Ops.add(deviceDirectory, 
"hba_id"))
-          )
-
-          # bash-3.1# cat /sys/block/sda/device/wwpn
-          # 0x500507630300c562
-          wwpn = Convert.to_string(
-            SCR.Read(path(".target.string"), Ops.add(deviceDirectory, "wwpn"))
-          )
-
-          # bash-3.1# cat /sys/block/sda/device/fcp_lun
-          # 0x401040eb00000000
-          fcpLun = Convert.to_string(
-            SCR.Read(
-              path(".target.string"),
-              Ops.add(deviceDirectory, "fcp_lun")
-            )
-          )
-
-          Builtins.y2milestone("FindBootPartition: hbaId  = %1", hbaId)
-          Builtins.y2milestone("FindBootPartition: wwpn   = %1", wwpn)
-          Builtins.y2milestone("FindBootPartition: fcpLun = %1", fcpLun)
-
-          hbaId = Builtins.deletechars(hbaId, "\n ")
-          wwpn = Builtins.deletechars(wwpn, "\n ")
-          fcpLun = Builtins.deletechars(fcpLun, "\n ")
-
-          if hbaId == nil || Builtins.size(hbaId) == 0
-            Builtins.y2error("FindBootPartition: hbaId is empty!")
-            fError = true
-          end
-          if wwpn == nil || Builtins.size(wwpn) == 0
-            Builtins.y2error("FindBootPartition: wwpn is empty!")
-            fError = true
-          end
-          if fcpLun == nil || Builtins.size(fcpLun) == 0
-            Builtins.y2error("FindBootPartition: fcpLun is empty!")
-            fError = true
-          end
-
-          uParts = ["zfcp", hbaId, wwpn, fcpLun] if !fError
-        end
-      else
-        Builtins.y2error(
-          "FindBootPartition: Unexpected format \"%1\"",
-          fullDisk
-        )
-      end
-
-      Builtins.y2milestone("FindBootPartition: returning uParts = %1", uParts)
-
-      deep_copy(uParts)
-    end
-
     # Returns the reipl configuration passed in with what it should be for the 
detected
     # boot partition.
     # @param [Hash{String => Object}] configuration an old configuration.
     # @return a map of the new target configuration.
-    def ModifyReiplWithBootPartition(configuration)
-      configuration = deep_copy(configuration)
+    def IPL_from_boot_zipl
       # get target information
-      uParts = FindBootPartition()
-
-      if uParts == nil
-        Builtins.y2error("ModifyReiplWithBootPartition: uParts is nil")
-      end
-
-      fCCW = false
-      fFCP = false
-
-      if Builtins.size(uParts) == 2
-        if Ops.get(uParts, 0, "") == "ccw"
-          fCCW = true
-        else
-          Builtins.y2error(
-            "ModifyReiplWithBootPartition: size of uParts is 2, but first word 
is not ccw!"
-          )
-        end
-      elsif Builtins.size(uParts) == 4
-        if Ops.get(uParts, 0, "") == "zfcp"
-          fFCP = true
-        else
-          Builtins.y2error(
-            "ModifyReiplWithBootPartition: size of uParts is 4, but format is 
not what we expect"
-          )
-        end
-      else
-        Builtins.y2error(
-          "ModifyReiplWithBootPartition: size of uParts is not 2 or 4"
-        )
-      end
-
-      if fCCW
-        Ops.set(configuration, "method", "ccw")
-        ccw_map = Ops.get_map(configuration, "ccw")
-
-        Ops.set(ccw_map, "device", Ops.get(uParts, 1, ""))
-        Ops.set(ccw_map, "loadparm", "")
-        #ccw_map["parm"] = ""; /* SLES 11 and z/VM only */ // read only
-        Ops.set(configuration, "ccw", ccw_map)
-        Builtins.y2milestone("ModifyReiplWithBootPartition: modified ccw map")
-      elsif fFCP
-        Ops.set(configuration, "method", "fcp")
-        fcp_map = Ops.get_map(configuration, "fcp")
-
-        Ops.set(fcp_map, "device", Ops.get(uParts, 1, ""))
-        Ops.set(fcp_map, "wwpn", Ops.get(uParts, 2, ""))
-        Ops.set(fcp_map, "lun", Ops.get(uParts, 3, ""))
-        Ops.set(fcp_map, "bootprog", "0")
-        Ops.set(fcp_map, "br_lba", "0")
-        Ops.set(configuration, "fcp", fcp_map)
-        Builtins.y2milestone("ModifyReiplWithBootPartition: modified fcp map")
-      else
-        Builtins.y2error("ModifyReiplWithBootPartition: Unknown disk type!")
-        Ops.set(configuration, "method", "unknown_disk_type")
-      end
-
-      deep_copy(configuration)
+      result = Yast::SCR.Execute(path(".target.bash_output"), "chreipl node 
/mnt/boot/zipl")
+      return result["exit"] == 0
     end
 
     # Read all reipl settings
     # @return [Hash{String => Object}] of settings
     def ReadState
       configuration = {}
+        Builtins.y2milestone("ReadState: The beginngn")
       Ops.set(
         configuration,
         "ccw",
@@ -487,152 +131,39 @@
       Ops.set(
         configuration,
         "fcp",
-        {
-          "device"   => "",
-          "wwpn"     => "",
-          "lun"      => "",
-          "bootprog" => "",
-          "br_lba"   => ""
-        }
+        { "device"   => "", "wwpn"     => "", "lun"      => "", "bootprog" => 
"", "br_lba"   => "", "bootparms"        => "" }
       )
+      Ops.set(
+       configuration,
+       "nss",
+        { "name" => "", "loadparm" => "", "parm" => "" }
+       )
+
+      result = Yast::SCR.Execute(path(".target.bash_output"), "lsreipl")
+      raise "Calling lsreipl failed with #{result["stderr"]}" unless 
result["exit"].zero?
+
+      lsreipl_lines = result["stdout"].split("\n")
+      type = lsreipl_lines[0][/ccw$|fcp$|node$/]
+      if type == "ccw"
+         ccw_map = Ops.get_map(configuration, "ccw")
+         Ops.set(ccw_map, "device", 
Builtins.deletechars(Convert.to_string(lsreipl_lines[1][/[0-3]\.[0-3]\.[\h.]*$/]),
 "\n "))
+         Ops.set(ccw_map, "loadparm", 
Builtins.deletechars(Convert.to_string(lsreipl_lines[2][/".*"$/]), "\n \""))
+         Ops.set(ccw_map, "parm", 
Builtins.deletechars(Convert.to_string(lsreipl_lines[3][/".*"$/]), "\n \""))
+         Ops.set(configuration, "ccw", ccw_map)
+      end
+      if type == "fcp"
+          fcp_map = Ops.get_map(configuration, "fcp")
+         Ops.set(ccw_map, "wwpm", 
Builtins.deletechars(Convert.to_string(lsreipl_lines[1][/[x\h]*$/]), "\n "))
+         Ops.set(ccw_map, "lun", 
Builtins.deletechars(Convert.to_string(lsreipl_lines[2][/[x\h]*$/]), "\n "))
+         Ops.set(ccw_map, "device", 
Builtins.deletechars(Convert.to_string(lsreipl_lines[3][/[0-3]\.[0-3]\.[\h.]*$/]),
 "\n "))
+         Ops.set(ccw_map, "bootprog", 
Builtins.deletechars(Convert.to_string(lsreipl_lines[4][/[0-9]*$/]), "\n "))
+         Ops.set(ccw_map, "br_lbr", 
Builtins.deletechars(Convert.to_string(lsreipl_lines[5][/[0-9]*$/]), "\n "))
+         Ops.set(ccw_map, "bootparms", 
Builtins.deletechars(Convert.to_string(lsreipl_lines[6][/".*"*$/]), "\n \""))
+         Ops.set(configuration, "fcp", fcp_map)
 
-      if !SanityCheck()
-        Builtins.y2error("Reipl::Read: SanityCheck failed!")
-
-        # Popup::Error (_("This machine does not support reipl!"));
-        # Don't bother the user, just silently do shutdown in the end.
-        #    Especially, since this would currently popup three times
-        #    during installation.
-
-        return deep_copy(configuration)
-      end
-
-      if @ccw_exists
-        ccw_map = Ops.get_map(configuration, "ccw")
-
-        Ops.set(
-          ccw_map,
-          "device",
-          Builtins.deletechars(
-            Convert.to_string(
-              SCR.Read(
-                path(".target.string"),
-                Ops.add(@ccw_directory, "/device")
-              )
-            ),
-            "\n "
-          )
-        )
-        Ops.set(
-          ccw_map,
-          "loadparm",
-          Builtins.deletechars(
-            Convert.to_string(
-              SCR.Read(
-                path(".target.string"),
-                Ops.add(@ccw_directory, "/loadparm")
-              )
-            ),
-            "\n "
-          )
-        )
-        Ops.set(
-          ccw_map,
-          "parm",
-          Builtins.deletechars(
-            Convert.to_string(
-              SCR.Read(path(".target.string"), Ops.add(@ccw_directory, 
"/parm"))
-            ),
-            "\n "
-          )
-        ) # SLES 11 and z/VM only
-
-        Ops.set(configuration, "ccw", ccw_map)
-      else
-        Builtins.y2warning("Reipl::Read: ccw is not configured.")
-      end
-
-      if @fcp_exists
-        fcp_map = Ops.get_map(configuration, "fcp")
-
-        Ops.set(
-          fcp_map,
-          "device",
-          Builtins.deletechars(
-            Convert.to_string(
-              SCR.Read(
-                path(".target.string"),
-                Ops.add(@fcp_directory, "/device")
-              )
-            ),
-            "\n "
-          )
-        )
-        Ops.set(
-          fcp_map,
-          "wwpn",
-          Builtins.deletechars(
-            Convert.to_string(
-              SCR.Read(path(".target.string"), Ops.add(@fcp_directory, 
"/wwpn"))
-            ),
-            "\n "
-          )
-        )
-        Ops.set(
-          fcp_map,
-          "lun",
-          Builtins.deletechars(
-            Convert.to_string(
-              SCR.Read(path(".target.string"), Ops.add(@fcp_directory, "/lun"))
-            ),
-            "\n "
-          )
-        )
-        Ops.set(
-          fcp_map,
-          "bootprog",
-          Builtins.deletechars(
-            Convert.to_string(
-              SCR.Read(
-                path(".target.string"),
-                Ops.add(@fcp_directory, "/bootprog")
-              )
-            ),
-            "\n "
-          )
-        )
-        Ops.set(
-          fcp_map,
-          "br_lba",
-          Builtins.deletechars(
-            Convert.to_string(
-              SCR.Read(
-                path(".target.string"),
-                Ops.add(@fcp_directory, "/br_lba")
-              )
-            ),
-            "\n "
-          )
-        )
-
-        Ops.set(configuration, "fcp", fcp_map)
-      else
-        Builtins.y2warning("Reipl::Read: fcp is not configured.")
       end
 
-      Ops.set(
-        configuration,
-        "method",
-        Builtins.deletechars(
-          Convert.to_string(
-            SCR.Read(
-              path(".target.string"),
-              Ops.add(@reipl_directory, "/reipl_type")
-            )
-          ),
-          "\n "
-        )
-      )
+      configuration["method"] = type
 
       deep_copy(configuration)
     end
@@ -642,7 +173,7 @@
     def Read
       configuration = ReadState()
 
-      @reipl_configuration = deep_copy(configuration) if configuration != nil
+      @reipl_configuration = deep_copy(configuration) if configuration
 
       return false if Abort()
       @modified = false
@@ -655,94 +186,24 @@
     def WriteState(configuration)
       configuration = deep_copy(configuration)
       rc = true
+      result = nil
 
       if Ops.get(configuration, "method") != nil &&
           Ops.get_string(configuration, "method", "unknown_disk_type") !=
             "unknown_disk_type"
-        Builtins.y2milestone(
-          "Reipl::WriteState: writing out method %1",
-          Ops.get_string(configuration, "method", "")
-        )
-
-        SCR.Write(
-          path(".target.string"),
-          Ops.add(@reipl_directory, "/reipl_type"),
-          Ops.get_string(configuration, "method")
-        ) 
-        #   I see a difference between the value written to the log and 
written to sysfs:
-        #   configuration["method"]:"" <===> 
(string)configuration["method"]:nil
-        #   But that's probably OK here and not the reason for the obvious bug 
in the y2log.
-      end
-
-      if @ccw_exists
-        result = nil
-        echoCmd = nil
-
-        Builtins.y2milestone(
-          "Reipl::WriteState: writing out ccw configuration."
-        )
 
+       type = Ops.get_string(configuration, "method")
+        Builtins.y2milestone("Reipl::WriteState: writing out method %1", type)
+      end
+
+      if type == "ccw"
         ccw_map = Ops.get_map(configuration, "ccw")
 
         if ccw_map != nil
-          Builtins.y2milestone(
-            "Reipl::WriteState: ccw_map device is now \"%1\"",
-            Ops.get_string(ccw_map, "device", "???")
-          )
-          Builtins.y2milestone(
-            "Reipl::WriteState: ccw_map loadparm is now \"%1\"",
-            Ops.get_string(ccw_map, "loadparm", "???")
-          )
-
-          # NOTE: It should be this, but you cannot write an empty ("") string 
out!
-          #        rc = SCR::Write (.target.string, ccw_directory + "/device", 
(string)ccw_map["device"]:nil);
-          #        rc = SCR::Write (.target.string, ccw_directory + 
"/loadparm", (string)ccw_map["loadparm"]:nil);
-
-          echoCmd = Ops.add(
-            Ops.add(
-              Ops.add(
-                Ops.add("echo \"", Ops.get_string(ccw_map, "device")),
-                "\" > "
-              ),
-              @ccw_directory
-            ),
-            "/device"
-          )
-          Builtins.y2milestone("Executing %1", echoCmd)
-          result = Convert.to_map(
-            SCR.Execute(path(".target.bash_output"), echoCmd)
-          )
-          if Ops.get_integer(result, "exit", -1) != 0
-            Builtins.y2error(
-              "Error: Writing ccw device returns %1",
-              Ops.get_string(result, "stderr", "")
-            )
-
-            rc = false
-          end
-
-          echoCmd = Ops.add(
-            Ops.add(
-              Ops.add(
-                Ops.add("echo \"", Ops.get_string(ccw_map, "loadparm")),
-                "\" > "
-              ),
-              @ccw_directory
-            ),
-            "/loadparm"
-          )
-          Builtins.y2milestone("Executing %1", echoCmd)
-          result = Convert.to_map(
-            SCR.Execute(path(".target.bash_output"), echoCmd)
-          )
-          if Ops.get_integer(result, "exit", -1) != 0
-            Builtins.y2error(
-              "Error: Writing ccw loadparm returns %1",
-              Ops.get_string(result, "stderr", "")
-            )
 
-            rc = false
-          end
+         device = Ops.get_string(ccw_map, "device", "???")
+         loadparm = Ops.get_string(ccw_map, "loadparm", "???")
+
         else
           Builtins.y2error("Reipl::WriteState: ccw_map is nil!")
 
@@ -750,158 +211,46 @@
         end
       end
 
-      if @fcp_exists
-        result = nil
-        echoCmd = nil
-
-        Builtins.y2milestone(
-          "Reipl::WriteState: writing out fcp configuration."
-        )
-
+      if type == "fcp"
         fcp_map = Ops.get_map(configuration, "fcp")
 
         if fcp_map != nil
-          Builtins.y2milestone(
-            "Reipl::WriteState: fcp_map device is now \"%1\"",
-            Ops.get_string(fcp_map, "device", "???")
-          )
-          Builtins.y2milestone(
-            "Reipl::WriteState: fcp_map wwpn is now \"%1\"",
-            Ops.get_string(fcp_map, "wwpn", "???")
-          )
-          Builtins.y2milestone(
-            "Reipl::WriteState: fcp_map lun is now \"%1\"",
-            Ops.get_string(fcp_map, "lun", "???")
-          )
-          Builtins.y2milestone(
-            "Reipl::WriteState: fcp_map bootprog is now \"%1\"",
-            Ops.get_string(fcp_map, "bootprog", "???")
-          )
-          Builtins.y2milestone(
-            "Reipl::WriteState: fcp_map br_lba is now \"%1\"",
-            Ops.get_string(fcp_map, "br_lba", "???")
-          )
-
-          echoCmd = Ops.add(
-            Ops.add(
-              Ops.add(
-                Ops.add("echo \"", Ops.get_string(fcp_map, "device")),
-                "\" > "
-              ),
-              @fcp_directory
-            ),
-            "/device"
-          )
-          Builtins.y2milestone("Executing %1", echoCmd)
-          result = Convert.to_map(
-            SCR.Execute(path(".target.bash_output"), echoCmd)
-          )
-          if Ops.get_integer(result, "exit", -1) != 0
-            Builtins.y2error(
-              "Error: Writing fcp device returns %1",
-              Ops.get_string(result, "stderr", "")
-            )
-
-            rc = false
-          end
-
-          echoCmd = Ops.add(
-            Ops.add(
-              Ops.add(
-                Ops.add("echo \"", Ops.get_string(fcp_map, "wwpn")),
-                "\" > "
-              ),
-              @fcp_directory
-            ),
-            "/wwpn"
-          )
-          Builtins.y2milestone("Executing %1", echoCmd)
-          result = Convert.to_map(
-            SCR.Execute(path(".target.bash_output"), echoCmd)
-          )
-          if Ops.get_integer(result, "exit", -1) != 0
-            Builtins.y2error(
-              "Error: Writing fcp wwpn returns %1",
-              Ops.get_string(result, "stderr", "")
-            )
-
-            rc = false
-          end
-
-          echoCmd = Ops.add(
-            Ops.add(
-              Ops.add(
-                Ops.add("echo \"", Ops.get_string(fcp_map, "lun")),
-                "\" > "
-              ),
-              @fcp_directory
-            ),
-            "/lun"
-          )
-          Builtins.y2milestone("Executing %1", echoCmd)
-          result = Convert.to_map(
-            SCR.Execute(path(".target.bash_output"), echoCmd)
-          )
-          if Ops.get_integer(result, "exit", -1) != 0
-            Builtins.y2error(
-              "Error: Writing fcp lun returns %1",
-              Ops.get_string(result, "stderr", "")
-            )
-
-            rc = false
-          end
-
-          echoCmd = Ops.add(
-            Ops.add(
-              Ops.add(
-                Ops.add("echo \"", Ops.get_string(fcp_map, "bootprog")),
-                "\" > "
-              ),
-              @fcp_directory
-            ),
-            "/bootprog"
-          )
-          Builtins.y2milestone("Executing %1", echoCmd)
-          result = Convert.to_map(
-            SCR.Execute(path(".target.bash_output"), echoCmd)
-          )
-          if Ops.get_integer(result, "exit", -1) != 0
-            Builtins.y2error(
-              "Error: Writing fcp bootprog returns %1",
-              Ops.get_string(result, "stderr", "")
-            )
-
-            rc = false
-          end
-
-          echoCmd = Ops.add(
-            Ops.add(
-              Ops.add(
-                Ops.add("echo \"", Ops.get_string(fcp_map, "br_lba")),
-                "\" > "
-              ),
-              @fcp_directory
-            ),
-            "/br_lba"
-          )
-          Builtins.y2milestone("Executing %1", echoCmd)
-          result = Convert.to_map(
-            SCR.Execute(path(".target.bash_output"), echoCmd)
-          )
-          if Ops.get_integer(result, "exit", -1) != 0
-            Builtins.y2error(
-              "Error: Writing fcp br_lba returns %1",
-              Ops.get_string(result, "stderr", "")
-            )
+          Builtins.y2milestone("Reipl::WriteState: fcp_map device is now 
\"%1\"", Ops.get_string(fcp_map, "device", "???"))
+          Builtins.y2milestone("Reipl::WriteState: fcp_map wwpn is now 
\"%1\"", Ops.get_string(fcp_map, "wwpn", "???"))
+          Builtins.y2milestone("Reipl::WriteState: fcp_map lun is now \"%1\"", 
Ops.get_string(fcp_map, "lun", "???"))
+          Builtins.y2milestone("Reipl::WriteState: fcp_map bootprog is now 
\"%1\"", Ops.get_string(fcp_map, "bootprog", "???"))
+          Builtins.y2milestone("Reipl::WriteState: fcp_map br_lba is now 
\"%1\"", Ops.get_string(fcp_map, "br_lba", "???"))
+
+         device = Ops.get_string(fcp_map, "device") + " " + 
Ops.get_string(fcp_map, "wwpn") + " " + Ops.get_string(fcp_map, "lun")
+         loadparm = Ops.get_string(fcp_map, "loadparm", "???")
+
+          Builtins.y2milestone("FCP Device %1, loadparm %2 %1", device, 
loadparm)
 
-            rc = false
-          end
         else
           Builtins.y2error("Reipl::Write: fcp_map is nil!")
 
           rc = false
         end
       end
+      if type == "nss"
+         nss_map = Ops.get_map(configuration, "nss")
+        if nss_map != nil
+               device = Ops.get_string(fcp_map, "name")
+               loadparm = ""
+        end
+      end
+      # now type, device, loadparm contain all what is needed to call chreipl
+      chreiplCmd = "chreipl " + type  + " " + device
+      if loadparm != ""
+       chreiplCmd << " -L " + loadparm
+      end
+      Builtins.y2milestone("Executing %1", chreiplCmd)
+      result = Convert.to_map(SCR.Execute(path(".target.bash_output"), 
chreiplCmd))
+      if Ops.get_integer(result, "exit", -1) != 0
+        Builtins.y2error( "Error: Calling chreipl fails with code %1 and 
output %2", Ops.get_integer(result, "exit", -1), Ops.get_string(result, 
"stderr", ""))
+
+        rc = false
+      end
 
       rc
     end
@@ -1040,16 +389,15 @@
     publish :variable => :AbortFunction, :type => "boolean ()"
     publish :function => :Abort, :type => "boolean ()"
     publish :function => :SetModified, :type => "void ()"
-    publish :function => :FindSysfsRoot, :type => "string ()"
     publish :variable => :reipl_configuration, :type => "map <string, any>"
     publish :variable => :reipl_directory, :type => "string"
     publish :variable => :ccw_directory, :type => "string"
     publish :variable => :fcp_directory, :type => "string"
+    publish :variable => :nss_directory, :type => "string"
     publish :variable => :ccw_exists, :type => "boolean"
     publish :variable => :fcp_exists, :type => "boolean"
-    publish :function => :SanityCheck, :type => "boolean ()"
-    publish :function => :FindBootPartition, :type => "list <string> ()"
-    publish :function => :ModifyReiplWithBootPartition, :type => "map <string, 
any> (map <string, any>)"
+    publish :variable => :nss_exists, :type => "boolean"
+    publish :function => :IPL_from_boot_zipl, :type => "boolean ()"
     publish :function => :ReadState, :type => "map <string, any> ()"
     publish :function => :Read, :type => "boolean ()"
     publish :function => :WriteState, :type => "boolean (map <string, any>)"

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to