X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=manifests%2Fsource.pp;h=e55cafdfd1f4fbb493247f88b5a497270eec743e;hb=9538d23305079cfe2a08f3605b2fdfc2b0ffd8c0;hp=17d2d8e5a2a2ad61f8bf58f5287edfd487dde70f;hpb=4a788a60f913d5d7934aef9fa0eda68152a3e8b3;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/manifests/source.pp b/manifests/source.pp index 17d2d8e..e55cafd 100644 --- a/manifests/source.pp +++ b/manifests/source.pp @@ -2,6 +2,7 @@ # add an apt source define apt::source( + $ensure = present, $location = '', $release = $lsbdistcodename, $repos = 'main', @@ -15,6 +16,7 @@ define apt::source( ) { include apt::params + include apt::update $sources_list_d = $apt::params::sources_list_d $provider = $apt::params::provider @@ -24,28 +26,23 @@ define apt::source( } file { "${name}.list": - ensure => file, + ensure => $ensure, path => "${sources_list_d}/${name}.list", owner => root, group => root, mode => '0644', content => template("${module_name}/source.list.erb"), + notify => Exec['apt_update'], } - if $pin != false { + if ($pin != false) and ($ensure == 'present') { apt::pin { $release: priority => $pin, before => File["${name}.list"] } } - exec { "${name} apt update": - command => "${provider} update", - subscribe => File["${name}.list"], - refreshonly => true, - } - - if $required_packages != false { + if ($required_packages != false) and ($ensure == 'present') { exec { "Required packages: '${required_packages}' for ${name}": command => "${provider} -y install ${required_packages}", subscribe => File["${name}.list"], @@ -53,7 +50,8 @@ define apt::source( } } - if $key != false { + # We do not want to remove keys when the source is absent. + if ($key != false) and ($ensure == 'present') { apt::key { "Add key: ${key} from Apt::Source ${title}": ensure => present, key => $key, @@ -63,4 +61,9 @@ define apt::source( before => File["${name}.list"], } } + + # Need anchor to provide containment for dependencies. + anchor { "apt::source::${name}": + require => Class['apt::update'], + } }