apt::pin: Allow for packages to be an array.
This commit is contained in:
parent
3be1f4323f
commit
ef7d149d5a
5 changed files with 39 additions and 3 deletions
|
@ -115,6 +115,10 @@ Note you can also specifying more complex pins using distribution properties.
|
||||||
label => 'Debian'
|
label => 'Debian'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
If you wish to pin a number of packages you may specify the packages as a space
|
||||||
|
delimited string using the `packages` attribute or pass in an array of package
|
||||||
|
names.
|
||||||
|
|
||||||
### apt::ppa
|
### apt::ppa
|
||||||
|
|
||||||
Adds a ppa repository using `add-apt-repository`.
|
Adds a ppa repository using `add-apt-repository`.
|
||||||
|
|
|
@ -37,7 +37,13 @@ define apt::pin(
|
||||||
# Read the manpage 'apt_preferences(5)', especially the chapter
|
# Read the manpage 'apt_preferences(5)', especially the chapter
|
||||||
# 'Thea Effect of APT Preferences' to understand the following logic
|
# 'Thea Effect of APT Preferences' to understand the following logic
|
||||||
# and the difference between specific and general form
|
# and the difference between specific and general form
|
||||||
if $packages != '*' { # specific form
|
if is_array($packages) {
|
||||||
|
$packages_string = join($packages, ' ')
|
||||||
|
} else {
|
||||||
|
$packages_string = $packages
|
||||||
|
}
|
||||||
|
|
||||||
|
if $packages_string != '*' { # specific form
|
||||||
|
|
||||||
if ( $pin_release != '' and ( $origin != '' or $version != '' )) or
|
if ( $pin_release != '' and ( $origin != '' or $version != '' )) or
|
||||||
( $origin != '' and ( $pin_release != '' or $version != '' )) or
|
( $origin != '' and ( $pin_release != '' or $version != '' )) or
|
||||||
|
|
|
@ -91,6 +91,26 @@ describe 'apt::pin define' do
|
||||||
it { should contain 'Pin: release a=vim-puppet' }
|
it { should contain 'Pin: release a=vim-puppet' }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'array' do
|
||||||
|
it 'should work with no errors' do
|
||||||
|
pp = <<-EOS
|
||||||
|
include apt
|
||||||
|
apt::pin { 'array':
|
||||||
|
ensure => present,
|
||||||
|
packages => ['apache', 'ntop'],
|
||||||
|
}
|
||||||
|
EOS
|
||||||
|
|
||||||
|
apply_manifest(pp, :catch_failures => true)
|
||||||
|
end
|
||||||
|
|
||||||
|
describe file('/etc/apt/preferences.d/array.pref') do
|
||||||
|
it { should be_file }
|
||||||
|
it { should contain 'Package: apache ntop' }
|
||||||
|
it { should contain 'Pin: release a=array' }
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'release' do
|
context 'release' do
|
||||||
|
|
|
@ -65,7 +65,7 @@ describe 'apt::pin', :type => :define do
|
||||||
{
|
{
|
||||||
:params => {
|
:params => {
|
||||||
:packages => 'apache',
|
:packages => 'apache',
|
||||||
:priority => '1',
|
:priority => '1',
|
||||||
:release => 'stable',
|
:release => 'stable',
|
||||||
:codename => 'wheezy',
|
:codename => 'wheezy',
|
||||||
:release_version => '3.0',
|
:release_version => '3.0',
|
||||||
|
@ -75,6 +75,12 @@ describe 'apt::pin', :type => :define do
|
||||||
},
|
},
|
||||||
:content => "# my_pin\nExplanation: : my_pin\nPackage: apache\nPin: release a=stable, n=wheezy, v=3.0, c=main, o=Debian, l=Debian\nPin-Priority: 1\n"
|
:content => "# my_pin\nExplanation: : my_pin\nPackage: apache\nPin: release a=stable, n=wheezy, v=3.0, c=main, o=Debian, l=Debian\nPin-Priority: 1\n"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
:params => {
|
||||||
|
:packages => ['apache', 'ntop'],
|
||||||
|
},
|
||||||
|
:content => "# my_pin\nExplanation: : my_pin\nPackage: apache ntop\nPin: release a=my_pin\nPin-Priority: 0\n"
|
||||||
|
},
|
||||||
].each do |param_set|
|
].each do |param_set|
|
||||||
describe "when #{param_set == {} ? "using default" : "specifying"} define parameters" do
|
describe "when #{param_set == {} ? "using default" : "specifying"} define parameters" do
|
||||||
let :param_hash do
|
let :param_hash do
|
||||||
|
|
|
@ -17,6 +17,6 @@ end
|
||||||
-%>
|
-%>
|
||||||
# <%= @name %>
|
# <%= @name %>
|
||||||
Explanation: <%= @explanation %>
|
Explanation: <%= @explanation %>
|
||||||
Package: <%= @packages %>
|
Package: <%= @packages_string %>
|
||||||
Pin: <%= @pin %>
|
Pin: <%= @pin %>
|
||||||
Pin-Priority: <%= @priority %>
|
Pin-Priority: <%= @priority %>
|
||||||
|
|
Loading…
Reference in a new issue