Hello community,

here is the log from the commit of package yast2-services-manager for 
openSUSE:Factory checked in at 2019-02-15 09:54:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-services-manager (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-services-manager.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-services-manager"

Fri Feb 15 09:54:01 2019 rev:46 rq:674646 version:4.1.14

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/yast2-services-manager/yast2-services-manager.changes
    2019-02-04 16:09:06.730021687 +0100
+++ 
/work/SRC/openSUSE:Factory/.yast2-services-manager.new.28833/yast2-services-manager.changes
 2019-02-15 09:54:03.123785568 +0100
@@ -1,0 +2,14 @@
+Wed Feb 13 16:38:31 CET 2019 - sch...@suse.de
+
+- Upgrade: Do not write default target if it has not been set.
+  (bsc#1125144)
+- 4.1.14
+
+-------------------------------------------------------------------
+Fri Feb  8 11:15:38 CET 2019 - sch...@suse.de
+
+- Reporting a warning if a none existing default target will be
+  written (bsc#1046083).
+- 4.1.13
+
+-------------------------------------------------------------------

Old:
----
  yast2-services-manager-4.1.12.tar.bz2

New:
----
  yast2-services-manager-4.1.14.tar.bz2

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

Other differences:
------------------
++++++ yast2-services-manager.spec ++++++
--- /var/tmp/diff_new_pack.TXzEcD/_old  2019-02-15 09:54:03.499785449 +0100
+++ /var/tmp/diff_new_pack.TXzEcD/_new  2019-02-15 09:54:03.499785449 +0100
@@ -24,7 +24,7 @@
 ######################################################################
 
 Name:           yast2-services-manager
-Version:        4.1.12
+Version:        4.1.14
 Release:        0
 BuildArch:      noarch
 

++++++ yast2-services-manager-4.1.12.tar.bz2 -> 
yast2-services-manager-4.1.14.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-services-manager-4.1.12/package/yast2-services-manager.changes 
new/yast2-services-manager-4.1.14/package/yast2-services-manager.changes
--- old/yast2-services-manager-4.1.12/package/yast2-services-manager.changes    
2019-01-29 14:29:40.000000000 +0100
+++ new/yast2-services-manager-4.1.14/package/yast2-services-manager.changes    
2019-02-13 16:59:26.000000000 +0100
@@ -1,4 +1,18 @@
 -------------------------------------------------------------------
+Wed Feb 13 16:38:31 CET 2019 - sch...@suse.de
+
+- Upgrade: Do not write default target if it has not been set.
+  (bsc#1125144)
+- 4.1.14
+
+-------------------------------------------------------------------
+Fri Feb  8 11:15:38 CET 2019 - sch...@suse.de
+
+- Reporting a warning if a none existing default target will be
+  written (bsc#1046083).
+- 4.1.13
+
+-------------------------------------------------------------------
 Tue Jan 29 07:52:57 UTC 2019 - dgonza...@suse.com
 
 - Includes the associated socket status, if applicable, as part of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-services-manager-4.1.12/package/yast2-services-manager.spec 
new/yast2-services-manager-4.1.14/package/yast2-services-manager.spec
--- old/yast2-services-manager-4.1.12/package/yast2-services-manager.spec       
2019-01-29 14:29:40.000000000 +0100
+++ new/yast2-services-manager-4.1.14/package/yast2-services-manager.spec       
2019-02-13 16:59:26.000000000 +0100
@@ -24,7 +24,7 @@
 ######################################################################
 
 Name:           yast2-services-manager
-Version:        4.1.12
+Version:        4.1.14
 Release:        0
 BuildArch:      noarch
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-services-manager-4.1.12/src/modules/services_manager_target.rb 
new/yast2-services-manager-4.1.14/src/modules/services_manager_target.rb
--- old/yast2-services-manager-4.1.12/src/modules/services_manager_target.rb    
2019-01-29 14:29:40.000000000 +0100
+++ new/yast2-services-manager-4.1.14/src/modules/services_manager_target.rb    
2019-02-13 16:59:26.000000000 +0100
@@ -3,6 +3,7 @@
 
 module Yast
   import 'Stage'
+  import "Report"
 
   class ServicesManagerTargetClass < Module
     include Yast::Logger
@@ -84,6 +85,7 @@
     def read
       @targets = {}
       @default_target = ""
+      @initial_default_target = ""
 
       # Reads the data on a running system only
       return true if Stage.initial
@@ -138,9 +140,15 @@
     end
 
     def save
-      return true unless modified?
+      if !modified?
+        log.info('Default target has not been changed.')
+        return true
+      end
+
       log.info('Saving default target...')
-      Yast2::Systemd::Target.set_default(default_target)
+
+      ensure_target
+      Yast2::Systemd::Target.set_default(self.default_target)
     end
 
     def reset
@@ -172,6 +180,16 @@
 
   private
 
+    def ensure_target
+      return if Yast2::Systemd::Target.find(self.default_target)
+
+      # TRANSLATORS: error popup, %s is the default target e.g. graphical
+      Report.Warning(_("Target '%s' is not available." \
+                       " Using text mode as default target.") % default_target)
+      self.default_target = BaseTargets::MULTIUSER
+    end
+
+
     attr_reader :initial_default_target
 
     publish({:function => :all,            :type => "map <string, map> ()" })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-services-manager-4.1.12/test/services_manager_target_test.rb 
new/yast2-services-manager-4.1.14/test/services_manager_target_test.rb
--- old/yast2-services-manager-4.1.12/test/services_manager_target_test.rb      
2019-01-29 14:29:40.000000000 +0100
+++ new/yast2-services-manager-4.1.14/test/services_manager_target_test.rb      
2019-02-13 16:59:26.000000000 +0100
@@ -36,8 +36,9 @@
     MULTI_USER = Template.new("multi-user", true)
     POWEROFF   = Template.new("poweroff", true)
     SLEEP      = Template.new("sleep", false)
+    MDMONITOR  = Template.new("mdmonitor", true)
 
-    ALL = [ GRAPHICAL, MULTI_USER, POWEROFF, SLEEP ]
+    ALL = [ GRAPHICAL, MULTI_USER, POWEROFF, SLEEP, MDMONITOR ]
   end
 
   extend Yast::I18n
@@ -50,13 +51,13 @@
       allow(Yast::Mode).to receive(:mode).and_return("normal")
 
       allow(Yast2::Systemd::Target).to 
receive(:all).and_return(TestTarget::ALL)
-      allow(Yast2::Systemd::Target).to 
receive(:get_default).and_return(TestTarget::GRAPHICAL)
+      allow(Yast2::Systemd::Target).to 
receive(:get_default).and_return(TestTarget::MULTI_USER)
     end
 
     describe "#default_target" do
       context "when the default target has not been set yet" do
         it "returns the default target in the system" do
-          expect(subject.default_target).to eq("graphical")
+          expect(subject.default_target).to eq("multi-user")
         end
       end
 
@@ -73,7 +74,7 @@
 
     describe "#targets" do
       it "returns the list of all possible targets" do
-        expect(subject.targets.keys).to contain_exactly("multi-user", 
"graphical")
+        expect(subject.targets.keys).to contain_exactly("multi-user", 
"graphical", "mdmonitor")
       end
 
       it "does not include targets that does not allow isolate" do
@@ -100,34 +101,69 @@
         subject.default_target = target
       end
 
-      context "when the default target has not been changed" do
-        let(:target) { "graphical" }
+      context "default target is available" do
+        before do
+          allow(Yast2::Systemd::Target).to 
receive(:find).and_return(TestTarget::GRAPHICAL)
+        end
 
-        it "does not perform changes in the underlying system" do
-          expect(Yast2::Systemd::Target).to_not receive(:set_default)
+        context "when the default target has not been changed" do
+          let(:target) { "multi-user" }
 
-          subject.save
+          it "does not perform changes in the underlying system" do
+            expect(Yast2::Systemd::Target).to_not receive(:set_default)
+
+            subject.save
+          end
+        end
+
+        context "when the default target has been changed" do
+          let(:target) { "graphical" }
+
+          it "saves the changes in the underlying system" do
+            expect(Yast2::Systemd::Target).to 
receive(:set_default).with("graphical")
+
+            subject.save
+          end
         end
       end
 
-      context "when the default target has been changed" do
-        let(:target) { "multi-user" }
+      context "when default target is not available" do
+        let(:target) { "graphical" }
 
-        it "saves the changes in the underlying system" do
+        it "reports a warning and sets to multi-user" do
+          expect(Yast2::Systemd::Target).to receive(:find).and_return(nil)
+          expect(Yast::Report).to receive(:Warning)
           expect(Yast2::Systemd::Target).to 
receive(:set_default).with("multi-user")
-
           subject.save
         end
       end
     end
 
+    describe "#read" do
+      context "when an installation/update will be done" do
+        before do
+          allow(Yast::Stage).to receive(:initial).and_return(true)
+        end
+
+        it "does not read from the system" do
+          expect(Yast2::Systemd::Target).not_to receive(:get_default)
+          subject.read
+        end
+
+        it "reports that no data has been changed if it has not been set 
explicit" do
+          subject.read
+          expect(subject.modified?).to eq(false)
+        end
+      end
+    end
+
     describe "#reset" do
       it "sets the default target according to value in the system" do
-        subject.default_target = "multi-user"
+        subject.default_target = "mdmonitor"
 
         subject.reset
 
-        expect(subject.default_target).to eq("graphical")
+        expect(subject.default_target).to eq("multi-user")
       end
     end
 
@@ -136,19 +172,19 @@
         subject.default_target = target
       end
 
-      context "when the default target has not been changed" do
+      context "when the default target has been changed" do
         let(:target) { "graphical" }
 
-        it "returns false" do
-          expect(subject.modified?).to eq(false)
+        it "returns true" do
+          expect(subject.modified?).to eq(true)
         end
       end
 
-      context "when the default target has been changed" do
+      context "when the default target has not been changed" do
         let(:target) { "multi-user" }
 
-        it "returns true" do
-          expect(subject.modified?).to eq(true)
+        it "returns false" do
+          expect(subject.modified?).to eq(false)
         end
       end
     end
@@ -171,7 +207,7 @@
           let(:target) { "multi-user" }
 
           before do
-            subject.default_target = "multi-user"
+            subject.default_target = "graphical"
           end
 
           it "does not set the module as 'not modified'" do
@@ -191,7 +227,7 @@
 
       context "when the default target has been changed" do
         before do
-          subject.default_target = "multi-user"
+          subject.default_target = "graphical"
         end
 
         it "returns a summary describing the change" do


Reply via email to