# force a package from a specific release
define apt::force(
- $release = false,
+ $release = 'testing',
$version = false,
$timeout = 300
) {
# ppa.pp
define apt::ppa(
- $ensure = 'present',
$release = $::lsbdistcodename,
$options = '-y'
) {
+ $ensure = 'present'
include apt::params
include apt::update
end
end
- context 'ensure' do
- context 'present' do
- it 'works without failure' do
- pp = <<-EOS
- include '::apt'
- apt::ppa { 'ppa:canonical-kernel-team/ppa': ensure => present }
- EOS
-
- apply_manifest(pp, :catch_failures => true)
- end
-
- describe 'contains the source file' do
- it 'contains a kernel ppa source' do
- shell('ls /etc/apt/sources.list.d/canonical-kernel-team-ppa-*', :acceptable_exit_codes => [0])
- end
- end
- end
- end
-
- context 'ensure' do
- context 'absent' do
- it 'works without failure' do
- pp = <<-EOS
- include '::apt'
- apt::ppa { 'ppa:canonical-kernel-team/ppa': ensure => absent }
- EOS
-
- apply_manifest(pp, :catch_failures => true)
- end
-
- describe 'doesnt contain the source file' do
- it 'fails' do
- shell('ls /etc/apt/sources.list.d/canonical-kernel-team-ppa-*', :acceptable_exit_codes => [2])
- end
- end
- end
- end
-
context 'release' do
context 'precise' do
it 'works without failure' do
pp = <<-EOS
include '::apt'
apt::ppa { 'ppa:canonical-kernel-team/ppa':
- ensure => present,
release => precise,
}
EOS
pp = <<-EOS
include '::apt'
apt::ppa { 'ppa:canonical-kernel-team/ppa':
- ensure => present,
release => precise,
options => '-y',
}
it 'should work with no errors' do
pp = <<-EOS
include apt
- apt::force { 'vim': }
+ apt::force { 'vim': release => false, }
EOS
shell('apt-get remove -y vim')
it 'should work with no errors' do
pp = <<-EOS
include apt
- apt::force { 'vim': version => '1.1.1' }
+ apt::force { 'vim': version => '1.1.1', release => false, }
EOS
shell('apt-get remove -y vim')
it 'should work with no errors' do
pp = <<-EOS
include apt
- apt::force { 'vim': timeout => '1' }
+ apt::force { 'vim': release => false, timeout => '1' }
EOS
shell('apt-get clean')
let :default_params do
{
- :release => false,
+ :release => 'testing',
:version => false
}
end
let :params do
default_params
end
- it { should contain_exec("/usr/bin/apt-get -y install #{title}").with(
- :unless => "/usr/bin/dpkg -s #{title} | grep -q 'Status: install'",
+ it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}").with(
+ :unless => "/usr/bin/test \$(/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -E 'Installed|Candidate' | /usr/bin/uniq -s 14 | /usr/bin/wc -l) -eq 1",
:timeout => '300'
) }
end
- describe "when specifying release parameter" do
+ describe "when specifying false release parameter" do
let :params do
- default_params.merge(:release => 'testing')
+ default_params.merge(:release => false)
end
- it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}").with(
- :unless => "/usr/bin/test \$(/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -E 'Installed|Candidate' | /usr/bin/uniq -s 14 | /usr/bin/wc -l) -eq 1"
+ it { should contain_exec("/usr/bin/apt-get -y install #{title}").with(
+ :unless => "/usr/bin/dpkg -s #{title} | grep -q 'Status: install'"
) }
end
let :params do
default_params.merge(:version => '1')
end
- it { should contain_exec("/usr/bin/apt-get -y install #{title}=#{params[:version]}").with(
- :unless => "/usr/bin/dpkg -s #{title} | grep -q 'Version: #{params[:version]}'"
+ it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}=#{params[:version]}").with(
+ :unless => "/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -q 'Installed: #{params[:version]}'"
) }
end
- describe "when specifying release and version parameters" do
+ describe "when specifying false release and version parameters" do
let :params do
default_params.merge(
- :release => 'testing',
+ :release => false,
:version => '1'
)
end
- it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}=1").with(
- :unless => "/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -q 'Installed: #{params[:version]}'"
+ it { should contain_exec("/usr/bin/apt-get -y install #{title}=1").with(
+ :unless => "/usr/bin/dpkg -s #{title} | grep -q 'Version: #{params[:version]}'"
) }
end
end