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


Reply via email to