X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=manifests%2Fbackports.pp;h=0ef45333d5ae87b3cf7debd89d18b32bdf05432a;hb=refs%2Fheads%2Frelease-prep;hp=1b9cabbaf10ff062d868f86f4dd6331380ee5b4b;hpb=dcb71161ed8a7159b40a80d0d4536ca59741cb7b;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/manifests/backports.pp b/manifests/backports.pp index 1b9cabb..0ef4533 100644 --- a/manifests/backports.pp +++ b/manifests/backports.pp @@ -1,18 +1,18 @@ # @summary Manages backports. # -# @example Set up a backport for linuxmint qiana -# apt::backports { 'qiana': +# @example Set up a backport source for Linux Mint qiana +# class { 'apt::backports': # location => 'http://us.archive.ubuntu.com/ubuntu', # release => 'trusty-backports', # repos => 'main universe multiverse restricted', # key => { # id => '630239CC130E1A7FD81A27B140976EAF437D05B5', -# server => 'hkps.pool.sks-keyservers.net', +# server => 'keyserver.ubuntu.com', # }, # } # # @param location -# Specifies an Apt repository containing the backports to manage. Valid options: a string containing a URL. Default value for Debian and +# Specifies an Apt repository containing the backports to manage. Valid options: a string containing a URL. Default value for Debian and # Ubuntu varies: # # - Debian: 'http://deb.debian.org/debian' @@ -20,20 +20,20 @@ # - Ubuntu: 'http://archive.ubuntu.com/ubuntu' # # @param release -# Specifies a distribution of the Apt repository containing the backports to manage. Used in populating the `source.list` configuration file. -# Default: on Debian and Ubuntu, '${lsbdistcodename}-backports'. We recommend keeping this default, except on other operating +# Specifies a distribution of the Apt repository containing the backports to manage. Used in populating the `source.list` configuration file. +# Default: on Debian and Ubuntu, `${fact('os.distro.codename')}-backports`. We recommend keeping this default, except on other operating # systems. # # @param repos -# Specifies a component of the Apt repository containing the backports to manage. Used in populating the `source.list` configuration file. +# Specifies a component of the Apt repository containing the backports to manage. Used in populating the `source.list` configuration file. # Default value for Debian and Ubuntu varies: -# +# # - Debian: 'main contrib non-free' # # - Ubuntu: 'main universe multiverse restricted' # # @param key -# Specifies a key to authenticate the backports. Valid options: a string to be passed to the id parameter of the apt::key defined type, or a +# Specifies a key to authenticate the backports. Valid options: a string to be passed to the id parameter of the apt::key defined type, or a # hash of parameter => value pairs to be passed to apt::key's id, server, content, source, and/or options parameters. Default value # for Debian and Ubuntu varies: # @@ -42,17 +42,20 @@ # - Ubuntu: '630239CC130E1A7FD81A27B140976EAF437D05B5' # # @param pin -# Specifies a pin priority for the backports. Valid options: a number or string to be passed to the `id` parameter of the `apt::pin` defined +# Specifies a pin priority for the backports. Valid options: a number or string to be passed to the `id` parameter of the `apt::pin` defined # type, or a hash of `parameter => value` pairs to be passed to `apt::pin`'s corresponding parameters. # +# @param include +# Specifies whether to include 'deb' or 'src', or both. +# class apt::backports ( 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, -){ - + Variant[Integer, String, Hash] $pin = 200, + Variant[Hash] $include = {}, +) { include apt if $location { @@ -67,22 +70,26 @@ class apt::backports ( if $key { $_key = $key } - if (!($facts['lsbdistid'] == 'Debian' or $facts['lsbdistid'] == 'Ubuntu')) { + if (!($facts['os']['name'] == 'Debian' or $facts['os']['name'] == 'Ubuntu')) { unless $location and $release and $repos and $key { - fail(translate('If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key')) + fail('If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key') } } unless $location { - $_location = $::apt::backports['location'] + $_location = $apt::backports['location'] } unless $release { - $_release = "${facts['lsbdistcodename']}-backports" + if fact('os.distro.codename') { + $_release = "${fact('os.distro.codename')}-backports" + } else { + fail('os.distro.codename fact not available: release parameter required') + } } unless $repos { - $_repos = $::apt::backports['repos'] + $_repos = $apt::backports['repos'] } unless $key { - $_key = $::apt::backports['key'] + $_key = $apt::backports['key'] } if $pin =~ Hash { @@ -95,13 +102,14 @@ class apt::backports ( 'release' => $_release, } } else { - fail(translate('pin must be either a string, number or hash')) + fail('pin must be either a string, number or hash') } apt::source { 'backports': location => $_location, release => $_release, repos => $_repos, + include => $include, key => $_key, pin => $_pin, }