repo/apt: update to support apt 2.1.0 module
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
This commit is contained in:
parent
7ab1f4544a
commit
6feda8b3e9
@ -38,22 +38,25 @@ class openstack_extras::repo::debian::debian(
|
||||
$package_require = false
|
||||
) inherits openstack_extras::repo::debian::params {
|
||||
if $manage_whz {
|
||||
package { 'gplhost-archive-keyring':
|
||||
ensure => 'present',
|
||||
name => $::openstack_extras::repo::debian::params::whz_required_packages,
|
||||
} ->
|
||||
apt::source { $::openstack_extras::repo::debian::params::whz_name:
|
||||
location => $::openstack_extras::repo::debian::params::whz_location,
|
||||
release => $release,
|
||||
repos => $::openstack_extras::repo::debian::params::whz_repos,
|
||||
required_packages => $::openstack_extras::repo::debian::params::whz_required_packages
|
||||
location => $::openstack_extras::repo::debian::params::whz_location,
|
||||
release => $release,
|
||||
repos => $::openstack_extras::repo::debian::params::whz_repos,
|
||||
} ->
|
||||
apt::source { "${::openstack_extras::repo::debian::params::whz_name}_backports":
|
||||
location => $::openstack_extras::repo::debian::params::whz_location,
|
||||
release => "${release}-backports",
|
||||
repos => $::openstack_extras::repo::debian::params::whz_repos,
|
||||
location => $::openstack_extras::repo::debian::params::whz_location,
|
||||
release => "${release}-backports",
|
||||
repos => $::openstack_extras::repo::debian::params::whz_repos,
|
||||
}
|
||||
}
|
||||
|
||||
create_resources('apt::source', $source_hash, $source_defaults)
|
||||
|
||||
if $package_require {
|
||||
if $package_require and ! $manage_whz {
|
||||
Exec['apt_update'] -> Package<||>
|
||||
}
|
||||
}
|
||||
|
@ -38,17 +38,20 @@ class openstack_extras::repo::debian::ubuntu(
|
||||
$package_require = false
|
||||
) inherits openstack_extras::repo::debian::params {
|
||||
if $manage_uca {
|
||||
package { 'ubuntu-cloud-keyring':
|
||||
ensure => 'present',
|
||||
name => $::openstack_extras::repo::debian::params::uca_required_packages,
|
||||
} ->
|
||||
apt::source { $::openstack_extras::repo::debian::params::uca_name:
|
||||
location => $::openstack_extras::repo::debian::params::uca_location,
|
||||
release => "${::lsbdistcodename}-updates/${release}",
|
||||
repos => $::openstack_extras::repo::debian::params::uca_repos,
|
||||
required_packages => $::openstack_extras::repo::debian::params::uca_required_packages
|
||||
location => $::openstack_extras::repo::debian::params::uca_location,
|
||||
release => "${::lsbdistcodename}-updates/${release}",
|
||||
repos => $::openstack_extras::repo::debian::params::uca_repos,
|
||||
}
|
||||
}
|
||||
|
||||
create_resources('apt::source', $source_hash, $source_defaults)
|
||||
|
||||
if $package_require {
|
||||
if $package_require and ! $manage_uca {
|
||||
Exec['apt_update'] -> Package<||>
|
||||
}
|
||||
}
|
||||
|
@ -38,7 +38,6 @@ describe 'openstack_extras::repo::debian::debian' do
|
||||
:location => 'http://archive.gplhost.com/debian',
|
||||
:release => 'kilo',
|
||||
:repos => 'main',
|
||||
:required_packages => 'gplhost-archive-keyring'
|
||||
)}
|
||||
|
||||
it { should contain_apt__source('debian_wheezy_backports').with(
|
||||
@ -47,6 +46,7 @@ describe 'openstack_extras::repo::debian::debian' do
|
||||
:repos => 'main'
|
||||
)}
|
||||
|
||||
it { should contain_package('gplhost-archive-keyring') }
|
||||
end
|
||||
|
||||
describe 'with overridden release' do
|
||||
@ -58,7 +58,6 @@ describe 'openstack_extras::repo::debian::debian' do
|
||||
:location => 'http://archive.gplhost.com/debian',
|
||||
:release => 'juno',
|
||||
:repos => 'main',
|
||||
:required_packages => 'gplhost-archive-keyring'
|
||||
)}
|
||||
|
||||
it { should contain_apt__source('debian_wheezy_backports').with(
|
||||
@ -67,6 +66,15 @@ describe 'openstack_extras::repo::debian::debian' do
|
||||
:repos => 'main'
|
||||
)}
|
||||
|
||||
it { should contain_package('gplhost-archive-keyring') }
|
||||
end
|
||||
|
||||
describe 'when not managing wheezy repo' do
|
||||
let :params do
|
||||
default_params.merge!({ :manage_whz => false })
|
||||
end
|
||||
|
||||
it { should_not contain_package('gplhost-archive-keyring') }
|
||||
end
|
||||
|
||||
describe 'with overridden source hash' do
|
||||
@ -102,6 +110,7 @@ describe 'openstack_extras::repo::debian::debian' do
|
||||
:key_server => 'pgp.mit.edu'
|
||||
)}
|
||||
|
||||
it { should contain_package('gplhost-archive-keyring') }
|
||||
end
|
||||
|
||||
describe 'with overridden source default' do
|
||||
@ -116,7 +125,6 @@ describe 'openstack_extras::repo::debian::debian' do
|
||||
:location => 'http://archive.gplhost.com/debian',
|
||||
:release => 'kilo',
|
||||
:repos => 'main',
|
||||
:required_packages => 'gplhost-archive-keyring',
|
||||
:include_src => 'true'
|
||||
)}
|
||||
|
||||
@ -127,6 +135,7 @@ describe 'openstack_extras::repo::debian::debian' do
|
||||
:include_src => 'true'
|
||||
)}
|
||||
|
||||
it { should contain_package('gplhost-archive-keyring') }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -39,9 +39,10 @@ describe 'openstack_extras::repo::debian::ubuntu' do
|
||||
:location => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
|
||||
:release => 'trusty-updates/kilo',
|
||||
:repos => 'main',
|
||||
:required_packages => 'ubuntu-cloud-keyring'
|
||||
)}
|
||||
|
||||
it { should contain_package('ubuntu-cloud-keyring') }
|
||||
|
||||
end
|
||||
|
||||
describe 'with overridden release' do
|
||||
@ -53,9 +54,17 @@ describe 'openstack_extras::repo::debian::ubuntu' do
|
||||
:location => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
|
||||
:release => 'trusty-updates/juno',
|
||||
:repos => 'main',
|
||||
:required_packages => 'ubuntu-cloud-keyring'
|
||||
)}
|
||||
|
||||
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
|
||||
@ -91,6 +100,7 @@ describe 'openstack_extras::repo::debian::ubuntu' do
|
||||
:key_server => 'pgp.mit.edu'
|
||||
)}
|
||||
|
||||
it { should contain_package('ubuntu-cloud-keyring') }
|
||||
end
|
||||
|
||||
describe 'with overridden source default' do
|
||||
@ -106,9 +116,9 @@ describe 'openstack_extras::repo::debian::ubuntu' do
|
||||
:location => 'http://ubuntu-cloud.archive.canonical.com/ubuntu',
|
||||
:release => 'trusty-updates/kilo',
|
||||
:repos => 'main',
|
||||
:required_packages => 'ubuntu-cloud-keyring'
|
||||
)}
|
||||
|
||||
it { should contain_package('ubuntu-cloud-keyring') }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user