X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=manifests%2Fbackports.pp;h=4faad6157a7f31664555471071c211e177e56ce2;hb=b6a16658ae84ff42b8df8f5bc3168122f419fc13;hp=f4c5faaf8997e1ce3db5be5b518314f72f6b9f84;hpb=8f5cb7341ae362442dfd8e06129d39583f588bf0;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/manifests/backports.pp b/manifests/backports.pp index f4c5faa..4faad61 100644 --- a/manifests/backports.pp +++ b/manifests/backports.pp @@ -1,46 +1,34 @@ class apt::backports ( - $location = undef, - $release = undef, - $repos = undef, - $key = undef, - $pin = 200, -) inherits apt::params { + Optional[String] $location = undef, + Optional[String] $release = undef, + Optional[String] $repos = undef, + Optional[Variant[String, Hash]] $key = undef, + Optional[Variant[Integer, String, Hash]] $pin = 200, +){ if $location { - validate_string($location) $_location = $location } if $release { - validate_string($release) $_release = $release } if $repos { - validate_string($repos) $_repos = $repos } if $key { - unless is_hash($key) { - validate_string($key) - } $_key = $key } - unless is_hash($pin) { - unless (is_numeric($pin) or is_string($pin)) { - fail('pin must be either a string, number or hash') - } - } - - if ($::apt::params::xfacts['lsbdistid'] == 'debian' or $::apt::params::xfacts['lsbdistid'] == 'ubuntu') { + if ($facts['lsbdistid'] == 'Debian' or $facts['lsbdistid'] == 'Ubuntu') { unless $location { - $_location = $::apt::params::backports['location'] + $_location = $::apt::backports['location'] } unless $release { - $_release = "${::apt::params::xfacts['lsbdistcodename']}-backports" + $_release = "${facts['lsbdistcodename']}-backports" } unless $repos { - $_repos = $::apt::params::backports['repos'] + $_repos = $::apt::backports['repos'] } unless $key { - $_key = $::apt::params::backports['key'] + $_key = $::apt::backports['key'] } } else { unless $location and $release and $repos and $key { @@ -48,12 +36,24 @@ class apt::backports ( } } + if is_hash($pin) { + $_pin = $pin + } elsif is_numeric($pin) or is_string($pin) { + # apt::source defaults to pinning to origin, but we should pin to release + # for backports + $_pin = { + 'priority' => $pin, + 'release' => $_release, + } + } else { + fail('pin must be either a string, number or hash') + } + apt::source { 'backports': location => $_location, release => $_release, repos => $_repos, key => $_key, - pin => $pin, + pin => $_pin, } - }