From 8c136cfb0481d27b2ad8171349137da03f908ac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ladislav=20Slez=C3=A1k?= Date: Wed, 1 Nov 2023 09:37:31 +0100 Subject: [PATCH 1/2] Added Repository#refresh method (related to bsc #1215884) - 5.0.3 --- .../packages/src/lib/y2packager/repository.rb | 23 +++++++++++++++++++ library/packages/test/repository_test.rb | 17 ++++++++++++++ package/yast2.changes | 6 +++++ package/yast2.spec | 2 +- 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/library/packages/src/lib/y2packager/repository.rb b/library/packages/src/lib/y2packager/repository.rb index 000d6a486..36900b3bd 100644 --- a/library/packages/src/lib/y2packager/repository.rb +++ b/library/packages/src/lib/y2packager/repository.rb @@ -253,6 +253,29 @@ def delete! true end + # Refresh the repository metadata on disk. + # + # If the repository is loaded in memory you need to reload the repositories + # again to activate the changes. + # + # During refresh the progress callbacks might be executed. + # + # @param force [Boolean] Force refreshing the data unconditionally. + # Disabled by default, libzypp checks the metadata time + # stamp and skips refresh if the repository has been refreshed not long ago. + # See the "repo.refresh.delay" option in /etc/zypp/zypp.conf file. + # @return [Boolean] true on success, false otherwise + # + # @see Yast::Pkg.SourceRefreshNow + # @see Yast::Pkg.SourceForceRefreshNow + def refresh(force: false) + if force + Yast::Pkg.SourceForceRefreshNow(repo_id) + else + Yast::Pkg.SourceRefreshNow(repo_id) + end + end + # Change the repository URL # # The URL will be changed only in memory. Calling to diff --git a/library/packages/test/repository_test.rb b/library/packages/test/repository_test.rb index 6d15f898d..310a996b2 100755 --- a/library/packages/test/repository_test.rb +++ b/library/packages/test/repository_test.rb @@ -289,6 +289,23 @@ end end + describe "#refresh" do + it "runs the refresh only when needed if called without parameters" do + expect(Yast::Pkg).to receive(:SourceRefreshNow).with(repo.repo_id) + repo.refresh + end + + it "runs the refresh only when needed if the force parameter is false" do + expect(Yast::Pkg).to receive(:SourceRefreshNow).with(repo.repo_id) + repo.refresh(force: false) + end + + it "always runs the refresh if the force parameter is true" do + expect(Yast::Pkg).to receive(:SourceForceRefreshNow).with(repo.repo_id) + repo.refresh(force: true) + end + end + describe "#products" do let(:products_data) { [product] } let(:product) do diff --git a/package/yast2.changes b/package/yast2.changes index a6008a021..7ebe53714 100644 --- a/package/yast2.changes +++ b/package/yast2.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Nov 1 08:35:38 UTC 2023 - Ladislav Slezák + +- Added Repository#refresh method (related to bsc #1215884) +- 5.0.3 + ------------------------------------------------------------------- Wed Oct 25 11:16:21 UTC 2023 - Knut Anderssen diff --git a/package/yast2.spec b/package/yast2.spec index 5dea7acff..89e252684 100644 --- a/package/yast2.spec +++ b/package/yast2.spec @@ -17,7 +17,7 @@ Name: yast2 -Version: 5.0.2 +Version: 5.0.3 Release: 0 Summary: YaST2 Main Package From 0234befd7c01fe6aa00c43049f8899e211a545fd Mon Sep 17 00:00:00 2001 From: Martin Vidner Date: Wed, 1 Nov 2023 11:56:52 +0100 Subject: [PATCH 2/2] Fixup bsc markup in package/yast2.changes --- package/yast2.changes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/yast2.changes b/package/yast2.changes index 7ebe53714..11abc67b3 100644 --- a/package/yast2.changes +++ b/package/yast2.changes @@ -1,7 +1,7 @@ ------------------------------------------------------------------- Wed Nov 1 08:35:38 UTC 2023 - Ladislav Slezák -- Added Repository#refresh method (related to bsc #1215884) +- Added Repository#refresh method (related to bsc#1215884) - 5.0.3 -------------------------------------------------------------------