Hello community, here is the log from the commit of package yast2-slp-server for openSUSE:Factory checked in at 2018-08-12 20:55:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-slp-server (Old) and /work/SRC/openSUSE:Factory/.yast2-slp-server.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-slp-server" Sun Aug 12 20:55:00 2018 rev:39 rq:628643 version:4.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-slp-server/yast2-slp-server.changes 2018-07-03 23:34:10.552423867 +0200 +++ /work/SRC/openSUSE:Factory/.yast2-slp-server.new/yast2-slp-server.changes 2018-08-12 20:55:05.421432821 +0200 @@ -1,0 +2,7 @@ +Fri Aug 10 13:47:37 UTC 2018 - [email protected] + +- Use new Yast2::ServiceWidget to manage the service status + (part of fate#319428). +- 4.1.0 + +------------------------------------------------------------------- Old: ---- yast2-slp-server-4.0.1.tar.bz2 New: ---- yast2-slp-server-4.1.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-slp-server.spec ++++++ --- /var/tmp/diff_new_pack.E73skX/_old 2018-08-12 20:55:05.765433519 +0200 +++ /var/tmp/diff_new_pack.E73skX/_new 2018-08-12 20:55:05.769433527 +0200 @@ -17,29 +17,25 @@ Name: yast2-slp-server -Version: 4.0.1 +Summary: YaST2 SLP Daemon Server Configuration +License: GPL-2.0+ +Group: System/YaST +Version: 4.1.0 Release: 0 +# CWM::ServiceWidget +Requires: yast2 >= 4.1.0 +Requires: yast2-ruby-bindings >= 1.0.0 + BuildRoot: %{_tmppath}/%{name}-%{version}-build Source0: %{name}-%{version}.tar.bz2 - +BuildArch: noarch BuildRequires: update-desktop-files BuildRequires: yast2 BuildRequires: yast2-devtools >= 3.1.10 BuildRequires: yast2-testsuite - -# network needs Wizard::OpenCancelOKDialog() -# function from yast2-2.18.2 -# Wizard::SetDesktopTitleAndIcon -Requires: yast2 >= 2.21.22 - -BuildArch: noarch - -Requires: yast2-ruby-bindings >= 1.0.0 - -Summary: YaST2 SLP Daemon Server Configuration -License: GPL-2.0+ -Group: System/YaST +# CWM::ServiceWidget +BuildRequires: yast2 >= 4.1.0 %description This package contains the YaST2 component for the configuration of an ++++++ yast2-slp-server-4.0.1.tar.bz2 -> yast2-slp-server-4.1.0.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slp-server-4.0.1/package/yast2-slp-server.changes new/yast2-slp-server-4.1.0/package/yast2-slp-server.changes --- old/yast2-slp-server-4.0.1/package/yast2-slp-server.changes 2018-07-02 16:35:57.000000000 +0200 +++ new/yast2-slp-server-4.1.0/package/yast2-slp-server.changes 2018-08-10 16:40:27.000000000 +0200 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Fri Aug 10 13:47:37 UTC 2018 - [email protected] + +- Use new Yast2::ServiceWidget to manage the service status + (part of fate#319428). +- 4.1.0 + +------------------------------------------------------------------- Thu Jun 28 15:29:00 CEST 2018 - [email protected] - Added additional searchkeys to desktop file (fate#321043). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slp-server-4.0.1/package/yast2-slp-server.spec new/yast2-slp-server-4.1.0/package/yast2-slp-server.spec --- old/yast2-slp-server-4.0.1/package/yast2-slp-server.spec 2018-07-02 16:35:57.000000000 +0200 +++ new/yast2-slp-server-4.1.0/package/yast2-slp-server.spec 2018-08-10 16:40:27.000000000 +0200 @@ -15,29 +15,25 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # - Name: yast2-slp-server -Version: 4.0.1 +Summary: YaST2 SLP Daemon Server Configuration +Version: 4.1.0 Release: 0 -BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source0: %{name}-%{version}.tar.bz2 - Group: System/YaST License: GPL-2.0+ -BuildRequires: update-desktop-files yast2 yast2-testsuite -BuildRequires: yast2-devtools >= 3.1.10 - -# network needs Wizard::OpenCancelOKDialog() -# function from yast2-2.18.2 -# Wizard::SetDesktopTitleAndIcon -Requires: yast2 >= 2.21.22 - -BuildArchitectures: noarch +# CWM::ServiceWidget +Requires: yast2 >= 4.1.0 Requires: yast2-ruby-bindings >= 1.0.0 -Summary: YaST2 SLP Daemon Server Configuration +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source0: %{name}-%{version}.tar.bz2 +BuildArchitectures: noarch +BuildRequires: update-desktop-files yast2 yast2-testsuite +BuildRequires: yast2-devtools >= 3.1.10 +# CWM::ServiceWidget +BuildRequires: yast2 >= 4.1.0 %description This package contains the YaST2 component for the configuration of an @@ -52,7 +48,6 @@ %install %yast_install - %files %defattr(-,root,root) %dir %{yast_yncludedir}/slp-server diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slp-server-4.0.1/src/include/slp-server/dialogs.rb new/yast2-slp-server-4.1.0/src/include/slp-server/dialogs.rb --- old/yast2-slp-server-4.0.1/src/include/slp-server/dialogs.rb 2018-07-02 16:35:57.000000000 +0200 +++ new/yast2-slp-server-4.1.0/src/include/slp-server/dialogs.rb 2018-08-10 16:40:27.000000000 +0200 @@ -6,6 +6,9 @@ # Authors: Zugec Michal <[email protected]> # # $Id$ + +require "cwm/service_widget" + module Yast module SlpServerDialogsInclude def initialize_slp_server_dialogs(include_target) @@ -16,7 +19,6 @@ Yast.import "SlpServer" Yast.import "CWMTab" Yast.import "CWM" - Yast.import "CWMServiceStart" Yast.import "CWMFirewallInterfaces" Yast.import "TablePopup" Yast.import "LogView" @@ -34,34 +36,7 @@ @widgets = { - # service status widget - "auto_start_up" => CWMServiceStart.CreateAutoStartWidget( - { - "get_service_auto_start" => fun_ref( - SlpServer.method(:GetStartService), - "boolean ()" - ), - "set_service_auto_start" => fun_ref( - SlpServer.method(:SetStartService), - "void (boolean)" - ), - # radio button (starting SLP service - option 1) - "start_auto_button" => _( - "When &Booting" - ), - # radio button (starting SLP service - option 2) - "start_manual_button" => _( - "&Manually" - ), - "help" => Builtins.sformat( - CWMServiceStart.AutoStartHelpTemplate, - # part of help text, used to describe radiobuttons (matching starting SLP service but without "&") - _("When Booting"), - # part of help text, used to describe radiobuttons (matching starting SLP service but without "&") - _("Manually") - ) - } - ), + "auto_start_up" => service_widget.cwm_definition, # firewall widget "firewall" => CWMFirewallInterfaces.CreateOpenFirewallWidget( # bnc#825505 - fixed not working checkbox due to unknown firewall service @@ -307,6 +282,13 @@ } end + # Widget to define state and start mode of the service + # + # @return [::CWM::ServiceWidget] + def service_widget + @service ||= ::CWM::ServiceWidget.new(SlpServer.service) + end + def initExpert(key) TablePopup.TableInit(CWM.GetProcessedWidget, key) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slp-server-4.0.1/src/modules/SlpServer.rb new/yast2-slp-server-4.1.0/src/modules/SlpServer.rb --- old/yast2-slp-server-4.0.1/src/modules/SlpServer.rb 2018-07-02 16:35:57.000000000 +0200 +++ new/yast2-slp-server-4.1.0/src/modules/SlpServer.rb 2018-08-10 16:40:27.000000000 +0200 @@ -10,6 +10,7 @@ # Representation of the configuration of slp-server. # Input and output routines. require "yast" +require "yast2/system_service" module Yast class SlpServerClass < Module @@ -25,6 +26,7 @@ Yast.import "Package" Yast.import "Popup" Yast.import "Confirm" + Yast.import "Mode" Yast.import "Map" Yast.import "NetworkService" @@ -73,6 +75,13 @@ @reg_files = [] end + # Service to configure + # + # @return [Yast2::SystemService] + def service + @service ||= Yast2::SystemService.find("slpd") + end + # Abort function # @return [Boolean] return true if abort def Abort @@ -235,7 +244,6 @@ return false if !Confirm.MustBeRoot return false if !NetworkService.RunningNetworkPopup Progress.NextStage - return false if false Builtins.sleep(sl) Progress.set(false) @@ -309,15 +317,15 @@ Progress.set(true) Progress.NextStage + # Error message - Report.Error(_("Cannot write settings.")) if !WriteGlobalConfig() + Report.Error(_("Cannot write settings.")) unless save_settings + Builtins.sleep(sl) # run SuSEconfig return false if Abort() Progress.NextStage - # Error message - return false if false Builtins.sleep(sl) return false if Abort() @@ -330,6 +338,25 @@ true end + # Saves service settings + # + # @return [Boolean] true if settings were correctly saved; false otherwise + def save_settings + WriteGlobalConfig() && save_status + end + + # Saves service status (start mode and starts/stops the service) + # + # @note For AutoYaST and for command line actions, it does not save the service, + # due to the {#service} is not used in that cases. + # + # @return [Boolean] + def save_status + return true if Mode.auto || Mode.commandline + + service.save + end + # Get all slp-server settings from the first parameter # (For use by autoinstallation.) # @param [Hash] settings The YCP structure to be imported. @@ -400,12 +427,14 @@ { "install" => [], "remove" => [] } end + # @deprecated def GetStartService @serviceStatus = Service.Enabled("slpd") Builtins.y2milestone("Status of slpd service %1", @serviceStatus) @serviceStatus end + # @deprecated def SetStartService(status) Builtins.y2milestone("Set service status %1", status) if status == true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-slp-server-4.0.1/test/slp_server_test.rb new/yast2-slp-server-4.1.0/test/slp_server_test.rb --- old/yast2-slp-server-4.0.1/test/slp_server_test.rb 2018-07-02 16:35:57.000000000 +0200 +++ new/yast2-slp-server-4.1.0/test/slp_server_test.rb 2018-08-10 16:40:27.000000000 +0200 @@ -86,4 +86,76 @@ end end end + + describe "#Write" do + subject(:slp_server) { Yast::SlpServerClass.new } + + before do + allow(Yast::Progress).to receive(:New) + allow(Yast::Progress).to receive(:NextStage) + allow(Yast::Progress).to receive(:set) + + allow(Yast::Builtins).to receive(:sleep) + + allow(Yast::SuSEFirewall).to receive(:Write) + + allow(Yast2::SystemService).to receive(:find).with("slpd").and_return(service) + + allow(Yast::Mode).to receive(:auto) { auto } + allow(Yast::Mode).to receive(:commandline) { commandline } + + slp_server.main + end + + let(:service) { instance_double(Yast2::SystemService, save: true) } + + let(:auto) { false } + let(:commandline) { false } + + shared_examples "old behavior" do + it "does not save the system service" do + allow(slp_server).to receive(:WriteGlobalConfig).and_return(true) + + expect(service).to_not receive(:save) + + slp_server.Write + end + + it "calls to :WriteGlobalConfig" do + expect(slp_server).to receive(:WriteGlobalConfig).and_return(true) + + slp_server.Write + end + end + + context "when running in command line" do + let(:commandline) { true } + + include_examples "old behavior" + end + + context "when running in AutoYaST mode" do + let(:auto) { true } + + include_examples "old behavior" + end + + context "when running in normal mode" do + before do + allow(slp_server).to receive(:WriteGlobalConfig).and_return(true) + end + + it "calls to :WriteGlobalConfig" do + expect(slp_server).to receive(:WriteGlobalConfig) + + slp_server.Write + end + + it "saves the system service" do + expect(service).to receive(:save) + + slp_server.Write + end + end + end end
