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