
This patcha affects how we use puppetlabs-apt on Debian & Ubuntu systems. It: * Drops 'required_packages' deprecated parameter * Installs UCA keyring package *before* adding the new repo and run apt-get update * For backward compatibility when package_require is True, make sure to not run `apt-get update` before the Package resource when manage_uca is True; because it would lead to a Circular issue. Change-Id: I772d9929bcc379a7d1515a7a76658811720897dd Closes-bug: #1468761
125 lines
3.8 KiB
Ruby
125 lines
3.8 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'openstack_extras::repo::debian::ubuntu' do
|
|
let :class_params do
|
|
{
|
|
:manage_uca => true,
|
|
:source_hash => {},
|
|
:source_defaults => {},
|
|
:package_require => false
|
|
}
|
|
end
|
|
|
|
let :paramclass_defaults do
|
|
{
|
|
:release => 'kilo'
|
|
}
|
|
end
|
|
|
|
let :default_params do
|
|
class_params.merge!(paramclass_defaults)
|
|
end
|
|
|
|
context 'on Debian platforms' do
|
|
let :facts do
|
|
{
|
|
:osfamily => 'Debian',
|
|
:operatingsystem => 'Ubuntu',
|
|
:lsbdistid => 'Ubuntu',
|
|
:lsbdistcodename => 'trusty'
|
|
}
|
|
end
|
|
|
|
describe 'with default parameters' do
|
|
let :params do
|
|
{}.merge!(default_params)
|
|
end
|
|
|
|
it { should contain_apt__source('ubuntu-cloud-archive').with(
|
|
:location => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
|
|
:release => 'trusty-updates/kilo',
|
|
:repos => 'main',
|
|
)}
|
|
|
|
it { should contain_package('ubuntu-cloud-keyring') }
|
|
|
|
end
|
|
|
|
describe 'with overridden release' do
|
|
let :params do
|
|
default_params.merge!({ :release => 'juno' })
|
|
end
|
|
|
|
it { should contain_apt__source('ubuntu-cloud-archive').with(
|
|
:location => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
|
|
:release => 'trusty-updates/juno',
|
|
:repos => 'main',
|
|
)}
|
|
|
|
it { should contain_package('ubuntu-cloud-keyring') }
|
|
end
|
|
|
|
describe 'when not managing UCA' do
|
|
let :params do
|
|
default_params.merge!({ :manage_uca => false })
|
|
end
|
|
|
|
it { should_not contain_package('ubuntu-cloud-keyring') }
|
|
end
|
|
|
|
describe 'with overridden source hash' do
|
|
let :params do
|
|
default_params.merge!({ :source_hash => {
|
|
'local_mirror' => {
|
|
'location' => 'http://mymirror/ubuntu/',
|
|
'repos' => 'main',
|
|
'release' => 'trusty'
|
|
},
|
|
'puppetlabs' => {
|
|
'location' => 'http://apt.puppetlabs.com',
|
|
'repos' => 'main',
|
|
'release' => 'trusty',
|
|
'key' => '4BD6EC30',
|
|
'key_server' => 'pgp.mit.edu'
|
|
}
|
|
}
|
|
})
|
|
end
|
|
|
|
it { should contain_apt__source('local_mirror').with(
|
|
:location => 'http://mymirror/ubuntu/',
|
|
:release => 'trusty',
|
|
:repos => 'main'
|
|
)}
|
|
|
|
it { should contain_apt__source('puppetlabs').with(
|
|
:location => 'http://apt.puppetlabs.com',
|
|
:release => 'trusty',
|
|
:repos => 'main',
|
|
:key => '4BD6EC30',
|
|
:key_server => 'pgp.mit.edu'
|
|
)}
|
|
|
|
it { should contain_package('ubuntu-cloud-keyring') }
|
|
end
|
|
|
|
describe 'with overridden source default' do
|
|
let :params do
|
|
default_params.merge!({ :source_defaults => {
|
|
'include_src' => 'true'
|
|
}
|
|
})
|
|
end
|
|
|
|
it { should contain_apt__source('ubuntu-cloud-archive').with(
|
|
:include_src => 'true',
|
|
:location => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
|
|
:release => 'trusty-updates/kilo',
|
|
:repos => 'main',
|
|
)}
|
|
|
|
it { should contain_package('ubuntu-cloud-keyring') }
|
|
end
|
|
end
|
|
end
|