Skip to content

Commit

Permalink
Merge abcd338 into c8f0428
Browse files Browse the repository at this point in the history
  • Loading branch information
lslezak committed Sep 25, 2018
2 parents c8f0428 + abcd338 commit cbb73cc
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 8 deletions.
7 changes: 7 additions & 0 deletions package/yast2-packager.changes
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
-------------------------------------------------------------------
Tue Sep 25 11:56:41 UTC 2018 - lslezak@suse.cz

- Copy also the role packages from the self-update repository
(bsc#1101016)
- 4.1.7

-------------------------------------------------------------------
Fri Sep 21 12:58:42 CEST 2018 - schubi@suse.de

Expand Down
15 changes: 11 additions & 4 deletions src/lib/y2packager/self_update_addon_filter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,14 @@ module Y2Packager
class SelfUpdateAddonFilter
extend Yast::Logger

PROVIDES_INSTALLATION = "system-installation()".freeze
PROVIDES_PRODUCT = "product()".freeze
PROVIDES = [
# skelcd-* packages providing installation.xml for base products
"system-installation()",
# the *-release packages providing a product
"product()",
# used by roles-* packages providing installation.xml for roles
"installer_module_extension()"
].freeze

#
# Returns package name from the selected repository which should be used
Expand All @@ -41,8 +47,9 @@ class SelfUpdateAddonFilter
def self.packages(repo_id)
# returns list like [["skelcd-control-SLED", :CAND, :NONE],
# ["skelcd-control-SLES", :CAND, :NONE],...]
package_data = Yast::Pkg.PkgQueryProvides(PROVIDES_INSTALLATION) +
Yast::Pkg.PkgQueryProvides(PROVIDES_PRODUCT)
package_data = PROVIDES.reduce([]) do |memo, p|
memo.concat(Yast::Pkg.PkgQueryProvides(p))
end

pkgs = package_data.map(&:first).uniq

Expand Down
16 changes: 12 additions & 4 deletions test/self_update_addon_filter_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,35 @@
["SLES-release", :CAND, :NONE]
]
end
let(:roles_packages) do
[
["system-role-server-default", :CAND, :NONE]
]
end

let(:pkg_src) { 42 }

before do
expect(Yast::Pkg).to receive(:PkgQueryProvides).with("system-installation()")
.and_return(packages)
expect(Yast::Pkg).to receive(:PkgQueryProvides).with("product()")
.and_return(product_packages)
expect(Yast::Pkg).to receive(:PkgQueryProvides).with("installer_module_extension()")
.and_return(roles_packages)
end

it "returns packages providing 'system-installation()' from the required repository" do
expect(Yast::Pkg).to receive(:ResolvableProperties).with(anything, :package, "")
.and_return(["source" => pkg_src]).exactly(3).times
.and_return(["source" => pkg_src]).exactly(4).times

expect(Y2Packager::SelfUpdateAddonFilter.packages(pkg_src)).to eq(
["skelcd-control-SLED", "skelcd-control-SLES", "SLES-release"]
expect(Y2Packager::SelfUpdateAddonFilter.packages(pkg_src)).to contain_exactly(
"skelcd-control-SLED", "skelcd-control-SLES", "SLES-release", "system-role-server-default"
)
end

it "returns an empty list if the packages are not from the required repository" do
expect(Yast::Pkg).to receive(:ResolvableProperties).with(anything, :package, "")
.and_return(["source" => 999]).exactly(3).times
.and_return(["source" => 999]).exactly(4).times

expect(Y2Packager::SelfUpdateAddonFilter.packages(pkg_src)).to eq([])
end
Expand Down

0 comments on commit cbb73cc

Please sign in to comment.