Hello community, here is the log from the commit of package yast2-services-manager for openSUSE:Factory checked in at 2014-07-26 12:19:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-services-manager (Old) and /work/SRC/openSUSE:Factory/.yast2-services-manager.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-services-manager" Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-services-manager/yast2-services-manager.changes 2014-07-23 22:05:40.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.yast2-services-manager.new/yast2-services-manager.changes 2014-07-26 12:20:01.000000000 +0200 @@ -1,0 +2,24 @@ +Tue Jul 25 12:40:31 UTC 2014 - an...@suse.com + +- Ensures that the errors list is cleared if the user decides to + continue after a failure (by delegating ServiceManager.errors to + ServiceManagerService) +- Fixes bnc#888555 +- 3.1.27 + +------------------------------------------------------------------- +Thu Jul 24 11:55:32 CEST 2014 - loci...@suse.com + +- While saving services state (activate/deactivate), do not touch + a service, that is already in the desired state (bnc#884756) +- 3.1.26 + +------------------------------------------------------------------- +Wed Jul 23 18:51:57 CEST 2014 - loci...@suse.com + +- Showing info that Services Manager hasn't been configured yet in + AutoYast till it's cloned from the system or user enters + the module and saves its configuration (bnc#887694) +- 3.1.25 + +------------------------------------------------------------------- Old: ---- yast2-services-manager-3.1.24.tar.bz2 New: ---- yast2-services-manager-3.1.27.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-services-manager.spec ++++++ --- /var/tmp/diff_new_pack.C8z4OT/_old 2014-07-26 12:20:04.000000000 +0200 +++ /var/tmp/diff_new_pack.C8z4OT/_new 2014-07-26 12:20:04.000000000 +0200 @@ -24,7 +24,7 @@ ###################################################################### Name: yast2-services-manager -Version: 3.1.24 +Version: 3.1.27 Release: 0 BuildArch: noarch ++++++ yast2-services-manager-3.1.24.tar.bz2 -> yast2-services-manager-3.1.27.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-services-manager-3.1.24/package/yast2-services-manager.changes new/yast2-services-manager-3.1.27/package/yast2-services-manager.changes --- old/yast2-services-manager-3.1.24/package/yast2-services-manager.changes 2014-07-22 15:22:07.000000000 +0200 +++ new/yast2-services-manager-3.1.27/package/yast2-services-manager.changes 2014-07-25 15:17:10.000000000 +0200 @@ -1,4 +1,28 @@ ------------------------------------------------------------------- +Tue Jul 25 12:40:31 UTC 2014 - an...@suse.com + +- Ensures that the errors list is cleared if the user decides to + continue after a failure (by delegating ServiceManager.errors to + ServiceManagerService) +- Fixes bnc#888555 +- 3.1.27 + +------------------------------------------------------------------- +Thu Jul 24 11:55:32 CEST 2014 - loci...@suse.com + +- While saving services state (activate/deactivate), do not touch + a service, that is already in the desired state (bnc#884756) +- 3.1.26 + +------------------------------------------------------------------- +Wed Jul 23 18:51:57 CEST 2014 - loci...@suse.com + +- Showing info that Services Manager hasn't been configured yet in + AutoYast till it's cloned from the system or user enters + the module and saves its configuration (bnc#887694) +- 3.1.25 + +------------------------------------------------------------------- Tue Jul 22 15:01:52 CEST 2014 - loci...@suse.com - Using new library ServicesProposal, that holds information about diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-services-manager-3.1.24/package/yast2-services-manager.spec new/yast2-services-manager-3.1.27/package/yast2-services-manager.spec --- old/yast2-services-manager-3.1.24/package/yast2-services-manager.spec 2014-07-22 15:22:07.000000000 +0200 +++ new/yast2-services-manager-3.1.27/package/yast2-services-manager.spec 2014-07-25 15:17:10.000000000 +0200 @@ -24,7 +24,7 @@ ###################################################################### Name: yast2-services-manager -Version: 3.1.24 +Version: 3.1.27 Release: 0 BuildArch: noarch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-services-manager-3.1.24/src/clients/services-manager.rb new/yast2-services-manager-3.1.27/src/clients/services-manager.rb --- old/yast2-services-manager-3.1.24/src/clients/services-manager.rb 2014-07-22 15:22:07.000000000 +0200 +++ new/yast2-services-manager-3.1.27/src/clients/services-manager.rb 2014-07-25 15:17:10.000000000 +0200 @@ -72,8 +72,6 @@ success = ServicesManager.save UI.CloseDialog if !success - # FIXME if user select to continue the content of the popup is not discarded - # and new error messages will be displayed beneath the old ones success = ! Popup::ContinueCancel( _("Writing the configuration failed:\n" + ServicesManager.errors.join("\n") + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-services-manager-3.1.24/src/modules/services_manager.rb new/yast2-services-manager-3.1.27/src/modules/services_manager.rb --- old/yast2-services-manager-3.1.24/src/modules/services_manager.rb 2014-07-22 15:22:07.000000000 +0200 +++ new/yast2-services-manager-3.1.27/src/modules/services_manager.rb 2014-07-25 15:17:10.000000000 +0200 @@ -12,11 +12,8 @@ TARGET = 'default_target' SERVICES = 'services' - attr_reader :errors - def initialize textdomain 'services-manager' - @errors = [] end def export @@ -27,8 +24,13 @@ end def auto_summary - erb_template = File.expand_path("../../data/services-manager/autoyast_summary.erb", __FILE__) - ERB.new(File.read(erb_template)).result(binding) + if !modified? + # AutoYast summary + _("Not configured yet.") + else + erb_template = File.expand_path("../../data/services-manager/autoyast_summary.erb", __FILE__) + ERB.new(File.read(erb_template)).result(binding) + end end def import data @@ -47,13 +49,19 @@ ServicesManagerService.read end + # Errors are delegated to ServiceManagerService + # + # @see ServiceManagerService#errors + def errors + ServicesManagerService.errors + end + # Saves the current configuration # # @return Boolean if successful def save target_saved = ServicesManagerTarget.save services_saved = ServicesManagerService.save - errors << ServicesManagerService.errors !!(target_saved && services_saved) end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-services-manager-3.1.24/src/modules/services_manager_service.rb new/yast2-services-manager-3.1.27/src/modules/services_manager_service.rb --- old/yast2-services-manager-3.1.24/src/modules/services_manager_service.rb 2014-07-22 15:22:07.000000000 +0200 +++ new/yast2-services-manager-3.1.27/src/modules/services_manager_service.rb 2014-07-25 15:17:10.000000000 +0200 @@ -3,6 +3,7 @@ module Yast import "Service" import "ServicesProposal" + import "SystemdService" class ServicesManagerServiceClass < Module include Yast::Logger @@ -382,11 +383,23 @@ end def switch_services - Builtins.y2milestone "Switching the services" + log.info "Switching services" services_switched = [] + services.each do |service_name, service_attributes| next unless service_attributes[:modified] - if switch!(service_name) + + service = SystemdService.find(service_name) + unless service + log.error "Cannot find service #{service_name}" + next + end + + # Do not start or stop services that are already in the desired state + # they might be coming from AutoYast import and thus they are :modified. + if service.loaded? == service_attributes[:loaded] || service.active? == service_attributes[:active] + log.info "Skipping service #{service_name} - it's already in desired state" + elsif switch!(service_name) services_switched << service_name else change = active(service_name) ? 'stop' : 'start' @@ -398,6 +411,7 @@ Builtins.y2error("Error: %1", message) end end + services_switched end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-services-manager-3.1.24/test/services_manager_service_test.rb new/yast2-services-manager-3.1.27/test/services_manager_service_test.rb --- old/yast2-services-manager-3.1.24/test/services_manager_service_test.rb 2014-07-22 15:22:07.000000000 +0200 +++ new/yast2-services-manager-3.1.27/test/services_manager_service_test.rb 2014-07-25 15:17:10.000000000 +0200 @@ -3,14 +3,17 @@ require_relative "test_helper" module Yast + extend Yast::I18n + Yast::textdomain "services-manager" + describe ServicesManagerService do attr_reader :service def stub_services - Service.stub(:Enable).and_return(true) - Service.stub(:Disable).and_return(true) - Service.stub(:Start).and_return(true) - Service.stub(:Stop).and_return(true) + allow(Service).to receive(:Enable).and_return true + allow(Service).to receive(:Disable).and_return true + allow(Service).to receive(:Start).and_return true + allow(Service).to receive(:Stop).and_return true end before do @@ -139,5 +142,29 @@ expect(sshd[:active]).to eq(status) expect(sshd[:modified]).to eq(false) end + + context "when enabling is failing" do + before do + stub_services + allow(Service).to receive(:Enable).and_return false + allow(Service).to receive(:Disable).and_return false + service.toggle 'postfix' + service.save + end + + it "reports errors" do + expect(service.errors.first).to start_with Yast::_('Could not enable postfix') + end + + it "cleans messages after reset" do + expect(service.errors.size).to eq 1 + service.reset + expect(service.errors.size).to eq 0 + # Let's fail again + service.toggle 'postfix' + service.save + expect(service.errors.size).to eq 1 + end + end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-services-manager-3.1.24/test/services_manager_test.rb new/yast2-services-manager-3.1.27/test/services_manager_test.rb --- old/yast2-services-manager-3.1.24/test/services_manager_test.rb 2014-07-22 15:22:07.000000000 +0200 +++ new/yast2-services-manager-3.1.27/test/services_manager_test.rb 2014-07-25 15:17:10.000000000 +0200 @@ -6,6 +6,9 @@ Yast.import 'ServicesManagerTarget' Yast.import 'ServicesManager' + extend Yast::I18n + Yast::textdomain "services-manager" + TARGETS = { "multi-user"=>{ :enabled=>true, :loaded=>true, :active=>true, :description=>"Multi-User System" @@ -28,6 +31,13 @@ allow(Yast::ServicesManagerTarget).to receive(:targets).and_return(TARGETS) end + describe ".errors" do + it "delegates errors to ServiceManagerService" do + allow(Yast::ServicesManagerService).to receive(:errors).and_return(["Error msg"]) + expect(Yast::ServicesManager.errors).to eq ["Error msg"] + end + end + context "Autoyast API" do it "exports systemd target and services" do services = { @@ -120,16 +130,26 @@ end end - it "returns HTML-formatted autoyast summary with HTML-escaped values" do - expect(ServicesManagerTarget).to receive(:export).and_return("multi-head-graphical-hydra") - expect(ServicesManagerService).to receive(:export).and_return({ - "enable" => ["service-1", "service-<br>-2", "service-<b>name</b>-3"], - "disable" => ["service-4", "service-<br>-5", "service-<b>name</b>-6"], - }) - - summary = ServicesManager.auto_summary - ["multi-head-graphical-hydra", "service-[14]", "service-<br>-[25]", "service-<b>name</b>-[36]"].each do |item| - expect(summary).to match(/#{item}/) + context "when configuration hasn't been cloned/modified" do + it "returns information that it hasn't been configured yet" do + expect(ServicesManager).to receive(:modified?).and_return(false) + expect(ServicesManager.auto_summary).to eq(Yast::_("Not configured yet.")) + end + end + + context "when configuration has been cloned/modified" do + it "returns HTML-formatted autoyast summary with HTML-escaped values" do + expect(ServicesManager).to receive(:modified?).and_return(true) + expect(ServicesManagerTarget).to receive(:export).and_return("multi-head-graphical-hydra") + expect(ServicesManagerService).to receive(:export).and_return({ + "enable" => ["service-1", "service-<br>-2", "service-<b>name</b>-3"], + "disable" => ["service-4", "service-<br>-5", "service-<b>name</b>-6"], + }) + + summary = ServicesManager.auto_summary + ["multi-head-graphical-hydra", "service-[14]", "service-<br>-[25]", "service-<b>name</b>-[36]"].each do |item| + expect(summary).to match(/#{item}/) + end end end end -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org