Hello community,

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

Package is "yast2-network"

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-network/yast2-network.changes      
2014-08-20 17:54:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.yast2-network.new/yast2-network.changes 
2014-09-07 11:09:44.000000000 +0200
@@ -1,0 +2,65 @@
+Thu Sep  4 11:03:29 CEST 2014 - [email protected]
+
+- Fixed firewall proposal to survive missing SuSEfirewall2 services
+  files for openssh or VNC - if files are missing, services are not
+  handled by the proposal (bnc#894419)
+- 3.1.93
+
+-------------------------------------------------------------------
+Wed Sep  3 09:01:40 UTC 2014 - [email protected]
+
+- Test speed-up.
+- 3.1.92
+
+-------------------------------------------------------------------
+Wed Sep  3 08:37:43 UTC 2014 - [email protected]
+
+- bnc#886434
+  - accelerated autoconfiguration at the beginning of installer
+- 3.1.91
+
+-------------------------------------------------------------------
+Tue Sep  2 08:45:30 UTC 2014 - [email protected]
+
+- Updated BuildRequires to break cycle introduced in
+  yast2-installation 3.1.114 (which fixes bnc#893501)
+- 3.1.90
+
+-------------------------------------------------------------------
+Thu Aug 28 11:16:20 UTC 2014 - [email protected]
+
+- write the proxy credentials from install.inf separately, make it
+  compatible with the proxy module used at installed system
+  (bnc#885957)
+- 3.1.89
+
+-------------------------------------------------------------------
+Wed Aug 27 14:39:13 UTC 2014 - [email protected]
+
+- bnc#893638
+  - handle abort button correctly during installation
+- 3.1.88 
+
+-------------------------------------------------------------------
+Mon Aug 25 10:46:44 UTC 2014 - [email protected]
+
+- bnc#891517
+  - do not require ifplugd package for devices with
+    STARTMODE='ifplugd' in ifcfg
+- 3.1.87
+
+-------------------------------------------------------------------
+Fri Aug 22 16:43:24 CEST 2014 - [email protected]
+
+- Fixed requesting sshd/firewall packages in case of the default
+  configuration together with minimal installation (bnc#893126)
+- 3.1.86
+
+-------------------------------------------------------------------
+Thu Aug 21 14:20:20 CEST 2014 - [email protected]
+
+- Fixed firewall proposal in case of VNC installation: using
+  correct firewall services: vnc-httpd and vnc-server (bnc#892899)
+- 3.1.85
+
+-------------------------------------------------------------------

Old:
----
  yast2-network-3.1.84.tar.bz2

New:
----
  yast2-network-3.1.93.tar.bz2

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

Other differences:
------------------
++++++ yast2-network.spec ++++++
--- /var/tmp/diff_new_pack.UWmrs1/_old  2014-09-07 11:09:45.000000000 +0200
+++ /var/tmp/diff_new_pack.UWmrs1/_new  2014-09-07 11:09:45.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-network
-Version:        3.1.84
+Version:        3.1.93
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -30,7 +30,7 @@
 BuildRequires:  update-desktop-files
 BuildRequires:  yast2-country
 BuildRequires:  yast2-devtools >= 3.1.15
-BuildRequires:  yast2-installation >= 2.15.27
+BuildRequires:  yast2-proxy
 BuildRequires:  yast2-testsuite
 
 # yast2 v3.1.86: Added ServicesProposal library

++++++ yast2-network-3.1.84.tar.bz2 -> yast2-network-3.1.93.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/package/yast2-network.changes 
new/yast2-network-3.1.93/package/yast2-network.changes
--- old/yast2-network-3.1.84/package/yast2-network.changes      2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/package/yast2-network.changes      2014-09-04 
12:53:09.000000000 +0200
@@ -1,4 +1,69 @@
 -------------------------------------------------------------------
+Thu Sep  4 11:03:29 CEST 2014 - [email protected]
+
+- Fixed firewall proposal to survive missing SuSEfirewall2 services
+  files for openssh or VNC - if files are missing, services are not
+  handled by the proposal (bnc#894419)
+- 3.1.93
+
+-------------------------------------------------------------------
+Wed Sep  3 09:01:40 UTC 2014 - [email protected]
+
+- Test speed-up.
+- 3.1.92
+
+-------------------------------------------------------------------
+Wed Sep  3 08:37:43 UTC 2014 - [email protected]
+
+- bnc#886434
+  - accelerated autoconfiguration at the beginning of installer
+- 3.1.91
+
+-------------------------------------------------------------------
+Tue Sep  2 08:45:30 UTC 2014 - [email protected]
+
+- Updated BuildRequires to break cycle introduced in
+  yast2-installation 3.1.114 (which fixes bnc#893501)
+- 3.1.90
+
+-------------------------------------------------------------------
+Thu Aug 28 11:16:20 UTC 2014 - [email protected]
+
+- write the proxy credentials from install.inf separately, make it
+  compatible with the proxy module used at installed system
+  (bnc#885957)
+- 3.1.89
+
+-------------------------------------------------------------------
+Wed Aug 27 14:39:13 UTC 2014 - [email protected]
+
+- bnc#893638
+  - handle abort button correctly during installation
+- 3.1.88 
+
+-------------------------------------------------------------------
+Mon Aug 25 10:46:44 UTC 2014 - [email protected]
+
+- bnc#891517
+  - do not require ifplugd package for devices with
+    STARTMODE='ifplugd' in ifcfg
+- 3.1.87
+
+-------------------------------------------------------------------
+Fri Aug 22 16:43:24 CEST 2014 - [email protected]
+
+- Fixed requesting sshd/firewall packages in case of the default
+  configuration together with minimal installation (bnc#893126)
+- 3.1.86
+
+-------------------------------------------------------------------
+Thu Aug 21 14:20:20 CEST 2014 - [email protected]
+
+- Fixed firewall proposal in case of VNC installation: using
+  correct firewall services: vnc-httpd and vnc-server (bnc#892899)
+- 3.1.85
+
+-------------------------------------------------------------------
 Mon Aug 18 13:38:21 CEST 2014 - [email protected]
 
 - copy wickedd-nanny status (in /etc/wicked/common.xml) to target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/package/yast2-network.spec 
new/yast2-network-3.1.93/package/yast2-network.spec
--- old/yast2-network-3.1.84/package/yast2-network.spec 2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/package/yast2-network.spec 2014-09-04 
12:53:09.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-network
-Version:        3.1.84
+Version:        3.1.93
 Release:        0
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -31,7 +31,7 @@
 BuildRequires:  yast2-testsuite
 BuildRequires:  yast2-devtools >= 3.1.15
 BuildRequires:  yast2-country
-BuildRequires:  yast2-installation >= 2.15.27
+BuildRequires:  yast2-proxy
 
 # yast2 v3.1.86: Added ServicesProposal library
 BuildRequires:  yast2 >= 3.1.86
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-network-3.1.84/src/clients/firewall_stage1_proposal.rb 
new/yast2-network-3.1.93/src/clients/firewall_stage1_proposal.rb
--- old/yast2-network-3.1.84/src/clients/firewall_stage1_proposal.rb    
2014-08-18 14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/src/clients/firewall_stage1_proposal.rb    
2014-09-04 12:53:09.000000000 +0200
@@ -42,6 +42,13 @@
     LINK_DISABLE_VNC = "firewall--disable_vnc_in_proposal"
     LINK_FIREWALL_DIALOG = "firewall_stage1"
 
+    module ID
+      SSH_PORT = "open_ssh_port"
+      VNC_PORT = "open_vnc_port"
+      ENABLE_FW = "enable_fw"
+      ENABLE_SSHD = "enable_sshd"
+    end
+
     include Yast::Logger
 
     def main
@@ -58,15 +65,18 @@
       Yast.import "SuSEFirewallProposal"
       Yast.import "Wizard"
 
-      @func = Convert.to_string(WFM.Args(0))
-      @param = Convert.to_map(WFM.Args(1))
-      @ret = {}
+      script_command = WFM.Args(0)
+      params = WFM.Args(1) || {}
+      script_return = {}
 
-      if @func == "MakeProposal"
+      case script_command
+      when "MakeProposal"
         # Don't override users settings
         SuSEFirewall4Network.prepare_proposal unless 
SuSEFirewallProposal.GetChangedByUser
 
-        @ret = {
+        adjust_configuration
+
+        script_return = {
           "preformatted_proposal" => preformatted_proposal,
           "warning_level"         => :warning,
           "links"                 => [
@@ -80,80 +90,67 @@
             LINK_DISABLE_VNC
           ]
         }
+      when "AskUser"
+        chosen_link = params["chosen_id"]
+        result = :next
+        log.info "User clicked #{chosen_link}"
 
-        adjust_configuration
-      elsif @func == "AskUser"
-        @chosen_link = Ops.get(@param, "chosen_id")
-        @result = :next
-        Builtins.y2milestone("User clicked %1", @chosen_link)
-
-        case @chosen_link
+        case chosen_link
         when LINK_ENABLE_FIREWALL
-          Builtins.y2milestone("Enabling FW")
+          log.info "Enabling FW"
           SuSEFirewall4Network.SetEnabled1stStage(true)
-          PackagesProposal.AddResolvables(PROPOSAL_ID, :package, 
[SuSEFirewall.FIREWALL_PACKAGE])
         when LINK_DISABLE_FIREWALL
-          Builtins.y2milestone("Disabling FW")
+          log.info "Disabling FW"
           SuSEFirewall4Network.SetEnabled1stStage(false)
-          PackagesProposal.RemoveResolvables(PROPOSAL_ID, :package, 
[SuSEFirewall.FIREWALL_PACKAGE])
         when LINK_OPEN_SSH_PORT
-          Builtins.y2milestone("Opening SSH port")
+          log.info "Opening SSH port"
           SuSEFirewall4Network.SetSshEnabled1stStage(true)
         when LINK_BLOCK_SSH_PORT
-          Builtins.y2milestone("Blocking SSH port")
+          log.info "Blocking SSH port"
           SuSEFirewall4Network.SetSshEnabled1stStage(false)
         when LINK_ENABLE_SSHD
-          Builtins.y2milestone("Enabling SSHD")
-          PackagesProposal.AddResolvables(PROPOSAL_ID, :package, ["openssh"])
+          log.info "Enabling SSHD"
           SuSEFirewall4Network.SetSshdEnabled(true)
         when LINK_DISABLE_SSHD
-          Builtins.y2milestone("Disabling SSHD")
+          log.info "Disabling SSHD"
           SuSEFirewall4Network.SetSshdEnabled(false)
-          PackagesProposal.RemoveResolvables(PROPOSAL_ID, :package, 
["openssh"])
         when LINK_ENABLE_VNC
-          Builtins.y2milestone("Enabling VNC")
+          log.info "Enabling VNC"
           SuSEFirewall4Network.SetVncEnabled1stStage(true)
         when LINK_DISABLE_VNC
-          Builtins.y2milestone("Disabling VNC")
+          log.info "Disabling VNC"
           SuSEFirewall4Network.SetVncEnabled1stStage(false)
         when LINK_FIREWALL_DIALOG
-          @result = FirewallDialogSimple()
+          result = FirewallDialogSimple()
         else
           raise "INTERNAL ERROR: unknown action '#{@chosen_link}' for proposal 
client"
         end
 
         SuSEFirewallProposal.SetChangedByUser(true)
 
-        @ret = { "workflow_sequence" => @result }
-
         adjust_configuration
-      elsif @func == "Description"
-        @ret = {
+
+        script_return = { "workflow_sequence" => result }
+      when "Description"
+        script_return = {
           # Proposal title
           "rich_text_title" => _("Firewall and SSH"),
           # Menu entry label
           "menu_title"      => _("&Firewall and SSH"),
           "id"              => LINK_FIREWALL_DIALOG
         }
-      elsif @func == "Write"
-        @ret = { "success" => true }
+      when "Write"
+        script_return = { "success" => true }
+      else
+        log.error "Unknown command #{script_command}"
       end
 
-      deep_copy(@ret)
+      deep_copy(script_return)
     end
 
     def FirewallDialogSimple
       title = _("Basic Firewall and SSH Configuration")
 
-      vnc_support = Left(
-        CheckBox(
-          Id("open_vnc_port"),
-          # TRANSLATORS: check-box label
-          _("Open &VNC Ports"),
-          SuSEFirewall4Network.EnabledVnc1stStage
-        )
-      )
-
       contents = VBox(
         Frame(
           # frame label
@@ -165,31 +162,26 @@
               VBox(
                 Left(
                   CheckBox(
-                    Id("enable_fw"),
+                    Id(ID::ENABLE_FW),
                     Opt(:notify),
                     # TRANSLATORS: check-box label
                     _("Enable Firewall"),
                     SuSEFirewall4Network.Enabled1stStage
                   )
                 ),
+
                 Left(
                   CheckBox(
-                    Id("open_ssh_port"),
-                    # TRANSLATORS: check-box label
-                    _("Open SSH Port"),
-                    SuSEFirewall4Network.EnabledSsh1stStage
-                  )
-                ),
-                Left(
-                  CheckBox(
-                    Id("enable_sshd"),
+                    Id(ID::ENABLE_SSHD),
                     # TRANSLATORS: check-box label
                     _("Enable SSH Service"),
                     SuSEFirewall4Network.EnabledSshd
                   )
                 ),
 
-                Linuxrc.vnc ? vnc_support : Empty()
+                sshd_port_ui,
+
+                vnc_ports_ui
               )
             )
           )
@@ -233,12 +225,12 @@
       Wizard.HideBackButton
 
       UI.ChangeWidget(
-        Id("open_ssh_port"),
+        Id(ID::SSH_PORT),
         :Enabled,
         SuSEFirewall4Network.Enabled1stStage
       )
       UI.ChangeWidget(
-        Id("open_vnc_port"),
+        Id(ID::VNC_PORT),
         :Enabled,
         SuSEFirewall4Network.Enabled1stStage
       )
@@ -247,21 +239,15 @@
 
       while true
         dialog_ret = UI.UserInput
-        enable_firewall = Convert.to_boolean(
-          UI.QueryWidget(Id("enable_fw"), :Value)
-        )
+        enable_firewall = UI.QueryWidget(Id(ID::ENABLE_FW), :Value)
 
-        if dialog_ret == "enable_fw"
-          UI.ChangeWidget(Id("open_ssh_port"), :Enabled, enable_firewall)
-          UI.ChangeWidget(Id("open_vnc_port"), :Enabled, enable_firewall)
+        if dialog_ret == ID::ENABLE_FW
+          UI.ChangeWidget(Id(ID::SSH_PORT), :Enabled, enable_firewall)
+          UI.ChangeWidget(Id(ID::VNC_PORT), :Enabled, enable_firewall)
           next
         elsif dialog_ret == :next || dialog_ret == :ok
-          open_ssh_port = Convert.to_boolean(
-            UI.QueryWidget(Id("open_ssh_port"), :Value)
-          )
-          open_vnc_port = Convert.to_boolean(
-            UI.QueryWidget(Id("open_vnc_port"), :Value)
-          )
+          open_ssh_port = UI.QueryWidget(Id(ID::SSH_PORT), :Value)
+          open_vnc_port = UI.QueryWidget(Id(ID::VNC_PORT), :Value)
 
           SuSEFirewall4Network.SetEnabled1stStage(enable_firewall)
 
@@ -271,7 +257,7 @@
           end
 
           SuSEFirewall4Network.SetSshdEnabled(
-            UI::QueryWidget(Id("enable_sshd"), :Value)
+            UI::QueryWidget(Id(ID::ENABLE_SSHD), :Value)
           )
         end
 
@@ -306,33 +292,75 @@
             "SSH service will be disabled (<a href=\"%s\">enable</a>)"
           ) % LINK_ENABLE_SSHD
 
-      vnc_fw_proposal = nil
-      ssh_fw_proposal = nil
+      # Filter proposals with content and sort them
+      proposals = [firewall_proposal, ssh_fw_proposal, sshd_proposal, 
vnc_fw_proposal].compact
+      "<ul>\n" + proposals.map {|prop| "<li>#{prop}</li>\n" }.join + "</ul>\n"
+    end
+
+    def sshd_port_ui
+      return Empty() unless 
known_firewall_services?(SuSEFirewall4NetworkClass::SSH_SERVICES)
+
+      Left(
+        CheckBox(
+          Id(ID::SSH_PORT),
+          # TRANSLATORS: check-box label
+          _("Open SSH Port"),
+          SuSEFirewall4Network.EnabledSsh1stStage
+        )
+      )
+    end
+
+    def vnc_ports_ui
+      return Empty() unless Linuxrc.vnc
+      return Empty() unless 
known_firewall_services?(SuSEFirewall4NetworkClass::VNC_SERVICES)
+
+      Left(
+        CheckBox(
+          Id(ID::VNC_PORT),
+          # TRANSLATORS: check-box label
+          _("Open &VNC Ports"),
+          SuSEFirewall4Network.EnabledVnc1stStage
+        )
+      )
+    end
+
+    # Returns the VNC-port part of the firewall proposal description
+    # Returns nil if this part should be skipped
+    # @return [String] proposal html text
+    def vnc_fw_proposal
       # It only makes sense to show the blocked ports if firewall is
       # enabled (bnc#886554)
-      if SuSEFirewall4Network.Enabled1stStage
-        # Display vnc port only if installing over VNC
-        if Linuxrc.vnc
-          vnc_fw_proposal = SuSEFirewall4Network.EnabledVnc1stStage ?
-            _("VNC ports will be open (<a href=\"%s\">close</a>)") %
-              LINK_DISABLE_VNC
-            : _("VNC ports will be blocked (<a href=\"%s\">open</a>)") %
-              LINK_ENABLE_VNC
-        end
+      return nil unless SuSEFirewall4Network.Enabled1stStage
+      return nil unless 
known_firewall_services?(SuSEFirewall4NetworkClass::VNC_SERVICES)
+      # Show VNC port only if installing over VNC
+      return nil unless Linuxrc.vnc
 
-        ssh_fw_proposal = SuSEFirewall4Network.EnabledSsh1stStage ?
-            _(
-              "SSH port will be open (<a href=\"%s\">block</a>)"
-            ) % LINK_BLOCK_SSH_PORT
-          :
-            _(
-              "SSH port will be blocked (<a href=\"%s\">open</a>)"
-            ) % LINK_OPEN_SSH_PORT
-      end
+      SuSEFirewall4Network.EnabledVnc1stStage ?
+        _("VNC ports will be open (<a href=\"%s\">close</a>)") % 
LINK_DISABLE_VNC
+        :
+        _("VNC ports will be blocked (<a href=\"%s\">open</a>)") % 
LINK_ENABLE_VNC
+    end
 
-      # Filter proposals with content and sort them
-      proposals = [firewall_proposal, ssh_fw_proposal, sshd_proposal, 
vnc_fw_proposal].compact
-      "<ul>\n" + proposals.map {|prop| "<li>#{prop}</li>\n" }.join + "</ul>\n"
+    # Returns the SSH-port part of the firewall proposal description
+    # Returns nil if this part should be skipped
+    # @return [String] proposal html text
+    def ssh_fw_proposal
+      return nil unless SuSEFirewall4Network.Enabled1stStage
+      return nil unless 
known_firewall_services?(SuSEFirewall4NetworkClass::SSH_SERVICES)
+
+      SuSEFirewall4Network.EnabledSsh1stStage ?
+        _("SSH port will be open (<a href=\"%s\">block</a>)") % 
LINK_BLOCK_SSH_PORT
+        :
+        _("SSH port will be blocked (<a href=\"%s\">open</a>)") % 
LINK_OPEN_SSH_PORT
+    end
+
+    # Returns true if all services are known to firewall
+    # @param [Array <String>] services
+    # @return [Boolean] if all are known
+    def known_firewall_services?(services)
+      @all_known_services ||= SuSEFirewallServices.all_services.keys
+
+      (services - @all_known_services).empty?
     end
 
     # Reads and adjust the configuration for SuSEfirewall2 according to the 
current proposal.
@@ -340,11 +368,13 @@
     # to AutoYast profile.
     def adjust_configuration
       enable_fw = SuSEFirewall4Network.Enabled1stStage
+      enable_sshd = SuSEFirewall4Network.EnabledSshd
       open_ssh_port = SuSEFirewall4Network.EnabledSsh1stStage
       open_vnc_port = SuSEFirewall4Network.EnabledVnc1stStage
 
       log.info "After installation, firewall will be #{enable_fw ? 
'enabled':'disabled'}, " <<
-        "SSH port will be #{open_ssh_port ? 'open':'closed'} " <<
+        "SSHD will be #{enable_sshd ? 'enabled':'disabled'}, " <<
+        "SSH port will be #{open_ssh_port ? 'open':'closed'}, " <<
         "VNC port will be #{open_vnc_port ? 'open':'closed'}"
 
       # Read the configuration from sysconfig
@@ -356,22 +386,41 @@
       SuSEFirewall.SetEnableService(enable_fw)
       SuSEFirewall.SetStartService(enable_fw)
 
-      # only if we have openssh package - proposal takes care
-      # it gets installed if the user wants to open ssh port
-      if open_ssh_port
+      # Request needed packages to be installed
+      # bnc#893126
+      if enable_fw
+        PackagesProposal.AddResolvables(PROPOSAL_ID, :package, 
[SuSEFirewall.FIREWALL_PACKAGE])
+      else
+        PackagesProposal.RemoveResolvables(PROPOSAL_ID, :package, 
[SuSEFirewall.FIREWALL_PACKAGE])
+      end
+
+      if enable_sshd
+        PackagesProposal.AddResolvables(PROPOSAL_ID, :package, 
[SuSEFirewall4NetworkClass::SSH_PACKAGE])
+      else
+        PackagesProposal.RemoveResolvables(PROPOSAL_ID, :package, 
[SuSEFirewall4NetworkClass::SSH_PACKAGE])
+      end
+
+      # Open or close FW ports depending on user decision
+      # This can raise an exception if requested service-files are not part of 
the current system
+      # For that reason, these files have to be part of the inst-sys
+      if known_firewall_services?(SuSEFirewall4NetworkClass::SSH_SERVICES)
         SuSEFirewall.SetServicesForZones(
-          ["service:sshd"],
+          SuSEFirewall4NetworkClass::SSH_SERVICES,
           SuSEFirewall.GetKnownFirewallZones,
-          true
+          open_ssh_port
         )
+      else
+        log.warn "Services #{SuSEFirewall4NetworkClass::SSH_SERVICES} are 
unknown"
       end
 
-      if open_vnc_port
+      if known_firewall_services?(SuSEFirewall4NetworkClass::VNC_SERVICES)
         SuSEFirewall.SetServicesForZones(
-          ["service:xorg-x11-Xvnc"],
+          SuSEFirewall4NetworkClass::VNC_SERVICES,
           SuSEFirewall.GetKnownFirewallZones,
-          true
+          open_vnc_port
         )
+      else
+        log.warn "Services #{SuSEFirewall4NetworkClass::VNC_SERVICES} are 
unknown"
       end
 
       # Writing the configuration including adjusting services
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-network-3.1.84/src/include/network/lan/complex.rb 
new/yast2-network-3.1.93/src/include/network/lan/complex.rb
--- old/yast2-network-3.1.84/src/include/network/lan/complex.rb 2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/src/include/network/lan/complex.rb 2014-09-04 
12:53:09.000000000 +0200
@@ -512,9 +512,12 @@
     # changes already. Calling this function may results in confirmation
     # popup.
     def input_done?(ret)
-      if ret == :abort && LanItems.modified
-        return ReallyAbort()
+      return true if ret != :abort
+
+      if Stage.initial
+        return Popup.ConfirmAbort(:painless)
       else
+        return ReallyAbort() if LanItems.modified
         return true
       end
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-network-3.1.84/src/lib/network/install_inf_convertor.rb 
new/yast2-network-3.1.93/src/lib/network/install_inf_convertor.rb
--- old/yast2-network-3.1.84/src/lib/network/install_inf_convertor.rb   
2014-08-18 14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/src/lib/network/install_inf_convertor.rb   
2014-09-04 12:53:09.000000000 +0200
@@ -245,23 +245,21 @@
 
       return false if proxyUrl.empty?
 
-      proxy = URI(proxyUrl)
-      proxyProto = proxy.scheme
-
-      # do not log the password
-      log_proxy = proxy.dup
-      log_proxy.password = "********" if log_proxy.password
-      log.info("Writing proxy settings: #{proxyProto}_proxy = '#{log_proxy}'")
-
       Proxy.Read
       ex = Proxy.Export
 
-      # bnc#693640 - update Proxy module's configuration
-      # username and password is stored in url because it is handled by 
linuxrc this way and it is impossible
-      # to distinguish how the user inserted it (separate or as a part of url?)
-      ex["#{proxyProto}_proxy"] = proxyUrl
+      proxy = URI(proxyUrl)
+      proxyProto = proxy.scheme
+
+      # save user name and password separately
+      ex["proxy_user"] = proxy.user
+      proxy.user = nil
+      ex["proxy_password"] = proxy.password
+      proxy.password = nil
+      ex["#{proxyProto}_proxy"] = proxy.to_s
       ex["enabled"] = true
-      log.debug("Written proxy settings: #{ex}")
+      log.info "Writing proxy settings: #{proxyProto}_proxy = '#{proxy}'"
+      log.debug "Writing proxy settings: #{ex}"
 
       Proxy.Import(ex)
       Proxy.Write
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-network-3.1.84/src/lib/network/network_autoconfiguration.rb 
new/yast2-network-3.1.93/src/lib/network/network_autoconfiguration.rb
--- old/yast2-network-3.1.84/src/lib/network/network_autoconfiguration.rb       
2014-08-18 14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/src/lib/network/network_autoconfiguration.rb       
2014-09-04 12:53:09.000000000 +0200
@@ -37,9 +37,6 @@
       # TODO time consuming, some progress would be nice
       dhcp_cards.each { |d| setup_dhcp(d) }
 
-      # FIXME this can be really slow as it calls wicked one-by-one.
-      # So for n devices connected to a network but without dhcp
-      # it takes n * <dhcp lease wait timeout>.
       activate_changes(dhcp_cards)
 
       # drop devices without dhcp lease
@@ -145,8 +142,15 @@
       LanItems.Commit
     end
 
-    def reload_config(card)
-      SCR.Execute(BASH_PATH, "wicked ifreload '#{card}'") == 0
+    # Reloads configuration for each device named in devs
+    #
+    # @devs [Array] list of device names
+    # @return true if configuration was reloaded
+    def reload_config(devs)
+      raise ArgumentError if devs.nil?
+      return true if devs.empty?
+
+      SCR.Execute(BASH_PATH, "wicked ifreload #{devs.join(" ")}") == 0
     end
 
     def delete_config(devname)
@@ -157,13 +161,17 @@
       NetworkInterfaces.Write("")
     end
 
+    # Writes and activates changes in devices configurations
+    #
+    # @devnames [Array] list of device names
+    # @return true when changes were successfully applied
     def activate_changes(devnames)
       return false if !write_configuration
 
       # workaround for gh#yast/yast-core#74 
(https://github.com/yast/yast-core/issues/74)
       NetworkInterfaces.CleanCacheRead()
 
-      devnames.map { |d| reload_config(d) }
+      reload_config(devnames)
     end
 
     def configured?(devname)
@@ -194,7 +202,11 @@
     # Check if given device can reach some of reference servers
     def set_default_route_flag_if_wan_dev?(devname)
       set_default_route_flag(devname, "yes")
-      activate_changes([devname])
+
+      if !activate_changes([devname])
+        log.warn("Cannot reach reference server via #{devname}")
+        return false
+      end
 
       reached = target_servers.any? do |server|
         ping_cmd = "ping -I #{devname} -c 3 #{server}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/src/modules/Lan.rb 
new/yast2-network-3.1.93/src/modules/Lan.rb
--- old/yast2-network-3.1.84/src/modules/Lan.rb 2014-08-18 14:18:14.000000000 
+0200
+++ new/yast2-network-3.1.93/src/modules/Lan.rb 2014-09-04 12:53:09.000000000 
+0200
@@ -1071,81 +1071,50 @@
 
     # @return [Array] of packages needed when writing the config
     def Packages
-      pkgs = []
-      required = {
-        "types"   => {
-          #for wlan require iw instead of wireless-tools (bnc#539669)
-          "wlan" => "iw",
-          "vlan" => "vlan",
-          "br"   => "bridge-utils",
-          "tun"  => "tunctl",
-          "tap"  => "tunctl"
-        },
-        "options" => {
-          "STARTMODE"          => { "ifplugd" => "ifplugd" },
-          "WIRELESS_AUTH_MODE" => {
-            "psk" => "wpa_supplicant",
-            "eap" => "wpa_supplicant"
-          }
+      # various device types require some special packages ...
+      type_requires =  {
+        # for wlan require iw instead of wireless-tools (bnc#539669)
+        "wlan" => "iw",
+        "vlan" => "vlan",
+        "br"   => "bridge-utils",
+        "tun"  => "tunctl",
+        "tap"  => "tunctl"
+      }
+      # ... and some options require special packages as well
+      option_requires =  {
+        "WIRELESS_AUTH_MODE" => {
+          "psk" => "wpa_supplicant",
+          "eap" => "wpa_supplicant"
         }
       }
 
-      Builtins.foreach(
-        Convert.convert(
-          Map.Keys(Ops.get_map(required, "types", {})),
-          :from => "list",
-          :to   => "list <string>"
-        )
-      ) do |type|
-        package = Ops.get_string(required, ["types", type], "")
-        if Ops.greater_than(Builtins.size(NetworkInterfaces.List(type)), 0)
+      pkgs = []
+      type_requires.each do |type, package|
+        ifaces = NetworkInterfaces.List(type)
+        if !ifaces.empty?
           Builtins.y2milestone(
-            "Network interface type %1 requires package %2",
-            type,
-            package
+            "Network interface type #{type} requires package #{package}"
           )
-          if !PackageSystem.Installed(package)
-            pkgs = Builtins.add(pkgs, package)
-          end
+          pkgs << package if !PackageSystem.Installed(package)
         end
       end
 
-
-      Builtins.foreach(
-        Convert.convert(
-          Map.Keys(Ops.get_map(required, "options", {})),
-          :from => "list",
-          :to   => "list <string>"
-        )
-      ) do |type|
-        Builtins.foreach(
-          Convert.convert(
-            Map.Keys(Ops.get_map(required, ["options", type], {})),
-            :from => "list",
-            :to   => "list <string>"
-          )
-        ) do |option|
-          package = Ops.get_string(required, ["options", type, option], "")
-          if NetworkInterfaces.Locate(type, option) != []
+      option_requires.each do |option, option_values|
+        option_values.each do |value, package|
+          if NetworkInterfaces.Locate(option, value) != []
             Builtins.y2milestone(
-              "Network interface with options %1, %2 requires package %3",
-              type,
-              option,
-              package
+              "Network interface with option #{option}=#{value} requires 
package #{package}",
             )
-            if !PackageSystem.Installed(package)
-              pkgs = Builtins.add(pkgs, package)
-            end
+            pkgs << package if !PackageSystem.Installed(package)
           end
         end
       end
 
       if NetworkService.is_network_manager
-        if !PackageSystem.Installed("NetworkManager")
-          pkgs = Builtins.add(pkgs, "NetworkManager")
-        end
+        pkgs << "NetworkManager" if !PackageSystem.Installed("NetworkManager")
       end
-      deep_copy(pkgs)
+
+      pkgs
     end
 
     # @return [Array] of packages needed when writing the config in autoinst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-network-3.1.84/src/modules/SuSEFirewall4Network.rb 
new/yast2-network-3.1.93/src/modules/SuSEFirewall4Network.rb
--- old/yast2-network-3.1.84/src/modules/SuSEFirewall4Network.rb        
2014-08-18 14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/src/modules/SuSEFirewall4Network.rb        
2014-09-04 12:53:09.000000000 +0200
@@ -38,6 +38,10 @@
 
     include Yast::Logger
 
+    SSH_PACKAGE = "openssh"
+    SSH_SERVICES = ["service:sshd"]
+    VNC_SERVICES = ["service:vnc-httpd", "service:vnc-server"]
+
     def main
       textdomain "network"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/test/Makefile.am 
new/yast2-network-3.1.93/test/Makefile.am
--- old/yast2-network-3.1.84/test/Makefile.am   2014-08-18 14:18:14.000000000 
+0200
+++ new/yast2-network-3.1.93/test/Makefile.am   2014-09-04 12:53:09.000000000 
+0200
@@ -3,6 +3,7 @@
   edit_nic_name_test.rb \
   install_inf_convertor_test.rb \
   lan_items_helpers_test.rb \
+  lan_test.rb \
   lan_udev_auto_test.rb \
   link_handlers_test.rb \
   netcard_test.rb \
@@ -11,6 +12,7 @@
   routing_test.rb \
   suse_firewall_4_network_test.rb \
   widgets_test.rb \
+  complex_test.rb \
   read_hardware_test.rb
 
 TEST_EXTENSIONS = .rb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/test/bridge_test.rb 
new/yast2-network-3.1.93/test/bridge_test.rb
--- old/yast2-network-3.1.84/test/bridge_test.rb        2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/test/bridge_test.rb        2014-09-04 
12:53:09.000000000 +0200
@@ -4,8 +4,6 @@
 
 require "yast"
 
-include Yast
-
 Yast.import "LanItems"
 
 module Yast
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/test/complex_test.rb 
new/yast2-network-3.1.93/test/complex_test.rb
--- old/yast2-network-3.1.84/test/complex_test.rb       1970-01-01 
01:00:00.000000000 +0100
+++ new/yast2-network-3.1.93/test/complex_test.rb       2014-09-04 
12:53:09.000000000 +0200
@@ -0,0 +1,74 @@
+#!/usr/bin/env rspec
+
+require_relative "test_helper"
+
+require "yast"
+
+include Yast::UIShortcuts
+include Yast::I18n
+
+Yast.import "LanItems"
+Yast.import "Stage"
+
+# creating a wrapper for Yast's 'header' file
+$LOAD_PATH.unshift File.expand_path('../../src', __FILE__)
+require "include/network/lan/complex"
+
+class NetworkLanComplexInclude
+  extend Yast::NetworkLanComplexInclude
+end
+
+describe "NetworkLanComplexInclude::input_done?" do
+
+  BOOLEAN_PLACEHOLDER = "placeholder (true or false)"
+
+  context "when not running in installer" do
+
+    before(:each) do
+      allow(Yast::Stage)
+        .to receive(:initial)
+        .and_return(false)
+    end
+
+    it "returns true for input different than :abort" do
+      expect(NetworkLanComplexInclude.input_done?(:no_abort)).to eql true
+    end
+
+    it "returns true for input equal to :abort in case of no user 
modifications" do
+      allow(Yast::LanItems)
+        .to receive(:modified)
+        .and_return(false)
+
+      expect(NetworkLanComplexInclude.input_done?(:abort)).to eql true
+    end
+
+    it "asks user for abort confirmation for input equal to :abort and user 
did modifications" do
+      allow(Yast::LanItems)
+        .to receive(:modified)
+        .and_return(true)
+
+      expect(NetworkLanComplexInclude)
+        .to receive(:ReallyAbort)
+        .and_return(BOOLEAN_PLACEHOLDER)
+
+      expect(NetworkLanComplexInclude.input_done?(:abort)).to eql 
BOOLEAN_PLACEHOLDER
+    end
+  end
+
+  context "when running in installer" do
+
+    before(:each) do
+      allow(Yast::Stage)
+        .to receive(:initial)
+        .and_return(true)
+    end
+
+    it "asks user for installation abort confirmation for input equal to 
:abort" do
+      expect(Yast::Popup)
+        .to receive(:ConfirmAbort)
+        .and_return(BOOLEAN_PLACEHOLDER)
+
+      expect(NetworkLanComplexInclude.input_done?(:abort)).to eql 
BOOLEAN_PLACEHOLDER
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-network-3.1.84/test/install_inf_convertor_test.rb 
new/yast2-network-3.1.93/test/install_inf_convertor_test.rb
--- old/yast2-network-3.1.84/test/install_inf_convertor_test.rb 2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/test/install_inf_convertor_test.rb 2014-09-04 
12:53:09.000000000 +0200
@@ -6,6 +6,8 @@
 require "network/install_inf_convertor"
 include Yast # for path shortcut and avoid namespace
 
+Yast.import "Proxy"
+
 describe "InstallInfConvertor" do
 
   context "in case of no network config in /etc/install.inf" do
@@ -20,7 +22,7 @@
 
     describe "#write_dhcp_timeout" do
       it "returns false" do
-        expect(@install_inf_convertor.send(:write_dhcp_timeout)).to be_false
+        expect(@install_inf_convertor.send(:write_dhcp_timeout)).to be false
       end
     end
 
@@ -32,31 +34,31 @@
 
     describe "#write_hostname" do
       it "returns false" do
-        expect(@install_inf_convertor.send(:write_hostname)).to be_false
+        expect(@install_inf_convertor.send(:write_hostname)).to be false
       end
     end
 
     describe "#write_dns" do
       it "returns false" do
-        expect(@install_inf_convertor.send(:write_dns)).to be_false
+        expect(@install_inf_convertor.send(:write_dns)).to be false
       end
     end
 
     describe "#write_proxy" do
       it "returns false" do
-        expect(@install_inf_convertor.send(:write_proxy)).to be_false
+        expect(@install_inf_convertor.send(:write_proxy)).to be false
       end
     end
 
     describe "#write_nis_domain" do
       it "returns false" do
-        expect(@install_inf_convertor.send(:write_nis_domain)).to be_false
+        expect(@install_inf_convertor.send(:write_nis_domain)).to be false
       end
     end
 
     describe "#write_connect_wait" do
       it "returns false" do
-        expect(@install_inf_convertor.send(:write_connect_wait)).to be_false
+        expect(@install_inf_convertor.send(:write_connect_wait)).to be false
       end
     end
 
@@ -202,6 +204,7 @@
 
   describe "#write_proxy" do
     let(:proxy_url) { "http://example.com:3128"; }
+    let(:auth_proxy_url) { "http://user:[email protected]:3128"; }
 
     it "writes proxy configuration if defined in install.inf" do
       expect(Yast::InstallInfConvertor::InstallInf).to receive(:[])
@@ -223,7 +226,32 @@
       end
       expect(Yast::Proxy).to receive(:Write).and_return(true)
 
-      expect(Yast::InstallInfConvertor.instance.send(:write_proxy)).to be_true
+      expect(Yast::InstallInfConvertor.instance.send(:write_proxy)).to be true
+    end
+
+    it "writes proxy credentials separately" do
+      expect(Yast::InstallInfConvertor::InstallInf).to receive(:[])
+        .with("ProxyURL").and_return(auth_proxy_url)
+
+      expect(Yast::Proxy).to receive(:Read).and_return(true)
+      expect(Yast::Proxy).to receive(:Export).and_return(
+        "enabled"        => false,
+        "http_proxy"     => "",
+        "https_proxy"    => "",
+        "ftp_proxy"      => "",
+        "no_proxy"       => "localhost, 127.0.0.1",
+        "proxy_user"     => "",
+        "proxy_password" => ""
+      )
+      expect(Yast::Proxy).to receive(:Import) do |config|
+        # proxy is enabled and the URL without credentials is set
+        expect(config).to include("enabled" => true, "http_proxy" => proxy_url,
+          "proxy_user" => "user", "proxy_password" => "passwd"
+        )
+      end
+      expect(Yast::Proxy).to receive(:Write).and_return(true)
+
+      expect(Yast::InstallInfConvertor.instance.send(:write_proxy)).to be true
     end
 
     it "does not write proxy configuration if not defined in install.inf" do
@@ -233,7 +261,7 @@
       expect(Yast::Proxy).to receive(:Read).never
       expect(Yast::Proxy).to receive(:Write).never
 
-      expect(Yast::InstallInfConvertor.instance.send(:write_proxy)).to be_false
+      expect(Yast::InstallInfConvertor.instance.send(:write_proxy)).to be false
     end
   end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/test/lan_items_helpers_test.rb 
new/yast2-network-3.1.93/test/lan_items_helpers_test.rb
--- old/yast2-network-3.1.84/test/lan_items_helpers_test.rb     2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/test/lan_items_helpers_test.rb     2014-09-04 
12:53:09.000000000 +0200
@@ -11,32 +11,32 @@
   it "succeeds when item has configuration" do
     Yast::LanItems.stub(:GetLanItem) { { "ifcfg" => "enp0s3" } }
 
-    expect(Yast::LanItems.IsItemConfigured(0)).to be_true
+    expect(Yast::LanItems.IsItemConfigured(0)).to be true
   end
 
   it "fails when item doesn't exist" do
     Yast::LanItems.stub(:GetLanItem) { {} }
 
-    expect(Yast::LanItems.IsItemConfigured(0)).to be_false
+    expect(Yast::LanItems.IsItemConfigured(0)).to be false
   end
 
   it "fails when item's configuration doesn't exist" do
     Yast::LanItems.stub(:GetLanItem) { { "ifcfg" => nil } }
 
-    expect(Yast::LanItems.IsItemConfigured(0)).to be_false
+    expect(Yast::LanItems.IsItemConfigured(0)).to be false
   end
 end
 
 describe "LanItemsClass#delete_dev" do
 
-  MOCKED_ITEMS = {
+  MOCKED_ITEMS_DEL = {
     0 => {
       "ifcfg" => "enp0s3"
     }
   }
 
   before(:each) do
-    Yast::LanItems.Items = MOCKED_ITEMS
+    Yast::LanItems.Items = MOCKED_ITEMS_DEL
   end
 
   it "removes device config when found" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/test/lan_test.rb 
new/yast2-network-3.1.93/test/lan_test.rb
--- old/yast2-network-3.1.84/test/lan_test.rb   1970-01-01 01:00:00.000000000 
+0100
+++ new/yast2-network-3.1.93/test/lan_test.rb   2014-09-04 12:53:09.000000000 
+0200
@@ -0,0 +1,86 @@
+#!/usr/bin/env rspec
+
+require_relative "test_helper"
+
+require "yast"
+
+Yast.import "Lan"
+
+describe "LanClass#Packages" do
+
+  packages = {
+    "iw" => "wlan",
+    "vlan" => "vlan",
+    "bridge-utils" => "br",
+    "tunctl" => "tun"
+  }
+
+
+  packages.each do |pkg, type|
+    it "lists '#{pkg}' package for #{type} device" do
+      allow(Yast::NetworkInterfaces)
+        .to receive(:List)
+        .and_return([])
+      allow(Yast::NetworkInterfaces)
+        .to receive(:List)
+        .with(type)
+        .and_return(["place_holder"])
+      allow(Yast::NetworkInterfaces)
+        .to receive(:Locate)
+        .and_return([])
+      allow(Yast::NetworkService)
+        .to receive(:is_network_manager)
+        .and_return(false)
+
+      expect(Yast::PackageSystem)
+        .to receive(:Installed)
+        .with(pkg)
+        .at_least(:once)
+        .and_return(false)
+      expect(Yast::Lan.Packages).to include pkg
+    end
+  end
+
+  it "lists wpa_supplicant package when WIRELESS_AUTH_MODE is psk or eap" do
+    allow(Yast::NetworkInterfaces)
+      .to receive(:List)
+      .and_return([])
+    allow(Yast::NetworkService)
+      .to receive(:is_network_manager)
+      .and_return(false)
+
+    # when checking options, LanClass#Packages currently cares only if
+    # WIRELESS_AUTH_MODE={psk, eap} is present
+    expect(Yast::NetworkInterfaces)
+      .to receive(:Locate)
+      .with("WIRELESS_AUTH_MODE", /(psk|eap)/)
+      .at_least(:once)
+      .and_return(["place_holder"])
+    expect(Yast::PackageSystem)
+      .to receive(:Installed)
+      .with("wpa_supplicant")
+      .at_least(:once)
+      .and_return(false)
+    expect(Yast::Lan.Packages).to include "wpa_supplicant"
+  end
+
+  it "lists NetworkManager package when NetworkManager service is selected" do
+    allow(Yast::NetworkInterfaces)
+      .to receive(:List)
+      .and_return([])
+    allow(Yast::NetworkInterfaces)
+      .to receive(:Locate)
+      .and_return([])
+
+    expect(Yast::NetworkService)
+      .to receive(:is_network_manager)
+      .and_return(true)
+    expect(Yast::PackageSystem)
+      .to receive(:Installed)
+      .with("NetworkManager")
+      .at_least(:once)
+      .and_return(false)
+    expect(Yast::Lan.Packages).to include "NetworkManager"
+  end
+
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/test/link_handlers_test.rb 
new/yast2-network-3.1.93/test/link_handlers_test.rb
--- old/yast2-network-3.1.84/test/link_handlers_test.rb 2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/test/link_handlers_test.rb 2014-09-04 
12:53:09.000000000 +0200
@@ -4,20 +4,29 @@
 
 require "yast"
 
-describe "phy_connected?" do
-  before(:each) do
+# need a class to stub the sleep call; hard to stub it on Kernel
+class LinkHandlersClass
+  def initialize
     Yast.include self, "network/routines.rb"
+  end
+end
 
+describe "phy_connected?" do
+  include Yast
+  subject { LinkHandlersClass.new }
+
+  before(:each) do
     Yast::SCR.stub(:Execute).with(path(".target.bash"), //) { 0 }
+    allow(subject).to receive(:sleep)
   end
 
   it "returns true if PHY layer is available" do
     Yast::SCR.stub(:Read).with(path(".target.string"), /\/sys\/class\/net/) { 
1 }
-    expect(phy_connected?("enp0s3")).to eql true
+    expect(subject.phy_connected?("enp0s3")).to eql true
   end
 
   it "returns false if PHY layer is available" do
     Yast::SCR.stub(:Read).with(path(".target.string"), /\/sys\/class\/net/) { 
0 }
-    expect(phy_connected?("enp0s3")).to eql false
+    expect(subject.phy_connected?("enp0s3")).to eql false
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/test/netcard_test.rb 
new/yast2-network-3.1.93/test/netcard_test.rb
--- old/yast2-network-3.1.84/test/netcard_test.rb       2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/test/netcard_test.rb       2014-09-04 
12:53:09.000000000 +0200
@@ -199,7 +199,7 @@
 
       @lan_items.DeleteItem
 
-      expect(@lan_items.FindAndSelect(item_name)).to be_false
+      expect(@lan_items.FindAndSelect(item_name)).to be false
     end
   end
 
@@ -207,11 +207,11 @@
     before_size = @lan_items.Items.size
     item_name = "enp0s3"
 
-    expect(@lan_items.FindAndSelect(item_name)).to be_true
+    expect(@lan_items.FindAndSelect(item_name)).to be true
 
     @lan_items.DeleteItem
 
-    expect(@lan_items.FindAndSelect(item_name)).to be_false
+    expect(@lan_items.FindAndSelect(item_name)).to be false
     expect(@lan_items.Items.size).to eql before_size
   end
 end
@@ -244,10 +244,10 @@
   end
 
   it "finds configured device" do
-    expect(@lan_items.FindAndSelect("enp0s3")).to be_true
+    expect(@lan_items.FindAndSelect("enp0s3")).to be true
   end
 
   it "fails to find unconfigured device" do
-    expect(@lan_items.FindAndSelect("nonexistent")).to be_false
+    expect(@lan_items.FindAndSelect("nonexistent")).to be false
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-network-3.1.84/test/network_autoconfiguration_test.rb 
new/yast2-network-3.1.93/test/network_autoconfiguration_test.rb
--- old/yast2-network-3.1.84/test/network_autoconfiguration_test.rb     
2014-08-18 14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/test/network_autoconfiguration_test.rb     
2014-09-04 12:53:09.000000000 +0200
@@ -161,11 +161,11 @@
     expect(Yast::SCR).
       to receive(:Read).
       with(Yast::Path.new(".udev_persistent.net")).
-      and_return {}
+      and_return({})
     expect(Yast::SCR).
       to receive(:Read).
       with(Yast::Path.new(".udev_persistent.drivers")).
-      and_return {}
+      and_return({})
   end
 
   it "configures just one NIC to have a default route" do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-network-3.1.84/test/new_device_startmode_test.rb 
new/yast2-network-3.1.93/test/new_device_startmode_test.rb
--- old/yast2-network-3.1.84/test/new_device_startmode_test.rb  2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/test/new_device_startmode_test.rb  2014-09-04 
12:53:09.000000000 +0200
@@ -13,6 +13,13 @@
     "STARTMODE" => "invalid"
   }
 
+  AVAILABLE_PRODUCT_STARTMODES = [
+    "hotplug",
+    "manual",
+    "off",
+    "nfsroot"
+  ]
+
   ["hotplug", ""].each do |hwinfo_hotplug|
 
     expected_startmode = hwinfo_hotplug == "hotplug" ? "hotplug" : "auto"
@@ -79,13 +86,6 @@
 
     context "When product_startmode is not auto neither ifplugd" do
 
-      AVAILABLE_PRODUCT_STARTMODES = [
-        "hotplug",
-        "manual",
-        "off",
-        "nfsroot"
-      ]
-
       AVAILABLE_PRODUCT_STARTMODES.each do |product_startmode|
 
         it "for #{product_startmode} it results to #{expected_startmode} if 
device " + hotplug_desc do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/test/routing_test.rb 
new/yast2-network-3.1.93/test/routing_test.rb
--- old/yast2-network-3.1.84/test/routing_test.rb       2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/test/routing_test.rb       2014-09-04 
12:53:09.000000000 +0200
@@ -178,11 +178,11 @@
     describe "#Import" do
 
       it "Returns true for non nil settings" do
-        expect(Routing.Import({})).to be_true
+        expect(Routing.Import({})).to be true
       end
 
       it "Returns true for nil settings" do
-        expect(Routing.Import(nil)).to be_true
+        expect(Routing.Import(nil)).to be true
       end
     end
 
@@ -298,7 +298,7 @@
           it "loads configuration from system" do
             NetworkInterfaces.as_null_object
 
-            expect(Routing.Read).to be_true
+            expect(Routing.Read).to be true
           end
         end
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-network-3.1.84/test/suse_firewall_4_network_test.rb 
new/yast2-network-3.1.93/test/suse_firewall_4_network_test.rb
--- old/yast2-network-3.1.84/test/suse_firewall_4_network_test.rb       
2014-08-18 14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/test/suse_firewall_4_network_test.rb       
2014-09-04 12:53:09.000000000 +0200
@@ -27,14 +27,14 @@
     describe "#SetSshdEnabled" do
       it "sets whether sshd service should be started and caches the 
information in ServicesProposal" do
         SuSEFirewall4Network.SetSshdEnabled(true)
-        expect(SuSEFirewall4Network.EnabledSshd).to be_true
-        expect(ServicesProposal.enabled_services.include?('sshd')).to be_true
-        expect(ServicesProposal.disabled_services.include?('sshd')).to be_false
+        expect(SuSEFirewall4Network.EnabledSshd).to be true
+        expect(ServicesProposal.enabled_services.include?('sshd')).to be true
+        expect(ServicesProposal.disabled_services.include?('sshd')).to be false
 
         SuSEFirewall4Network.SetSshdEnabled(false)
-        expect(SuSEFirewall4Network.EnabledSshd).to be_false
-        expect(ServicesProposal.enabled_services.include?('sshd')).to be_false
-        expect(ServicesProposal.disabled_services.include?('sshd')).to be_true
+        expect(SuSEFirewall4Network.EnabledSshd).to be false
+        expect(ServicesProposal.enabled_services.include?('sshd')).to be false
+        expect(ServicesProposal.disabled_services.include?('sshd')).to be true
       end
     end
 
@@ -46,8 +46,8 @@
 
         it "proposes firewall and ssh port according to control file" do
           SuSEFirewall4Network.prepare_proposal
-          expect(SuSEFirewall4Network.Enabled1stStage).to be_true
-          expect(SuSEFirewall4Network.EnabledSsh1stStage).to be_false
+          expect(SuSEFirewall4Network.Enabled1stStage).to be true
+          expect(SuSEFirewall4Network.EnabledSsh1stStage).to be false
         end
       end
 
@@ -58,8 +58,8 @@
 
         it "proposes disabled firewall and proposes ssh port according to 
control file" do
           SuSEFirewall4Network.prepare_proposal
-          expect(SuSEFirewall4Network.Enabled1stStage).to be_false
-          expect(SuSEFirewall4Network.EnabledSsh1stStage).to be_false
+          expect(SuSEFirewall4Network.Enabled1stStage).to be false
+          expect(SuSEFirewall4Network.EnabledSsh1stStage).to be false
         end
       end
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-network-3.1.84/test/test_helper.rb 
new/yast2-network-3.1.93/test/test_helper.rb
--- old/yast2-network-3.1.84/test/test_helper.rb        2014-08-18 
14:18:14.000000000 +0200
+++ new/yast2-network-3.1.93/test/test_helper.rb        2014-09-04 
12:53:09.000000000 +0200
@@ -1 +1,3 @@
-ENV["Y2DIR"] = File.expand_path("../../src", __FILE__)
+srcdir = File.expand_path("../../src", __FILE__)
+y2dirs = ENV.fetch("Y2DIR", "").split(":")
+ENV["Y2DIR"] = y2dirs.unshift(srcdir).join(":")

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

Reply via email to