From bba080619c1da58130047b528ae199adfb4538d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Imobach=20Gonz=C3=A1lez=20Sosa?= Date: Fri, 10 Feb 2023 17:48:57 +0000 Subject: [PATCH 1/3] [service] Remove old repos when the product changes --- service/lib/dinstaller/software/manager.rb | 1 + .../lib/dinstaller/software/repositories_manager.rb | 6 ++++++ service/test/dinstaller/software/manager_test.rb | 7 ++++--- .../software/repositories_manager_test.rb | 13 +++++++++++++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/service/lib/dinstaller/software/manager.rb b/service/lib/dinstaller/software/manager.rb index f38977c309..764ed5dbfd 100644 --- a/service/lib/dinstaller/software/manager.rb +++ b/service/lib/dinstaller/software/manager.rb @@ -83,6 +83,7 @@ def select_product(name) @config.pick_product(name) @product = name @probed = false # reset probing when product changed + repositories.delete_all end def probe diff --git a/service/lib/dinstaller/software/repositories_manager.rb b/service/lib/dinstaller/software/repositories_manager.rb index 624197b87e..4291df27ea 100644 --- a/service/lib/dinstaller/software/repositories_manager.rb +++ b/service/lib/dinstaller/software/repositories_manager.rb @@ -77,6 +77,12 @@ def load end Yast::Pkg.SourceLoad end + + # Deletes all the repositories + def delete_all + repositories.each(&:delete!) + repositories.clear + end end end end diff --git a/service/test/dinstaller/software/manager_test.rb b/service/test/dinstaller/software/manager_test.rb index d072b869ea..649bcd78c1 100644 --- a/service/test/dinstaller/software/manager_test.rb +++ b/service/test/dinstaller/software/manager_test.rb @@ -37,9 +37,10 @@ let(:repositories) do instance_double( DInstaller::Software::RepositoriesManager, - add: nil, - load: nil, - empty?: true + add: nil, + load: nil, + delete_all: nil, + empty?: true ) end let(:proposal) do diff --git a/service/test/dinstaller/software/repositories_manager_test.rb b/service/test/dinstaller/software/repositories_manager_test.rb index 37538d17b8..02cb7889db 100644 --- a/service/test/dinstaller/software/repositories_manager_test.rb +++ b/service/test/dinstaller/software/repositories_manager_test.rb @@ -73,6 +73,19 @@ end end + describe "#delete_all" do + before do + subject.repositories << repo + subject.repositories << disabled_repo + end + + it "deletes all the repositories" do + expect(repo).to receive(:delete!) + expect(disabled_repo).to receive(:delete!) + subject.delete_all + end + end + describe "#enabled" do before do subject.repositories << repo From 6fdb93760bfbece27533337a0d402871c57b8bd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Imobach=20Gonz=C3=A1lez=20Sosa?= Date: Fri, 10 Feb 2023 17:49:25 +0000 Subject: [PATCH 2/3] [service] Use the correct base product name --- service/lib/dinstaller/software/manager.rb | 6 +++++- service/test/dinstaller/software/manager_test.rb | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/service/lib/dinstaller/software/manager.rb b/service/lib/dinstaller/software/manager.rb index 764ed5dbfd..aea9731357 100644 --- a/service/lib/dinstaller/software/manager.rb +++ b/service/lib/dinstaller/software/manager.rb @@ -115,7 +115,7 @@ def initialize_target_repos # Updates the software proposal def propose - proposal.base_product = @product + proposal.base_product = selected_base_product proposal.languages = languages select_resolvables result = proposal.calculate @@ -218,6 +218,10 @@ def installation_repositories @config.data["software"]["installation_repositories"] end + def selected_base_product + @config.data["software"]["base_product"] + end + def add_base_repos installation_repositories.each do |repo| if repo.is_a?(Hash) diff --git a/service/test/dinstaller/software/manager_test.rb b/service/test/dinstaller/software/manager_test.rb index 649bcd78c1..25d2fe27e2 100644 --- a/service/test/dinstaller/software/manager_test.rb +++ b/service/test/dinstaller/software/manager_test.rb @@ -141,7 +141,7 @@ it "creates a new proposal for the selected product" do expect(proposal).to receive(:languages=).with(["en_US"]) - expect(proposal).to receive(:base_product=).with("Tumbleweed") + expect(proposal).to receive(:base_product=).with("openSUSE") expect(proposal).to receive(:calculate) subject.propose end From bca67646ff715f7d7bd40f7328a3cd8fe9635085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Imobach=20Gonz=C3=A1lez=20Sosa?= Date: Fri, 10 Feb 2023 17:52:24 +0000 Subject: [PATCH 3/3] [service] Clean-up an unused variable --- service/lib/dinstaller/software/manager.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/service/lib/dinstaller/software/manager.rb b/service/lib/dinstaller/software/manager.rb index aea9731357..a4556d295a 100644 --- a/service/lib/dinstaller/software/manager.rb +++ b/service/lib/dinstaller/software/manager.rb @@ -63,7 +63,6 @@ class Manager def initialize(config, logger) @config = config - @probed = false @logger = logger @languages = DEFAULT_LANGUAGES @products = @config.products @@ -82,7 +81,6 @@ def select_product(name) @config.pick_product(name) @product = name - @probed = false # reset probing when product changed repositories.delete_all end