X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=manifests%2Fbackports.pp;h=afd4ee1c2f67077c851fb06ed694f789e1f660ee;hb=c88a7e388f6771528f020c8db98acfb3d42ec14d;hp=3cac0b5b5bc54bf7420a145231c7a1d4e94c3b5d;hpb=75ac82ce6419af78f32adae6b50233cf90ac9319;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/manifests/backports.pp b/manifests/backports.pp index 3cac0b5..afd4ee1 100644 --- a/manifests/backports.pp +++ b/manifests/backports.pp @@ -1,40 +1,28 @@ class apt::backports ( - $location = undef, - $release = undef, - $repos = undef, - $key = undef, - $pin = 200, + 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::xfacts['lsbdistid'] == 'debian' or $::apt::xfacts['lsbdistid'] == 'ubuntu') { + if ($facts['lsbdistid'] == 'Debian' or $facts['lsbdistid'] == 'Ubuntu') { unless $location { $_location = $::apt::backports['location'] } unless $release { - $_release = "${::apt::xfacts['lsbdistcodename']}-backports" + $_release = "${facts['lsbdistcodename']}-backports" } unless $repos { $_repos = $::apt::backports['repos'] @@ -48,12 +36,24 @@ class apt::backports ( } } + if $pin =~ Hash { + $_pin = $pin + } elsif $pin =~ Numeric or $pin =~ String { + # 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, } - }