Hello community,

here is the log from the commit of package yast2-ruby-bindings for 
openSUSE:Factory checked in at 2013-11-07 09:15:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-ruby-bindings (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-ruby-bindings.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-ruby-bindings"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-ruby-bindings/yast2-ruby-bindings.changes  
2013-10-19 11:21:00.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.yast2-ruby-bindings.new/yast2-ruby-bindings.changes 
    2013-11-07 09:15:34.000000000 +0100
@@ -1,0 +2,8 @@
+Fri Oct 25 14:26:08 UTC 2013 - [email protected]
+
+- report exceptions via Report.Error so there is no hidden failures
+- detect invalid response type from clients
+  (gh#yast/yast-ruby-bindings#81)
+- 3.1.2
+
+-------------------------------------------------------------------

Old:
----
  yast2-ruby-bindings-3.1.1.tar.bz2

New:
----
  yast2-ruby-bindings-3.1.2.tar.bz2

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

Other differences:
------------------
++++++ yast2-ruby-bindings.spec ++++++
--- /var/tmp/diff_new_pack.2y7uVk/_old  2013-11-07 09:15:35.000000000 +0100
+++ /var/tmp/diff_new_pack.2y7uVk/_new  2013-11-07 09:15:35.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-ruby-bindings
-Version:        3.1.1
+Version:        3.1.2
 Release:        0
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Source0:        yast2-ruby-bindings-%{version}.tar.bz2

++++++ yast2-ruby-bindings-3.1.1.tar.bz2 -> yast2-ruby-bindings-3.1.2.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ruby-bindings-3.1.1/CONTRIBUTING.md 
new/yast2-ruby-bindings-3.1.2/CONTRIBUTING.md
--- old/yast2-ruby-bindings-3.1.1/CONTRIBUTING.md       1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-ruby-bindings-3.1.2/CONTRIBUTING.md       2013-11-04 
17:05:39.000000000 +0100
@@ -0,0 +1,87 @@
+YaST Contribution Guidelines
+============================
+
+YaST is an open source project and as such it welcomes all kinds of
+contributions. If you decide to contribute, please follow these guidelines to
+ensure the process is effective and pleasant both for you and YaST maintainers.
+
+There are two main forms of contribution: reporting bugs and performing code
+changes.
+
+Bug Reports
+-----------
+
+If you find a problem, please report it either using
+[Bugzilla](https://bugzilla.novell.com/enter_bug.cgi?format=guided&product=openSUSE+Factory&component=YaST2)
+or [GitHub issues](../../issues). (For Bugzilla, use the [simplified
+registration](https://secure-www.novell.com/selfreg/jsp/createSimpleAccount.jsp)
+if you don't have an account yet.)
+
+If you find a problem, please report it either using
+[Bugzilla](https://bugzilla.novell.com/) or GitHub issues. We can't guarantee
+that every bug will be fixed, but we'll try.
+
+When creating a bug report, please follow our [bug reporting
+guidelines](http://en.opensuse.org/openSUSE:Report_a_YaST_bug).
+
+Code Changes
+------------
+
+We welcome all kinds of code contributions, from simple bug fixes to 
significant
+refactorings and implementation of new features. However, before making any
+non-trivial contribution, get in touch with us first — this can prevent wasted
+effort on both sides. Also, have a look at our [development
+documentation](http://en.opensuse.org/openSUSE:YaST_development).
+
+To send us your code change, use GitHub pull requests. The workflow is as
+follows:
+
+  1. Fork the project.
+
+  2. Create a topic branch based on `master`.
+
+  3. Implement your change, including tests (if possible). Make sure you adhere
+     to the [Ruby style
+     guide](https://github.com/SUSE/style-guides/blob/master/Ruby.md).
+
+  4. Make sure your change didn't break anything by building the RPM package
+     (`rake osc:build`). The build process includes running the full testsuite.
+
+  5. Publish the branch and create a pull request.
+
+  6. YaST developers will review your change and possibly point out issues.
+     Adapt the code under their guidance until they are all resolved.
+
+  7. Finally, the pull request will get merged or rejected.
+
+See also [GitHub's guide on
+contributing](https://help.github.com/articles/fork-a-repo).
+
+If you want to do multiple unrelated changes, use separate branches and pull
+requests.
+
+Do not change the `VERSION` and `*.changes` files as this could lead to
+conflicts.
+
+### Commits
+
+Each commit in the pull request should do only one thing, which is clearly
+described by its commit message. Especially avoid mixing formatting changes and
+functional changes into one commit. When writing commit messages, adhere to
+[widely used
+conventions](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
+
+If your commit is related to a bug in Buzgilla or an issue on GitHub, make sure
+you mention it in the commit message for cross-reference. Use format like
+bnc#775814 or gh#yast/yast-foo#42. See also [GitHub
+autolinking](https://help.github.com/articles/github-flavored-markdown#references)
+and [openSUSE abbreviation
+reference](http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines#Current_set_of_abbreviations).
+
+Additional Information
+----------------------
+
+If you have any question, feel free to ask at the [development mailing
+list](http://lists.opensuse.org/yast-devel/) or at the
+[#yast](http://webchat.freenode.net/?channels=%23yast) IRC channel on freenode.
+We'll do our best to provide a timely and accurate answer.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ruby-bindings-3.1.1/VERSION 
new/yast2-ruby-bindings-3.1.2/VERSION
--- old/yast2-ruby-bindings-3.1.1/VERSION       2013-10-15 15:26:18.000000000 
+0200
+++ new/yast2-ruby-bindings-3.1.2/VERSION       2013-11-04 17:05:39.000000000 
+0100
@@ -1 +1 @@
-3.1.1
+3.1.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ruby-bindings-3.1.1/package/yast2-ruby-bindings.changes 
new/yast2-ruby-bindings-3.1.2/package/yast2-ruby-bindings.changes
--- old/yast2-ruby-bindings-3.1.1/package/yast2-ruby-bindings.changes   
2013-10-15 15:26:18.000000000 +0200
+++ new/yast2-ruby-bindings-3.1.2/package/yast2-ruby-bindings.changes   
2013-11-04 17:05:39.000000000 +0100
@@ -1,4 +1,12 @@
 -------------------------------------------------------------------
+Fri Oct 25 14:26:08 UTC 2013 - [email protected]
+
+- report exceptions via Report.Error so there is no hidden failures
+- detect invalid response type from clients
+  (gh#yast/yast-ruby-bindings#81)
+- 3.1.2
+
+-------------------------------------------------------------------
 Tue Oct 15 13:01:18 UTC 2013 - [email protected]
 
 - float_to_lstring(): do not crash when glibc-locale is missing,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-ruby-bindings-3.1.1/package/yast2-ruby-bindings.spec 
new/yast2-ruby-bindings-3.1.2/package/yast2-ruby-bindings.spec
--- old/yast2-ruby-bindings-3.1.1/package/yast2-ruby-bindings.spec      
2013-10-15 15:26:18.000000000 +0200
+++ new/yast2-ruby-bindings-3.1.2/package/yast2-ruby-bindings.spec      
2013-11-04 17:05:39.000000000 +0100
@@ -3,7 +3,7 @@
 #
 
 Name:           yast2-ruby-bindings
-Version:        3.1.0
+Version:        3.1.2
 Release:        0
 License:        GPL-2.0
 Group:          System/YaST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ruby-bindings-3.1.1/src/binary/CMakeLists.txt 
new/yast2-ruby-bindings-3.1.2/src/binary/CMakeLists.txt
--- old/yast2-ruby-bindings-3.1.1/src/binary/CMakeLists.txt     2013-10-15 
15:26:18.000000000 +0200
+++ new/yast2-ruby-bindings-3.1.2/src/binary/CMakeLists.txt     2013-11-04 
17:05:39.000000000 +0100
@@ -67,10 +67,9 @@
 # tight control) CMake should be able to handle this. However, it somehow does
 # not work.
 #
-#set_target_properties( yastx PROPERTIES SKIP_BUILD_RPATH FALSE)
-#set_target_properties( yastx PROPERTIES BUILD_WITH_INSTALL_RPATH FALSE)
-#set_target_properties( yastx PROPERTIES INSTALL_RPATH_USE_LINK_PATH FALSE)
-#set_target_properties( yastx PROPERTIES INSTALL_RPATH "${YAST_PLUGIN_DIR}")
+# jreidinger: new cmake start stripping it, so it need to be explicitelly added
+set_target_properties( yastx PROPERTIES INSTALL_RPATH "${YAST_PLUGIN_DIR}")
+set_target_properties( builtinx PROPERTIES INSTALL_RPATH "${YAST_PLUGIN_DIR}")
 #
 # So using an explicit linker option instead:
 # (http://www.cmake.org/pipermail/cmake/2008-January/019321.html)
@@ -109,4 +108,5 @@
 target_link_libraries( py2lang_ruby ${YAST_YCP_LIBRARY} )
 target_link_libraries( py2lang_ruby ${YAST_PLUGIN_WFM_LIBRARY} )
 target_link_libraries( py2lang_ruby ${RUBY_LIBRARY} )
+set_target_properties( py2lang_ruby PROPERTIES INSTALL_RPATH 
"${YAST_PLUGIN_DIR}")
 install(TARGETS py2lang_ruby LIBRARY DESTINATION ${YAST_PLUGIN_DIR} )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ruby-bindings-3.1.1/src/ruby/yast/scr.rb 
new/yast2-ruby-bindings-3.1.2/src/ruby/yast/scr.rb
--- old/yast2-ruby-bindings-3.1.1/src/ruby/yast/scr.rb  2013-10-15 
15:26:18.000000000 +0200
+++ new/yast2-ruby-bindings-3.1.2/src/ruby/yast/scr.rb  2013-11-04 
17:05:39.000000000 +0100
@@ -4,47 +4,110 @@
   # Wrapper class for SCR component in Yast
   # See yast documentation for SCR
   module SCR
-    def self.Read *args
-      call_builtin_wrapper("Read",*args)
-    end
-
-    def self.Write *args
-      call_builtin_wrapper("Write", *args)
-    end
-
-    def self.Execute *args
-      call_builtin_wrapper("Execute", *args)
-    end
-
-    def self.Dir *args
-      call_builtin_wrapper("Dir", *args)
-    end
-
-    def self.Error *args
-      call_builtin_wrapper("Error", *args)
-    end
-
-    def self.RegisterAgent *args
-      call_builtin_wrapper("RegisterAgent", *args)
-    end
-
-    def self.RegisterNewAgents *args
-      call_builtin_wrapper("RegisterNewAgents", *args)
-    end
-
-    def self.UnregisterAgent *args
-      call_builtin_wrapper("UnregisterAgent", *args)
-    end
-
-    def self.UnregisterAllAgents *args
-      call_builtin_wrapper("UnregisterAllAgents", *args)
-    end
 
-    def self.UnmountAgent *args
-      call_builtin_wrapper("UnmountAgent", *args)
+    # Reads data
+    # @param path[Yast::Path] path that is combination of path where agent is
+    #   attached and path inside agent
+    # @param args additional arguments depending on agent, usually optional
+    #
+    # @example Get netcards discovered by probe agent
+    #    SCR.Read(path(".probe.netcard"))
+    # @example Read content of file /tmp/test
+    #    SCR.Read(path(".target.string"), "tmp/test")
+    def self.Read (path, *args)
+      call_builtin_wrapper("Read", path, *args)
+    end
+
+    # Writes data
+    # @param path[Yast::Path] path that is combination of path where agent is
+    #   attached and path inside agent
+    # @param args additional arguments depending on agent
+    # @return [true,false] success
+    #
+    # @example change default desktop in sysconfig to kde
+    #   SCR.Write(path(".sysconfig.windowmanager.DEFAULT_WM"), "kde")
+    # @example write string s to file /tmp/f
+    #  SCR.Write(path(".target.string"), "/tmp/f", "s")
+    def self.Write (path, *args)
+      call_builtin_wrapper("Write", path, *args)
+    end
+
+    # Executes command
+    # @param path[Yast::Path] path to agent
+    # @param args additional arguments depending on agent
+    # @example halt computer
+    #    SCR.Execute(path(".target.bash"), "/sbin/halt -f -n -p")
+    # @example umount /mnt path
+    #    SCR.Execute(path(".target.umount"), "/mnt")
+    def self.Execute (path, *args)
+      call_builtin_wrapper("Execute", path, *args)
+    end
+
+    # Gets array of all children attached directly below path
+    # @param path[Yast::Path] sub-path where to search for children
+    # @return [Array<String>] list of children names
+    #
+    # @example get all sysconfig agents
+    #    SCR.Dir(path(".sysconfig"))
+    # @example get all keys in install inf
+    #    SCR.Dir(path(".etc.install_inf"))
+    def self.Dir (path)
+      call_builtin_wrapper("Dir", path)
+    end
+
+    # Gets detailled error description from agent
+    # @param path[Yast::Path] path to agent
+    # @return [Hash] with keys "code" and "summary"
+    def self.Error (path)
+      call_builtin_wrapper("Error", path)
+    end
+
+    # Register an agent at given path with description
+    #
+    # @param path [Yast::Path] path to agent
+    # @param description [Yast::Term,String] path to file description or direct
+    #    term with agent description
+    # @return [true,false] if succeed
+    def self.RegisterAgent (path, description)
+      call_builtin_wrapper("RegisterAgent", path, description)
+    end
+
+    # Register new agents. (bnc#245508#c16)
+    #
+    # Rescan the scrconf registration directories and register any
+    # agents at new(!) paths. Agents, even new ones, on paths that
+    # are registered already, will not be replaced.  This means that
+    # .oes.specific.agent will start to work but something like
+    # adding /usr/local/etc/sysconfig to .sysconfig.network would not.
+    # @return [true,false] if succeed
+    def self.RegisterNewAgents
+      call_builtin_wrapper("RegisterNewAgents")
+    end
+
+    # Unregister agent from given path
+    # @param path [Yast::Path] path to agent
+    # @return [true,false] if succeed
+    def self.UnregisterAgent (path)
+      call_builtin_wrapper("UnregisterAgent", path)
+    end
+
+    # Unregister all agents
+    # @return [true,false] if succeed
+    def self.UnregisterAllAgents
+      call_builtin_wrapper("UnregisterAllAgents")
+    end
+
+    # Unmounts agent. The agent is detached, but when needed it is mounted 
again automatically.
+    #
+    # It sends to component result() which force to terminate component.
+    # If there is any lazy write, then it is properly finished.
+    # @param path[Yast::Path] path to agent
+    def self.UnmountAgent (path)
+      call_builtin_wrapper("UnmountAgent", path)
     end
 
-    def self.call_builtin_wrapper *args
+    # @private wrapper to C bindings
+    def self.call_builtin_wrapper (*args)
       # caller[0] is one of the functions above
       caller[1].match BACKTRACE_REGEXP
       call_builtin($1, $2.to_i, *args)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-ruby-bindings-3.1.1/src/ruby/yast/wfm.rb 
new/yast2-ruby-bindings-3.1.2/src/ruby/yast/wfm.rb
--- old/yast2-ruby-bindings-3.1.1/src/ruby/yast/wfm.rb  2013-10-15 
15:26:18.000000000 +0200
+++ new/yast2-ruby-bindings-3.1.2/src/ruby/yast/wfm.rb  2013-11-04 
17:05:39.000000000 +0100
@@ -1,5 +1,6 @@
 require "yast/builtinx"
 require "yast/builtins"
+require "yast/ops"
 
 # @private we need it as clients is called in global contenxt
 GLOBAL_WFM_CONTEXT = Proc.new {}
@@ -7,86 +8,204 @@
   # Wrapper class for WFM component in Yast
   # See yast documentation for WFM
   module WFM
+
+    # Returns list of arguments passed to client or element at given index
+    #
+    # @example Get all args
+    #    Yast::WFM.Args
+    #
+    # @example Get only first argument
+    #    Yast::WFM.Args 0
     def self.Args *args
       call_builtin_wrapper("Args", *args)
     end
 
-    def self.ClientExists *args
-      call_builtin_wrapper("ClientExists", *args)
-    end
-
-    def self.Execute *args
-      call_builtin_wrapper("Execute", *args)
-    end
-
-    def self.GetEncoding *args
-      call_builtin_wrapper("GetEncoding", *args)
-    end
-
-    def self.GetEnvironmentEncoding *args
-      call_builtin_wrapper("GetEnvironmentEncoding", *args)
-    end
-
-    def self.GetLanguage *args
-      call_builtin_wrapper("GetLanguage", *args)
-    end
-
-    def self.Read *args
-      call_builtin_wrapper("Read", *args)
-    end
-
-    def self.SCRClose *args
-      call_builtin_wrapper("SCRClose", *args)
-    end
-
-    def self.SCRGetDefault *args
-      call_builtin_wrapper("SCRGetDefault", *args)
-    end
-
-    def self.SCRGetName *args
-      call_builtin_wrapper("SCRGetName", *args)
-    end
-
-    def self.SCROpen *args
-      call_builtin_wrapper("SCROpen", *args)
-    end
-
-    def self.SCRSetDefault *args
-      call_builtin_wrapper("SCRSetDefault", *args)
-    end
-
-    def self.SetLanguage *args
-      call_builtin_wrapper("SetLanguage", *args)
-    end
-
-    def self.Write *args
-      call_builtin_wrapper("Write", *args)
+    # Checks if client of given name exists on system
+    #
+    # @note useful for checking before calling given client
+    # @see Yast::WFM.CallFunction
+    # @return [true,false]
+    #
+    # @example Check if there is client "inst_bootloader"
+    #    Yast::WFM.ClientExists "inst_bootloader"
+    def self.ClientExists client
+      call_builtin_wrapper("ClientExists", client)
+    end
+
+    # Runs execute on local system agent operating on inst-sys
+    #
+    # @param path[Yast::Path] agent path
+    # @param args arguments to agent
+    #
+    # @note very limited use-case. It is needed only if installer switched to
+    #   scr on target system and agent from inst-sys must be called
+    #
+    # @see SCR.Execute common agent execute
+    #
+    # @example Run command in bash in inst-sys
+    #    Yast::WFM.Execute(Yast::Path.new(".local.bash"), "halt -p")
+    def self.Execute path, *args
+      call_builtin_wrapper("Execute", path, *args)
+    end
+
+    # Returns current encoding code as string
+    #
+    # @deprecated enconding is now always UTF-8
+    # @return [String]
+    def self.GetEncoding
+      call_builtin_wrapper("GetEncoding")
+    end
+
+    # Returns enconding of environment where Yast start
+    #
+    # @return [String]
+    def self.GetEnvironmentEncoding
+      call_builtin_wrapper("GetEnvironmentEncoding")
+    end
+
+    # Returns current language without modifiers as string
+    #
+    # @return [String]
+    # @example return value
+    #   Yast::WFM.GetLanguage
+    #     => "en_US.UTF-8"
+    def self.GetLanguage
+      call_builtin_wrapper("GetLanguage")
+    end
+
+    # Runs read on local system agent operating on inst-sys
+    #
+    # @param path[Yast::Path] agent path
+    # @param args arguments to agent
+    #
+    # @note very limited use-case. It is needed only if installer switched to
+    #   scr on target system and agent from inst-sys must be called
+    #
+    # @see SCR.Read common agent read
+    #
+    # @example Read kernel cmdline
+    #    Yast::WFM.Read(path(".local.string"), "/proc/cmdline")
+    def self.Read path, *args
+      call_builtin_wrapper("Read", path, *args)
+    end
+
+    # Closes SCR handle obtained via {SCROpen}
+    #
+    # If SCR is set as default, then try to switch to another reasonable SCR
+    # openned
+    def self.SCRClose handle
+      call_builtin_wrapper("SCRClose", handle)
+    end
+
+    # Gets handle of current default SCR
+    def self.SCRGetDefault
+      call_builtin_wrapper("SCRGetDefault")
+    end
+
+    # Gets name of SCR associated with handle
+    #
+    # @return [String]
+    def self.SCRGetName handle
+      call_builtin_wrapper("SCRGetName", handle)
+    end
+
+    # Creates new SCR instance
+    #
+    # It is useful for installation where agents start operation on installed 
system
+    #
+    # @param name[String] name for instance. Currently it is supported on scr 
name
+    #    with possible chrooting in format `"chroot=<path_to_chroot>:scr"`
+    # @param check_version[Boolean] check if chrooted version match current
+    #    core version
+    # @return handle of SCR instance
+    #
+    # @example open SCR instance on /mnt root without version check
+    #    Yast::WFM.SCROpen("chroot=/mnt:scr", false)
+    def self.SCROpen name, check_version
+      call_builtin_wrapper("SCROpen", name, check_version)
+    end
+
+    # Sets the default SCR to given handle
+    def self.SCRSetDefault handle
+      call_builtin_wrapper("SCRSetDefault", handle)
+    end
+
+    # Sets language for translate with optional enconding
+    def self.SetLanguage language, *args
+      call_builtin_wrapper("SetLanguage", language, *args)
+    end
+
+    # Runs write on local system agent operating on inst-sys
+    #
+    # @param path[Yast::Path] agent path
+    # @param args arguments to agent
+    #
+    # @note very limited use-case. It is needed only if installer switched to
+    #   scr on target system and agent from inst-sys must be called
+    #
+    # @see SCR.Read common agent execute
+    #
+    # @example Write yast inf file in inst-sys
+    #    Yast::WFM.Write(path(".local.string"), "/etc/yast.inf", yast_inf)
+    def self.Write path, *args
+      call_builtin_wrapper("Write", path, *args)
     end
 
+    # @deprecated use {CallFunction}
     def self.call *args
       call_builtin_wrapper("call", *args)
     end
 
-    def self.CallFunction *args
-      call_builtin_wrapper("CallFunction", *args)
+    # calls client of given name with passed args
+    #
+    # @param client[String] name of client to run without suffix
+    # @param args additional args passed to client, that can be obtained with
+    #   {WFM.Args}
+    # @return response from client
+    #
+    # @example call inst_moust client living in $Y2DIR/clients/inst_mouse.rb 
with parameter true
+    #     Yast::WFM.CallFunction("inst_mouse", true)
+    def self.CallFunction client, *args
+      call_builtin_wrapper("CallFunction", client, *args)
     end
 
+    # @private wrapper to C code
     def self.call_builtin_wrapper *args
       # caller[0] is one of the functions above
       caller[1].match BACKTRACE_REGEXP
       call_builtin($1, $2.to_i, *args)
     end
 
+    # @private wrapper to run client in ruby
     def self.run_client client
       Builtins.y2milestone "Call client %1", client
       code = File.read client
       begin
-        return eval(code, GLOBAL_WFM_CONTEXT.binding, client)
+        result = eval(code, GLOBAL_WFM_CONTEXT.binding, client)
+
+        allowed_types = Ops::TYPES_MAP.values.flatten
+        allowed_types.delete(::Object) #remove generic type for any
+
+        # check if response is allowed
+        allowed = allowed_types.any? { |t| result.is_a? t }
+
+        raise "Invalid type #{result.class} from client #{client}" unless 
allowed
+
+        return result
       rescue Exception => e
-        Builtins.y2error("Client call failed with %1 and backtrace %2",
-          e.message,
-          e.backtrace
-        )
+        begin
+          Builtins.y2error("Client call failed with '%1' and backtrace %2",
+            e.message,
+            e.backtrace
+          )
+          Yast.import "Report"
+          Report.Error "Internal error. Please report a bug report with 
logs.\nDetails: #{e.message}"
+        rescue Exception => e
+          Builtins.y2internal("Error reporting failed with '%1' and backtrace 
%2",
+            e.message,
+            e.backtrace
+          )
+        end
         return false
       ensure
         # unload the client class to ensure that the includes will be

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

Reply via email to