X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=manifests%2Fpin.pp;h=14df14b5b3f370c8ec7bc7978f535ceb15e28548;hb=fcb90f7b6c716ce0f491fd8b19fb84a3ca253ba8;hp=e8b251f7c882c60a413ecafa60509fb1d1230b99;hpb=71fc4251767bc4784769aead6a6273250359dbe2;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/manifests/pin.pp b/manifests/pin.pp index e8b251f..14df14b 100644 --- a/manifests/pin.pp +++ b/manifests/pin.pp @@ -2,19 +2,34 @@ # pin a release in apt, useful for unstable repositories define apt::pin( - $packages = '*', - $priority = 0 + $ensure = present, + $packages = '*', + $priority = 0, + $release = '', + $origin = '', + $originator = '' ) { - include apt + include apt::params - file { "${name}.pref": - name => "${apt::root}/preferences.d/${name}", - ensure => file, - owner => root, - group => root, - mode => 644, - content => "# ${name}\nPackage: ${packages}\nPin: release a=${name}\nPin-Priority: ${priority}", - } + $preferences_d = $apt::params::preferences_d + if $release != '' { + $pin = "release a=${release}" + } elsif $origin != '' { + $pin = "origin \"${origin}\"" + } elsif $originator != '' { + $pin = "release o=${originator}" + } else { + $pin = "release a=${name}" + } + + file { "${name}.pref": + ensure => $ensure, + path => "${preferences_d}/${name}.pref", + owner => root, + group => root, + mode => '0644', + content => template("apt/pin.pref.erb"), + } }