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 - locilka@suse.com + +- 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 - mvidner@suse.com + +- Test speed-up. +- 3.1.92 + +------------------------------------------------------------------- +Wed Sep 3 08:37:43 UTC 2014 - mfilka@suse.com + +- bnc#886434 + - accelerated autoconfiguration at the beginning of installer +- 3.1.91 + +------------------------------------------------------------------- +Tue Sep 2 08:45:30 UTC 2014 - ancor@suse.com + +- 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 - lslezak@suse.cz + +- 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 - mfilka@suse.com + +- bnc#893638 + - handle abort button correctly during installation +- 3.1.88 + +------------------------------------------------------------------- +Mon Aug 25 10:46:44 UTC 2014 - mfilka@suse.com + +- 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 - locilka@suse.com + +- 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 - locilka@suse.com + +- 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 - locilka@suse.com + +- 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 - mvidner@suse.com + +- Test speed-up. +- 3.1.92 + +------------------------------------------------------------------- +Wed Sep 3 08:37:43 UTC 2014 - mfilka@suse.com + +- bnc#886434 + - accelerated autoconfiguration at the beginning of installer +- 3.1.91 + +------------------------------------------------------------------- +Tue Sep 2 08:45:30 UTC 2014 - ancor@suse.com + +- 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 - lslezak@suse.cz + +- 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 - mfilka@suse.com + +- bnc#893638 + - handle abort button correctly during installation +- 3.1.88 + +------------------------------------------------------------------- +Mon Aug 25 10:46:44 UTC 2014 - mfilka@suse.com + +- 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 - locilka@suse.com + +- 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 - locilka@suse.com + +- 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 - snwint@suse.de - 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 (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 (close</a>)") % - LINK_DISABLE_VNC - : _("VNC ports will be blocked (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 (block</a>)" - ) % LINK_BLOCK_SSH_PORT - : - _( - "SSH port will be blocked (open</a>)" - ) % LINK_OPEN_SSH_PORT - end + SuSEFirewall4Network.EnabledVnc1stStage ? + _("VNC ports will be open (close</a>)") % LINK_DISABLE_VNC + : + _("VNC ports will be blocked (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 (block</a>)") % LINK_BLOCK_SSH_PORT + : + _("SSH port will be blocked (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:passwd@example.com: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: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org