Hello community,

here is the log from the commit of package yast2-iscsi-client for 
openSUSE:Factory checked in at 2018-12-31 09:44:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-iscsi-client (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-iscsi-client.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-iscsi-client"

Mon Dec 31 09:44:52 2018 rev:120 rq:660229 version:4.1.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-iscsi-client/yast2-iscsi-client.changes    
2018-11-10 16:50:41.236393728 +0100
+++ 
/work/SRC/openSUSE:Factory/.yast2-iscsi-client.new.28833/yast2-iscsi-client.changes
 2018-12-31 09:44:54.478289391 +0100
@@ -1,0 +2,13 @@
+Thu Dec 13 16:42:21 UTC 2018 - jreidin...@suse.com
+
+- always use absolute path to binaries (bsc#1118291)
+- properly escape shell arguments (bsc#1118291)
+- 4.1.4
+
+-------------------------------------------------------------------
+Sun Nov 25 00:21:37 UTC 2018 - Stasiek Michalski <hel...@mailbox.org>
+
+- Provide icon with module (boo#1109310)
+- 4.1.3
+
+-------------------------------------------------------------------

Old:
----
  yast2-iscsi-client-4.1.2.tar.bz2

New:
----
  yast2-iscsi-client-4.1.4.tar.bz2

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

Other differences:
------------------
++++++ yast2-iscsi-client.spec ++++++
--- /var/tmp/diff_new_pack.hrH60p/_old  2018-12-31 09:44:54.878289064 +0100
+++ /var/tmp/diff_new_pack.hrH60p/_new  2018-12-31 09:44:54.882289060 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-iscsi-client
-Version:        4.1.2
+Version:        4.1.4
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -73,6 +73,7 @@
 %{yast_scrconfdir}/iscsid.scr
 %doc %{yast_docdir}
 %{yast_schemadir}/autoyast/rnc/iscsi-client.rnc
+%{yast_icondir}
 %license COPYING
 
 %changelog

++++++ yast2-iscsi-client-4.1.2.tar.bz2 -> yast2-iscsi-client-4.1.4.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-iscsi-client-4.1.2/package/yast2-iscsi-client.changes 
new/yast2-iscsi-client-4.1.4/package/yast2-iscsi-client.changes
--- old/yast2-iscsi-client-4.1.2/package/yast2-iscsi-client.changes     
2018-11-09 14:46:40.000000000 +0100
+++ new/yast2-iscsi-client-4.1.4/package/yast2-iscsi-client.changes     
2018-12-20 10:30:23.000000000 +0100
@@ -1,4 +1,17 @@
 -------------------------------------------------------------------
+Thu Dec 13 16:42:21 UTC 2018 - jreidin...@suse.com
+
+- always use absolute path to binaries (bsc#1118291)
+- properly escape shell arguments (bsc#1118291)
+- 4.1.4
+
+-------------------------------------------------------------------
+Sun Nov 25 00:21:37 UTC 2018 - Stasiek Michalski <hel...@mailbox.org>
+
+- Provide icon with module (boo#1109310)
+- 4.1.3
+
+-------------------------------------------------------------------
 Fri Nov 09 12:34:19 CET 2018 - aschn...@suse.com
 
 - removed onboot startup mode for LUNs on S/390 (bsc#1045139)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-iscsi-client-4.1.2/package/yast2-iscsi-client.spec 
new/yast2-iscsi-client-4.1.4/package/yast2-iscsi-client.spec
--- old/yast2-iscsi-client-4.1.2/package/yast2-iscsi-client.spec        
2018-11-09 14:46:40.000000000 +0100
+++ new/yast2-iscsi-client-4.1.4/package/yast2-iscsi-client.spec        
2018-12-20 10:30:23.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-iscsi-client
-Version:        4.1.2
+Version:        4.1.4
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -73,4 +73,5 @@
 %{yast_scrconfdir}/iscsid.scr
 %doc %{yast_docdir}
 %{yast_schemadir}/autoyast/rnc/iscsi-client.rnc
+%{yast_icondir}
 %license COPYING
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-iscsi-client-4.1.2/src/Makefile.am 
new/yast2-iscsi-client-4.1.4/src/Makefile.am
--- old/yast2-iscsi-client-4.1.2/src/Makefile.am        2018-11-09 
14:46:40.000000000 +0100
+++ new/yast2-iscsi-client-4.1.4/src/Makefile.am        2018-12-20 
10:30:23.000000000 +0100
@@ -26,6 +26,13 @@
 desktop_DATA = \
   desktop/iscsi-client.desktop
 
-EXTRA_DIST = $(module_DATA) $(client_DATA) $(ynclude_DATA) $(schemafiles_DATA) 
$(desktop_DATA)
+symbolicdir = @icondir@/hicolor/symbolic/apps
+symbolic_DATA = \
+  icons/hicolor/symbolic/apps/yast-iscsi-client-symbolic.svg
+scalabledir = @icondir@/hicolor/scalable/apps
+scalable_DATA = \
+  icons/hicolor/scalable/apps/yast-iscsi-client.svg
 
-include $(top_srcdir)/Makefile.am.common
\ No newline at end of file
+EXTRA_DIST = $(module_DATA) $(client_DATA) $(ynclude_DATA) $(schemafiles_DATA) 
$(desktop_DATA) $(symbolic_DATA) $(scalable_DATA)
+
+include $(top_srcdir)/Makefile.am.common
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-iscsi-client-4.1.2/src/clients/inst_iscsi-client.rb 
new/yast2-iscsi-client-4.1.4/src/clients/inst_iscsi-client.rb
--- old/yast2-iscsi-client-4.1.2/src/clients/inst_iscsi-client.rb       
2018-11-09 14:46:40.000000000 +0100
+++ new/yast2-iscsi-client-4.1.4/src/clients/inst_iscsi-client.rb       
2018-12-20 10:30:23.000000000 +0100
@@ -65,10 +65,9 @@
 
       SCR.Execute(
         path(".target.bash"),
-        "mkdir -p /etc/iscsi; touch /etc/iscsi/initiatorname.iscsi; ln -s 
/etc/iscsi/initiatorname.iscsi /etc/initiatorname.iscsi"
+        "/usr/bin/mkdir -p /etc/iscsi; /usr/bin/touch 
/etc/iscsi/initiatorname.iscsi; /usr/bin/ln -s /etc/iscsi/initiatorname.iscsi 
/etc/initiatorname.iscsi"
       )
       # check initiator name, create if not exists
-      # WFM::Execute (.local.bash,"test -d /etc/iscsi/ && /bin/cp -a 
/etc/iscsi/* " + String::Quote(Installation::destdir) + "/etc/iscsi/");
       IscsiClientLib.checkInitiatorName
 
       IscsiClientLib.getiBFT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-iscsi-client-4.1.2/src/clients/iscsi-client_finish.rb 
new/yast2-iscsi-client-4.1.4/src/clients/iscsi-client_finish.rb
--- old/yast2-iscsi-client-4.1.2/src/clients/iscsi-client_finish.rb     
2018-11-09 14:46:40.000000000 +0100
+++ new/yast2-iscsi-client-4.1.4/src/clients/iscsi-client_finish.rb     
2018-12-20 10:30:23.000000000 +0100
@@ -32,6 +32,8 @@
 #
 require "yast2/systemd/socket"
 
+require "shellwords"
+
 module Yast
   class IscsiClientFinishClient < Client
     def main
@@ -74,19 +76,9 @@
         # write open-iscsi database of automatic connected targets
         WFM.Execute(
           path(".local.bash"),
-          Ops.add(
-            Ops.add(
-              Ops.add(
-                Ops.add(
-                  "test -d /etc/iscsi/ && mkdir -p '",
-                  String.Quote(Installation.destdir)
-                ),
-                "/etc/iscsi' && cp -a /etc/iscsi/* '"
-              ),
-              String.Quote(Installation.destdir)
-            ),
-            "/etc/iscsi/'"
-          )
+          "/usr/bin/test -d /etc/iscsi/ && " \
+            "mkdir -p #{Installation.destdir.shellescape}/etc/iscsi && " \
+            "cp -a /etc/iscsi/* #{Installation.destdir.shellescape}/etc/iscsi/"
         )
         if Ops.greater_than(Builtins.size(IscsiClientLib.sessions), 0)
           Builtins.y2milestone("enabling iscsi and iscsid service/socket")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-iscsi-client-4.1.2/src/icons/hicolor/scalable/apps/yast-iscsi-client.svg
 
new/yast2-iscsi-client-4.1.4/src/icons/hicolor/scalable/apps/yast-iscsi-client.svg
--- 
old/yast2-iscsi-client-4.1.2/src/icons/hicolor/scalable/apps/yast-iscsi-client.svg
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/yast2-iscsi-client-4.1.4/src/icons/hicolor/scalable/apps/yast-iscsi-client.svg
  2018-12-20 10:30:23.000000000 +0100
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="128" height="128" version="1.1" viewBox="0 0 128 128.00001" 
xmlns="http://www.w3.org/2000/svg";>
+<defs>
+<linearGradient id="c" x1="10" x2="10" y1="3" y2="37" 
gradientTransform="matrix(2,0,0,2,-2e-7,14)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#acaba8" offset="0"/>
+<stop stop-color="#cac9c6" offset="1"/>
+</linearGradient>
+<linearGradient id="b" x1="3" x2="29" y1="17" y2="17" 
gradientTransform="matrix(4,0,0,4,0,-8)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#9a9996" offset="0"/>
+<stop stop-color="#deddda" offset=".037101"/>
+<stop stop-color="#9a9996" offset=".076507"/>
+<stop stop-color="#9a9996" offset=".92289"/>
+<stop stop-color="#deddda" offset=".96229"/>
+<stop stop-color="#9a9996" offset="1"/>
+</linearGradient>
+<linearGradient id="a" x1="13.17" x2="13" y1="21" y2="11" 
gradientTransform="matrix(4,0,0,4,0,-12)" gradientUnits="userSpaceOnUse">
+<stop stop-color="#f6f5f4" offset="0"/>
+<stop stop-color="#deddda" offset="1"/>
+</linearGradient>
+</defs>
+<rect x="12" y="32" width="104" height="68" ry="8"/>
+<rect x="12" y="24" width="104" height="68" ry="8" fill="url(#b)"/>
+<rect x="12" y="20" width="104" height="68" ry="8" fill="url(#c)"/>
+<rect x="108" y="80" width="4" height="4" ry="2" fill="#77767b"/>
+<rect x="108" y="24" width="4" height="4" ry="2" fill="#77767b"/>
+<rect x="52" y="24" width="4" height="4" ry="2" fill="#77767b"/>
+<rect x="20" y="24" width="4" height="4" ry="2" fill="#77767b"/>
+<rect x="20" y="80" width="4" height="4" ry="2" fill="#77767b"/>
+<rect x="52" y="80" width="4" height="4" ry="2" fill="#77767b"/>
+<path d="m32 28a4.0004 4.0004 0 0 0 -4 4c0 2.2565-1.7435 4-4 4a4.0004 4.0004 0 
0 0 -4 4v32a4.0004 4.0004 0 0 0 4 4c2.2565 0 4 1.7435 4 4a4.0004 4.0004 0 0 0 4 
4h12a4.0004 4.0004 0 0 0 4 -4c0-2.2538 1.7396-3.9959 3.9922-4 0.0426 0.0014 
0.08632 0.0052 0.125 8e-3a4.0004 4.0004 0 0 0 0.56248 -8e-3h6.5624c5.1432 
4.8128 11.847 7.9952 18.898 8 7.3304 0 14.614-3.0198 
19.797-8.2032s8.2032-12.466 
8.2032-19.797-3.0198-14.614-8.2032-19.797c-5.1832-5.1832-12.466-8.2032-19.797-8.2032a4.0004
 4.0004 0 0 0 -8e-3 0c-7.0416 0.0106-13.73 3.1955-18.867 8h-7.2656c-2.2565 
0-4-1.7435-4-4a4.0004 4.0004 0 0 0 -4 -4z" fill="#acaba8"/>
+<path d="m32 24a4.0004 4.0004 0 0 0 -4 4c0 2.2565-1.7435 4-4 4a4.0004 4.0004 0 
0 0 -4 4v32a4.0004 4.0004 0 0 0 4 4c2.2565 0 4 1.7435 4 4a4.0004 4.0004 0 0 0 4 
4h12a4.0004 4.0004 0 0 0 4 -4c0-2.2538 1.7396-3.9959 3.9922-4 0.0426 0.0014 
0.08632 0.0052 0.125 8e-3a4.0004 4.0004 0 0 0 0.56248 -8e-3h6.5624c5.1432 
4.8128 11.847 7.9952 18.898 8 7.3304 0 14.614-3.0198 
19.797-8.2032s8.2032-12.466 
8.2032-19.797-3.0198-14.614-8.2032-19.797c-5.1832-5.1832-12.466-8.2032-19.797-8.2032a4.0004
 4.0004 0 0 0 -8e-3 0c-7.0416 0.0106-13.73 3.1955-18.867 8h-7.2656c-2.2565 
0-4-1.7435-4-4a4.0004 4.0004 0 0 0 -4 -4z" fill="url(#a)"/>
+<rect x="72" y="40" width="16" height="16" ry="8" fill="#adaba7" 
fill-opacity=".9959"/>
+<rect x="72" y="44" width="16" height="16" ry="8" fill="#cac9c6" 
fill-opacity=".9959"/>
+<rect x="48" y="108" width="32" height="12" ry="4" fill="#613583"/>
+<rect x="16" y="112" width="96" height="4" ry="0" fill="#613583"/>
+<rect x="60" y="96" width="8" height="12" fill="#a347ba"/>
+<rect x="48" y="104" width="32" height="12" ry="4" fill="#a347ba"/>
+<rect x="16" y="108" width="96" height="4" ry="0" fill="#a347ba"/>
+</svg>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-iscsi-client-4.1.2/src/icons/hicolor/symbolic/apps/yast-iscsi-client-symbolic.svg
 
new/yast2-iscsi-client-4.1.4/src/icons/hicolor/symbolic/apps/yast-iscsi-client-symbolic.svg
--- 
old/yast2-iscsi-client-4.1.2/src/icons/hicolor/symbolic/apps/yast-iscsi-client-symbolic.svg
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/yast2-iscsi-client-4.1.4/src/icons/hicolor/symbolic/apps/yast-iscsi-client-symbolic.svg
 2018-12-20 10:30:23.000000000 +0100
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg"; width="16" height="16">
+  <path d="M 4 0 C 2.892 0 2 0.892 2 2 L 2 11 C 2 12.108 2.892 13 4 13 L 7 13 
L 7 14 L 3 14 L 3 16 L 10 16 L 10 14 L 9 14 L 9 13 L 10 13 L 10 10 L 14 10 L 14 
2 C 14 0.892 13.108 0 12 0 L 4 0 z M 8 2 C 10.216 2 12 3.784 12 6 C 12 8.216 
10.216 10 8 10 L 4 10 L 4 6 C 4 3.784 5.784 2 8 2 z M 8 4 C 6.892 4 6 4.892 6 6 
C 6 7.108 6.892 8 8 8 C 9.108 8 10 7.108 10 6 C 10 4.892 9.108 4 8 4 z M 11 11 
L 11 16 L 16 16 L 16 11 L 11 11 z M 12 12 L 13 12 L 13 13 L 14 13 L 14 12 L 15 
12 L 15 14 L 14 14 L 14 15 L 13 15 L 13 14 L 12 14 L 12 12 z "  fill="#c0bfbc" 
/>
+</svg>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-iscsi-client-4.1.2/src/include/iscsi-client/dialogs.rb 
new/yast2-iscsi-client-4.1.4/src/include/iscsi-client/dialogs.rb
--- old/yast2-iscsi-client-4.1.2/src/include/iscsi-client/dialogs.rb    
2018-11-09 14:46:40.000000000 +0100
+++ new/yast2-iscsi-client-4.1.4/src/include/iscsi-client/dialogs.rb    
2018-12-20 10:30:23.000000000 +0100
@@ -432,7 +432,6 @@
         VStretch()
       )
 
-      help = CWM.MergeHelps(w)
       contents = CWM.PrepareDialog(contents, w)
       Wizard.SetContentsButtons(
         caption,
@@ -459,7 +458,6 @@
                                                                                
   1
         ))
       )
-      help = CWM.MergeHelps(w)
       contents = CWM.PrepareDialog(contents, w)
       Wizard.SetContentsButtons(
         caption,
@@ -497,7 +495,6 @@
         VStretch()
       )
 
-      help = CWM.MergeHelps(w)
       contents = CWM.PrepareDialog(contents, w)
       Wizard.SetContentsButtons(
         caption,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-iscsi-client-4.1.2/src/include/iscsi-client/widgets.rb 
new/yast2-iscsi-client-4.1.4/src/include/iscsi-client/widgets.rb
--- old/yast2-iscsi-client-4.1.2/src/include/iscsi-client/widgets.rb    
2018-11-09 14:46:40.000000000 +0100
+++ new/yast2-iscsi-client-4.1.4/src/include/iscsi-client/widgets.rb    
2018-12-20 10:30:23.000000000 +0100
@@ -27,6 +27,9 @@
 # Authors:     Michal Zugec <mzu...@suse.cz>
 #
 # Main file for iscsi-client configuration. Uses all other files.
+
+require "shellwords"
+
 module Yast
   module IscsiClientWidgetsInclude
     def initialize_iscsi_client_widgets(_include_target)
@@ -526,6 +529,7 @@
         when :auth_out
           status = Convert.to_boolean(UI.QueryWidget(Id(:auth_out), :Value))
         end
+        # FIXME: status unused, so this method do nothing
       end
       nil
     end
@@ -565,7 +569,7 @@
         if !IP.Check(ip)
           # check for valid host name
           result = SCR.Execute(path(".target.bash_output"),
-            "LC_ALL=POSIX host #{ip}")
+            "LC_ALL=POSIX host #{ip.shellescape}")
           Builtins.y2milestone("Cmd: host %1, result: %2", ip, result)
           output = result["stdout"] || ""
 
@@ -762,15 +766,13 @@
             cmd = IscsiClientLib.GetAdmCmd(
               Builtins.sformat(
                 "-m node -T %1 -p %2 -I %3 --op=delete",
-                Ops.get(params, 1, ""),
-                Ops.get(params, 0, ""),
-                Ops.get(params, 2, "")
+                Ops.get(params, 1, "").shellescape,
+                Ops.get(params, 0, "").shellescape,
+                Ops.get(params, 2, "").shellescape
               )
             )
-            Builtins.y2milestone(
-              "%1",
-              SCR.Execute(path(".target.bash_output"), cmd, {})
-            )
+            result = SCR.Execute(path(".target.bash_output"), cmd, {})
+            Builtins.y2milestone(result.inspect)
             IscsiClientLib.readSessions
             initDiscoveredTable("")
             if selected != nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-iscsi-client-4.1.2/src/modules/IscsiClientLib.rb 
new/yast2-iscsi-client-4.1.4/src/modules/IscsiClientLib.rb
--- old/yast2-iscsi-client-4.1.2/src/modules/IscsiClientLib.rb  2018-11-09 
14:46:40.000000000 +0100
+++ new/yast2-iscsi-client-4.1.4/src/modules/IscsiClientLib.rb  2018-12-20 
10:30:23.000000000 +0100
@@ -25,12 +25,16 @@
 require "yast2/systemd/socket"
 require "ipaddr"
 
+require "shellwords"
+
 module Yast
   class IscsiClientLibClass < Module
     include Yast::Logger
 
     Yast.import "Arch"
 
+    OFFLOAD_SCRIPT = "/sbin/iscsi_offload".freeze
+
     def main
       textdomain "iscsi-client"
 
@@ -67,8 +71,6 @@
       # interface type for hardware offloading
       @offload_card = "default"
 
-      @offboard_script = "iscsi_offload"
-
       @offload = [
         ["default", _("default (Software)"), [], []],
         ["all", _("all"), [], []],
@@ -175,7 +177,7 @@
     # @return [String] complete command
     #
     def GetAdmCmd(params, do_log = true)
-      ret = "LC_ALL=POSIX iscsiadm"
+      ret = "LC_ALL=POSIX /sbin/iscsiadm"
       ret = Ops.add(Ops.add(ret, " "), params)
       Builtins.y2milestone("GetAdmCmd: #{ret}") if do_log
       ret
@@ -237,7 +239,7 @@
           return @ibft
         end
         ret = SCR.Execute(path(".target.bash_output"),
-          "lsmod |grep -q iscsi_ibft || modprobe iscsi_ibft")
+          "/usr/bin/lsmod | /usr/bin/grep -q iscsi_ibft || /usr/sbin/modprobe 
iscsi_ibft")
         log.info "check and modprobe iscsi_ibft: #{ret}"
 
         @ibft = nodeInfoToMap(getFirmwareInfo)
@@ -322,16 +324,12 @@
       cmdline = GetAdmCmd(
         Builtins.sformat(
           "-S -m node -I %3 -T %1 -p %2",
-          Ops.get(@currentRecord, 1, ""),
-          Ops.get(@currentRecord, 0, ""),
-          Ops.get(@currentRecord, 2, "default")
+          Ops.get(@currentRecord, 1, "").shellescape,
+          Ops.get(@currentRecord, 0, "").shellescape,
+          Ops.get(@currentRecord, 2, "default").shellescape
         )
       )
-      cmd = Convert.convert(
-        SCR.Execute(path(".target.bash_output"), cmdline),
-        :from => "any",
-        :to   => "map <string, any>"
-      )
+      cmd = SCR.Execute(path(".target.bash_output"), cmdline)
       return {} if Ops.get_integer(cmd, "exit", 0) != 0
       auth = {}
       Builtins.foreach(
@@ -509,11 +507,7 @@
     # get all discovered targets
     def getDiscovered
       @discovered = []
-      retcode = Convert.convert(
-        SCR.Execute(path(".target.bash_output"), GetAdmCmd("-m node -P 1")),
-        :from => "any",
-        :to   => "map <string, any>"
-      )
+      retcode = SCR.Execute(path(".target.bash_output"), GetAdmCmd("-m node -P 
1"))
       if Builtins.size(Ops.get_string(retcode, "stderr", "")) == 0
         @discovered = ScanDiscovered(
           Builtins.splitstring(Ops.get_string(retcode, "stdout", ""), "\n")
@@ -529,20 +523,16 @@
     end
 
     def restart_iscsid_initial
-      retcode = Convert.to_integer(SCR.Execute(path(".target.bash"), "pgrep 
iscsid"))
+      retcode = SCR.Execute(path(".target.bash"), "/usr/bin/pgrep iscsid")
       Service.Stop("iscsid") if retcode == 0
       start_iscsid_initial
     end
 
     def start_iscsid_initial
-      SCR.Execute(path(".target.bash"), "pgrep iscsid || /sbin/iscsid")
-      Builtins.foreach([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) do |i|
+      SCR.Execute(path(".target.bash"), "/usr/bin/pgrep iscsid || 
/sbin/iscsid")
+      10.times do |i|
         Builtins.sleep(1 * 1000)
-        cmd = Convert.convert(
-          SCR.Execute(path(".target.bash_output"), GetAdmCmd("-m session")),
-          :from => "any",
-          :to   => "map <string, any>"
-        )
+        cmd = SCR.Execute(path(".target.bash_output"), GetAdmCmd("-m session"))
         Builtins.y2internal(
           "iteration %1, retcode %2",
           i,
@@ -550,7 +540,7 @@
         )
         if Ops.get_integer(cmd, "exit", -1) == 0
           Builtins.y2internal("Good response from daemon, exit.")
-          raise Break
+          break
         end
       end
 
@@ -560,11 +550,7 @@
     # get all connected targets
     def readSessions
       Builtins.y2milestone("reading current settings")
-      retcode = Convert.convert(
-        SCR.Execute(path(".target.bash_output"), GetAdmCmd("-m session -P 1")),
-        :from => "any",
-        :to   => "map <string, any>"
-      )
+      retcode = SCR.Execute(path(".target.bash_output"), GetAdmCmd("-m session 
-P 1"))
       @sessions = ScanDiscovered(
         Builtins.splitstring(Ops.get_string(retcode, "stdout", ""), "\n")
       )
@@ -602,7 +588,7 @@
         Builtins.y2milestone("%1 file exists, create backup", file)
         SCR.Execute(
           path(".target.bash"),
-          Builtins.sformat("mv %1 /etc/iscsi/initiatorname.yastbackup", file)
+          Builtins.sformat("/usr/bin/mv %1 
/etc/iscsi/initiatorname.yastbackup", file.shellescape)
         )
       end
       ret = SCR.Write(
@@ -627,11 +613,7 @@
     def getReverseDomainName
       host_fq = Hostname.SplitFQ(
         Ops.get_string(
-          Convert.convert(
-            SCR.Execute(path(".target.bash_output"), "hostname -f|tr -d '\n'"),
-            :from => "any",
-            :to   => "map <string, any>"
-          ),
+          SCR.Execute(path(".target.bash_output"), "/usr/bin/hostname -f | 
/usr/bin/tr -d '\n'"),
           "stdout",
           ""
         )
@@ -659,16 +641,12 @@
       name_from_bios = getiBFT["iface.initiatorname"] || ""
       # if (size((map<string, any>)SCR::Read (.target.lstat, file)) == 0 || 
((map<string, any>)SCR::Read (.target.lstat, file))["size"]:0==0){
       @initiatorname = Ops.get_string(
-        Convert.convert(
-          SCR.Execute(
-            path(".target.bash_output"),
-            Builtins.sformat(
-              "grep -v '^#' %1 | grep InitiatorName | cut -d'=' -f2 | tr -d 
'\n'",
-              file
-            )
-          ),
-          :from => "any",
-          :to   => "map <string, any>"
+        SCR.Execute(
+          path(".target.bash_output"),
+          Builtins.sformat(
+            "/usr/bin/grep -v '^#' %1 | /usr/bin/grep InitiatorName | 
/usr/bin/cut -d'=' -f2 | /usr/bin/tr -d '\n'",
+            file.shellescape
+          )
         ),
         "stdout",
         ""
@@ -683,27 +661,14 @@
           @initiatorname = name_from_bios
         else
           Builtins.y2milestone("InitiatorName does not exist - generate it")
-          domain = Ops.get_string(
-            Convert.convert(
-              SCR.Execute(path(".target.bash_output"), ""),
-              :from => "any",
-              :to   => "map <string, any>"
-            ),
-            "stdout",
-            "com.example"
-          )
-          output = Convert.convert(
-            SCR.Execute(
-              path(".target.bash_output"),
-              Builtins.sformat(
-                "/sbin/iscsi-iname -p iqn.%1.%2:01 | tr -d '\n'",
-                "`date +%Y-%m`",
-                getReverseDomainName
-              ),
-              {}
+          output = SCR.Execute(
+            path(".target.bash_output"),
+            Builtins.sformat(
+              "/sbin/iscsi-iname -p iqn.%1.%2:01 | tr -d '\n'",
+              "`date +%Y-%m`",
+              getReverseDomainName.shellescape
             ),
-            :from => "any",
-            :to   => "map <string, any>"
+            {}
           )
           if Builtins.size(Ops.get_string(output, "stderr", "")) == 0
             @initiatorname = Ops.get_string(output, "stdout", "")
@@ -744,20 +709,16 @@
       ret = true
       Builtins.y2milestone("Delete record %1", @currentRecord)
 
-      retcode = Convert.convert(
-        SCR.Execute(
-          path(".target.bash_output"),
-          GetAdmCmd(
-            Builtins.sformat(
-              "-m node -I %3 -T %1 -p %2 --logout",
-              Ops.get(@currentRecord, 1, ""),
-              Ops.get(@currentRecord, 0, ""),
-              Ops.get(@currentRecord, 2, "default")
-            )
+      retcode = SCR.Execute(
+        path(".target.bash_output"),
+        GetAdmCmd(
+          Builtins.sformat(
+            "-m node -I %3 -T %1 -p %2 --logout",
+            Ops.get(@currentRecord, 1, "").shellescape,
+            Ops.get(@currentRecord, 0, "").shellescape,
+            Ops.get(@currentRecord, 2, "default").shellescape
           )
-        ),
-        :from => "any",
-        :to   => "map <string, any>"
+        )
       )
       if Ops.greater_than(
         Builtins.size(Ops.get_string(retcode, "stderr", "")),
@@ -776,7 +737,7 @@
     #                   converted to a hash
     def getCurrentNodeValues
       ret = SCR.Execute(path(".target.bash_output"),
-        GetAdmCmd("-m node -I #{@currentRecord[2] || "default"} -T 
#{@currentRecord[1] || ""} -p #{@currentRecord[0] || ""}"))
+        GetAdmCmd("-m node -I #{(@currentRecord[2] || "default").shellescape} 
-T #{(@currentRecord[1] || "").shellescape} -p #{(@currentRecord[0] || 
"").shellescape}"))
       return {} if ret["exit"] != 0
 
       nodeInfoToMap(ret["stdout"] || "")
@@ -842,20 +803,16 @@
       Builtins.y2milestone("set %1  for record %2", name, rec)
 
       log = !name.include?("password")
-      cmd = "-m node -I #{rec[2] || "default"} -T #{rec[1] || ""} -p #{rec[0] 
|| ""} --op=update --name=#{name}"
+      cmd = "-m node -I #{(rec[2] || "default").shellescape} -T #{(rec[1] || 
"").shellescape} -p #{(rec[0] || "").shellescape} --op=update 
--name=#{name.shellescape}"
 
-      command = GetAdmCmd("#{cmd} --value=#{value}", log)
+      command = GetAdmCmd("#{cmd} --value=#{value.shellescape}", log)
       if !log
         value = "*****" if !value.empty?
         Builtins.y2milestone("AdmCmd:LC_ALL=POSIX iscsiadm #{cmd} 
--value=#{value}")
       end
 
       ret = true
-      retcode = Convert.convert(
-        SCR.Execute(path(".target.bash_output"), command),
-        :from => "any",
-        :to   => "map <string, any>"
-      )
+      retcode = SCR.Execute(path(".target.bash_output"), command)
       if Ops.greater_than(
         Builtins.size(Ops.get_string(retcode, "stderr", "")),
         0
@@ -946,21 +903,17 @@
         status
       )
       ret = true
-      retcode = Convert.convert(
-        SCR.Execute(
-          path(".target.bash_output"),
-          GetAdmCmd(
-            Builtins.sformat(
-              "-m node -I%3 -T %1 -p %2 --op=update 
--name=node.conn[0].startup --value=%4",
-              Ops.get(@currentRecord, 1, ""),
-              Ops.get(@currentRecord, 0, ""),
-              Ops.get(@currentRecord, 2, "default"),
-              status
-            )
+      retcode = SCR.Execute(
+        path(".target.bash_output"),
+        GetAdmCmd(
+          Builtins.sformat(
+            "-m node -I%3 -T %1 -p %2 --op=update --name=node.conn[0].startup 
--value=%4",
+            Ops.get(@currentRecord, 1, "").shellescape,
+            Ops.get(@currentRecord, 0, "").shellescape,
+            Ops.get(@currentRecord, 2, "default").shellescape,
+            status.shellescape
           )
-        ),
-        :from => "any",
-        :to   => "map <string, any>"
+        )
       )
       if Ops.greater_than(
         Builtins.size(Ops.get_string(retcode, "stderr", "")),
@@ -968,21 +921,17 @@
       )
         return false
       else
-        retcode = Convert.convert(
-          SCR.Execute(
-            path(".target.bash_output"),
-            GetAdmCmd(
-              Builtins.sformat(
-                "-m node -I %3 -T %1 -p %2 --op=update --name=node.startup 
--value=%4",
-                Ops.get(@currentRecord, 1, ""),
-                Ops.get(@currentRecord, 0, ""),
-                Ops.get(@currentRecord, 2, "default"),
-                status
-              )
+        retcode = SCR.Execute(
+          path(".target.bash_output"),
+          GetAdmCmd(
+            Builtins.sformat(
+              "-m node -I %3 -T %1 -p %2 --op=update --name=node.startup 
--value=%4",
+              Ops.get(@currentRecord, 1, "").shellescape,
+              Ops.get(@currentRecord, 0, "").shellescape,
+              Ops.get(@currentRecord, 2, "default").shellescape,
+              status.shellescape
             )
-          ),
-          :from => "any",
-          :to   => "map <string, any>"
+          )
         )
       end
 
@@ -994,8 +943,7 @@
       ret = true
       log.info "begin of autoLogOn function"
       if !getiBFT.empty?
-        result = Convert.to_map(SCR.Execute(path(".target.bash_output"),
-          GetAdmCmd("-m fw -l")))
+        result = SCR.Execute(path(".target.bash_output"), GetAdmCmd("-m fw 
-l"))
         ret = false if result["exit"] != 0
         log.info "Autologin into iBFT : #{result}"
       end
@@ -1036,20 +984,16 @@
         setValue("node.session.auth.authmethod", "None")
       end
 
-      output = Convert.convert(
-        SCR.Execute(
-          path(".target.bash_output"),
-          GetAdmCmd(
-            Builtins.sformat(
-              "-m node -I %3 -T %1 -p %2 --login",
-              Ops.get_string(target, "target", ""),
-              Ops.get_string(target, "portal", ""),
-              Ops.get_string(target, "iface", "")
-            )
+      output = SCR.Execute(
+        path(".target.bash_output"),
+        GetAdmCmd(
+          Builtins.sformat(
+            "-m node -I %3 -T %1 -p %2 --login",
+            Ops.get_string(target, "target", "").shellescape,
+            Ops.get_string(target, "portal", "").shellescape,
+            Ops.get_string(target, "iface", "").shellescape
           )
-        ),
-        :from => "any",
-        :to   => "map <string, any>"
+        )
       )
       Builtins.y2internal("output %1", output)
 
@@ -1179,8 +1123,8 @@
             GetAdmCmd(
               Builtins.sformat(
                 "-m discovery %1 -t st -p %2",
-                ifacepar,
-                Ops.get_string(target, "portal", "")
+                ifacepar.shellescape,
+                Ops.get_string(target, "portal", "").shellescape
               )
             )
           )
@@ -1254,11 +1198,7 @@
 
     def InitOffloadCard
       ret = "default"
-      retcode = Convert.convert(
-        SCR.Execute(path(".target.bash_output"), GetAdmCmd("-m node -P 1")),
-        :from => "any",
-        :to   => "map <string, any>"
-      )
+      retcode = SCR.Execute(path(".target.bash_output"), GetAdmCmd("-m node -P 
1"))
       ifaces = []
       if Builtins.size(Ops.get_string(retcode, "stderr", "")) == 0
         Builtins.foreach(
@@ -1293,16 +1233,9 @@
       Builtins.y2milestone("InitIfaceFile files:%1", files)
       if files == nil || Builtins.size(files) == 0
         cmd = GetAdmCmd("-m iface")
-        Builtins.y2milestone("InitIfaceFile cmd:%1", cmd)
-        Builtins.y2milestone(
-          "InitIfaceFile ret:%1",
-          SCR.Execute(path(".target.bash_output"), cmd)
-        )
-        files = Convert.convert(
-          SCR.Read(path(".target.dir"), "/etc/iscsi/ifaces"),
-          :from => "any",
-          :to   => "list <string>"
-        )
+        res = SCR.Execute(path(".target.bash_output"), cmd)
+        Builtins.y2milestone("InitIfaceFile cmd:#{cmd}\nres:#{res.inspect}", 
cmd)
+        files = SCR.Read(path(".target.dir"), "/etc/iscsi/ifaces")
         Builtins.y2milestone("InitIfaceFile files:%1", files)
       end
       Builtins.foreach(files) do |file|
@@ -1342,7 +1275,6 @@
     end
 
     def GetOffloadItems
-      i = 0
       init = false
       if @offload_valid == nil
         init = true
@@ -1374,14 +1306,12 @@
 
         idx = 0
         Builtins.foreach(@offload) do |l|
-          valid = false
           mod = Convert.convert(
             Builtins.sort(Ops.get_list(l, 2, [])),
             :from => "list",
             :to   => "list <string>"
           )
           if Ops.greater_than(Builtins.size(mod), 0)
-            i = 0
             Builtins.foreach(hw_mods) do |hw|
               if Ops.greater_than(
                 Builtins.size(
@@ -1427,13 +1357,7 @@
             Builtins.filter(
               Convert.convert(eth, :from => "list", :to => "list <list>")
             ) do |l|
-              cmd = Ops.add(
-                Ops.add(
-                  Ops.add(@offboard_script, " "),
-                  Ops.get_string(l, 0, "")
-                ),
-                " | grep ..:..:..:.." # grep for lines containing MAC address
-              )
+              cmd = "#{OFFLOAD_SCRIPT} #{Ops.get_string(l, 0, "").shellescape} 
| grep ..:..:..:.." # grep for lines containing MAC address
               Builtins.y2milestone("GetOffloadItems cmd:%1", cmd)
               out = Convert.to_map(
                 SCR.Execute(path(".target.bash_output"), cmd)
@@ -1441,15 +1365,13 @@
               # Example for output if offload is supported on interface:
               # cmd: iscsi_offload eth2
               # out: $["exit":0, "stderr":"", "stdout":"00:00:c9:b1:bc:7f ip 
\n"]
+              result = SCR.Execute(
+                path(".target.bash_output"),
+                "#{OFFLOAD_SCRIPT} #{Ops.get_string(l, 0, "").shellescape}"
+              )
               Builtins.y2milestone(
                 "GetOffloadItems iscsi_offload out:%1",
-                SCR.Execute(
-                  path(".target.bash_output"),
-                  Ops.add(
-                    Ops.add(@offboard_script, " "),
-                    Ops.get_string(l, 0, "")
-                  )
-                )
+                result
               )
               Ops.set(offload_res, Ops.get_string(l, 0, ""), {})
               Ops.set(
@@ -1506,14 +1428,10 @@
           Ops.set(
             @offload_valid,
             i2,
-            Builtins.maplist(
-              Convert.convert(eth, :from => "list", :to => "list <list>")
-            ) do |l|
-              cmd = Ops.add("LC_ALL=POSIX ifconfig ", Ops.get_string(l, 0, ""))
+            Builtins.maplist(eth) do |l|
+              cmd = "LC_ALL=POSIX /usr/bin/ifconfig " + Ops.get_string(l, 0, 
"").shellescape # FIXME: ifconfig is deprecated
               Builtins.y2milestone("GetOffloadItems cmd:%1", cmd)
-              out = Convert.to_map(
-                SCR.Execute(path(".target.bash_output"), cmd)
-              )
+              out = SCR.Execute(path(".target.bash_output"), cmd)
               Builtins.y2milestone("GetOffloadItems out:%1", out)
               # Search for lines containing "init addr", means IPv4 address.
               # Regarding the IPv6 support there are no changes needed here 
because
@@ -1600,8 +1518,7 @@
     end
 
     def GetOffloadModules
-      it = nil
-      it = GetOffloadItems() if @offload_valid == nil
+      GetOffloadItems() if @offload_valid == nil
       modules = []
       Builtins.foreach(@offload_valid) do |i, _l|
         modules = Convert.convert(
@@ -1657,12 +1574,9 @@
         ) { |l| Ops.get_string(l, 2, "") == s }
         Builtins.y2milestone("CallConfigScript hw:%1", hw)
         if hw != nil
-          cmd = Ops.add(
-            Ops.add(@offboard_script, " "),
-            Ops.get_string(hw, 0, "")
-          )
+          cmd = "#{OFFLOAD_SCRIPT} #{Ops.get_string(hw, 0, "").shellescape}"
           Builtins.y2milestone("CallConfigScript cmd:%1", cmd)
-          output = Convert.to_map(SCR.Execute(path(".target.bash_output"), 
cmd))
+          output = SCR.Execute(path(".target.bash_output"), cmd)
           Builtins.y2milestone("CallConfigScript %1", output)
         end
       end


Reply via email to