diff --git a/rust/share/dbus-test.conf b/rust/share/dbus-test.conf index 001c152a27..99da927d20 100644 --- a/rust/share/dbus-test.conf +++ b/rust/share/dbus-test.conf @@ -65,7 +65,7 @@ 1000000000 - 120000 + 600000 240000 150000 100000 diff --git a/service/bin/agamactl b/service/bin/agamactl index 0ade4ebdd7..1fbd0f3402 100755 --- a/service/bin/agamactl +++ b/service/bin/agamactl @@ -43,7 +43,7 @@ def logger_for(name) formatter = Logger::Formatter.new # the default else # going via syslog which will provide time and progname already - formatter = ->(severity, _time, _progname, msg) { "#{severity}: #{msg}\n" } + formatter = ->(severity, _time, _progname, msg) { "[#{severity}]: #{name}: #{msg}\n" } $stdout.sync = true end @@ -59,7 +59,9 @@ def start_service(name) module_y2dir = File.expand_path("../lib/agama/dbus/y2dir/#{name}", __dir__) ENV["Y2DIR"] = [ENV.fetch("Y2DIR", nil), module_y2dir, general_y2dir].compact.join(":") - service_runner = Agama::DBus::ServiceRunner.new(name, logger: logger_for(name)) + logger = logger_for(name) + service_runner = Agama::DBus::ServiceRunner.new(name, logger: logger) + logger.info "Starting the service" service_runner.run end diff --git a/service/lib/agama/manager.rb b/service/lib/agama/manager.rb index dfb2210de3..0e8c02aeee 100644 --- a/service/lib/agama/manager.rb +++ b/service/lib/agama/manager.rb @@ -64,6 +64,7 @@ def initialize(config, logger) @installation_phase = InstallationPhase.new @service_status_recorder = ServiceStatusRecorder.new @service_status = DBus::ServiceStatus.new.busy + on_progress_change { logger.info progress.to_s } end # Runs the startup phase diff --git a/service/lib/agama/progress.rb b/service/lib/agama/progress.rb index c4c86f1653..6a71b511ec 100644 --- a/service/lib/agama/progress.rb +++ b/service/lib/agama/progress.rb @@ -145,5 +145,14 @@ def on_change(&block) def on_finish(&block) @on_finish_callbacks << block end + + # Returns a string-based representation of the progress + # + # @return [String] + def to_s + return "Finished" if finished? + + "#{current_step.description} (#{@counter}/#{total_steps})" + end end end diff --git a/service/lib/agama/software/manager.rb b/service/lib/agama/software/manager.rb index a936c1380a..84e17e2e9e 100644 --- a/service/lib/agama/software/manager.rb +++ b/service/lib/agama/software/manager.rb @@ -73,6 +73,7 @@ def initialize(config, logger) @config.pick_product(@product) end @repositories = RepositoriesManager.new + on_progress_change { logger.info progress.to_s } end def select_product(name) diff --git a/service/lib/agama/storage/manager.rb b/service/lib/agama/storage/manager.rb index 086f19e73a..40682771a3 100644 --- a/service/lib/agama/storage/manager.rb +++ b/service/lib/agama/storage/manager.rb @@ -52,6 +52,7 @@ def initialize(config, logger) @config = config @logger = logger register_proposal_callbacks + on_progress_change { logger.info progress.to_s } end # Whether the system is in a deprecated status diff --git a/service/package/rubygem-agama.changes b/service/package/rubygem-agama.changes index 55daa95bfb..94f0bb29d2 100644 --- a/service/package/rubygem-agama.changes +++ b/service/package/rubygem-agama.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Sep 1 07:32:59 UTC 2023 - Imobach Gonzalez Sosa + +- Extend the Ruby-based services logs with information about + each step (gh#openSUSE/agama#732). +- Raise the D-Bus service start timeout for troubleshoting purposes + (related to bsc#1214737). + ------------------------------------------------------------------- Thu Aug 31 10:36:53 UTC 2023 - Imobach Gonzalez Sosa diff --git a/service/share/dbus.conf b/service/share/dbus.conf index 0d3493dae5..5033e30ab3 100644 --- a/service/share/dbus.conf +++ b/service/share/dbus.conf @@ -67,7 +67,7 @@ 1000000000 - 120000 + 600000 240000 150000 100000 diff --git a/service/test/agama/progress_test.rb b/service/test/agama/progress_test.rb index 4b489343eb..f0d0cad0c3 100644 --- a/service/test/agama/progress_test.rb +++ b/service/test/agama/progress_test.rb @@ -227,4 +227,22 @@ end end end + + describe "#to_s" do + let(:steps) { 2 } + + before { subject.step("Probing software") } + + it "returns the step description an the current/total steps" do + expect(subject.to_s).to eq("Probing software (1/2)") + end + + context "when the progress is finished" do + before { subject.step("Probing storage") } + + it "returns 'Finished' when the progress is finished" do + expect(subject.to_s).to eq("Finished") + end + end + end end