diff --git a/manifests/repo/debian/debian.pp b/manifests/repo/debian/debian.pp index 2938519..ffd1914 100644 --- a/manifests/repo/debian/debian.pp +++ b/manifests/repo/debian/debian.pp @@ -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<||> } } diff --git a/manifests/repo/debian/ubuntu.pp b/manifests/repo/debian/ubuntu.pp index 3036be0..c50d2b7 100644 --- a/manifests/repo/debian/ubuntu.pp +++ b/manifests/repo/debian/ubuntu.pp @@ -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<||> } } diff --git a/spec/classes/openstack_extras_repo_debian_debian_spec.rb b/spec/classes/openstack_extras_repo_debian_debian_spec.rb index 2275b76..a9422ae 100644 --- a/spec/classes/openstack_extras_repo_debian_debian_spec.rb +++ b/spec/classes/openstack_extras_repo_debian_debian_spec.rb @@ -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 diff --git a/spec/classes/openstack_extras_repo_debian_ubuntu_spec.rb b/spec/classes/openstack_extras_repo_debian_ubuntu_spec.rb index 5d07fde..4dff63d 100644 --- a/spec/classes/openstack_extras_repo_debian_ubuntu_spec.rb +++ b/spec/classes/openstack_extras_repo_debian_ubuntu_spec.rb @@ -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