From: Kenyon Ralph Date: Sun, 20 Dec 2020 06:31:48 +0000 (-0800) Subject: manifests: use modern os facts X-Git-Tag: v7.7.1~3^2~6 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=7e31732abd277c852564c10011099bdf6967dc4f;p=puppet-modules%2Fpuppetlabs-apt.git manifests: use modern os facts --- diff --git a/README.md b/README.md index 53f0228..19b50ad 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ #### Table of Contents - 1. [Module Description - What the module does and why it is useful](#module-description) 1. [Setup - The basics of getting started with apt](#setup) * [What apt affects](#what-apt-affects) @@ -20,6 +19,7 @@ 1. [Development - Guide for contributing to the module](#development) + ## Module Description The apt module lets you use Puppet to manage APT (Advanced Package Tool) sources, keys, and other configuration options. @@ -29,9 +29,11 @@ APT is a package manager available on Debian, Ubuntu, and several other operatin **Note**: For this module to correctly autodetect which version of Debian/Ubuntu (or derivative) you're running, you need to make sure the 'lsb-release' package is installed. We highly recommend you either make this part of your provisioning layer, if you run many Debian or derivative systems, or ensure that you have Facter 2.2.0 or later installed, which will pull this dependency in for you. + ## Setup + ### What apt affects * Your system's `preferences` file and `preferences.d` directory @@ -43,6 +45,7 @@ APT is a package manager available on Debian, Ubuntu, and several other operatin **Note:** This module offers `purge` parameters which, if set to `true`, **destroy** any configuration on the node's `sources.list(.d)`, `preferences(.d)` and `apt.conf.d` that you haven't declared through Puppet. The default for these parameters is `false`. + ### Beginning with apt To use the apt module with default parameters, declare the `apt` class. @@ -54,9 +57,11 @@ include apt **Note:** The main `apt` class is required by all other classes, types, and defined types in this module. You must declare it whenever you use the module. + ## Usage + ### Add GPG keys **Warning:** Using short key IDs presents a serious security issue, potentially leaving you open to collision attacks. We recommend you always use full fingerprints to identify your GPG keys. This module allows short keys, but issues a security warning if you use them. @@ -72,6 +77,7 @@ apt::key { 'puppetlabs': ``` + ### Prioritize backports ```puppet @@ -85,9 +91,10 @@ By default, the `apt::backports` class drops a pin file for backports, pinning i If you raise the priority through the `pin` parameter to 500, normal policy goes into effect and Apt installs or upgrades to the newest version. This means that if a package is available from backports, it and its dependencies are pulled in from backports unless you explicitly set the `ensure` attribute of the `package` resource to `installed`/`present` or a specific version. + ### Update the list of packages -By default, Puppet runs `apt-get update` on the first Puppet run after you include the `apt` class, and anytime `notify => Exec['apt_update']` occurs; i.e., whenever config files get updated or other relevant changes occur. If you set `update['frequency']` to 'always', the update runs on every Puppet run. You can also set `update['frequency']` to 'daily' or 'weekly': +By default, Puppet runs `apt-get update` on the first Puppet run after you include the `apt` class, and anytime `notify => Exec['apt_update']` occurs; i.e., whenever config files get updated or other relevant changes occur. If you set `update['frequency']` to 'always', the update runs on every Puppet run. You can also set `update['frequency']` to 'daily' or 'weekly': ```puppet class { 'apt': @@ -96,6 +103,7 @@ class { 'apt': }, } ``` + When `Exec['apt_update']` is triggered, it generates a `notice`-level message. Because the default [logging level for agents](https://puppet.com/docs/puppet/latest/configuration.html#loglevel) is `notice`, this causes the repository update to appear in agent logs. To silence these updates from the default log output, set the [loglevel](https://puppet.com/docs/puppet/latest/metaparameter.html#loglevel) metaparameter for `Exec['apt_update']` above the agent logging level: ```puppet @@ -110,6 +118,7 @@ class { 'apt': > **NOTE:** Every `Exec['apt_update']` run will generate a corrective change, even if the apt caches are not updated. For example, setting an update frequency of `always` can result in every Puppet run resulting in a corrective change. This is a known issue. For details, see [MODULES-10763](https://tickets.puppetlabs.com/browse/MODULES-10763). + ### Pin a specific release ```puppet @@ -133,6 +142,7 @@ apt::pin { 'stable': To pin multiple packages, pass them to the `packages` parameter as an array or a space-delimited string. + ### Add a Personal Package Archive (PPA) repository ```puppet @@ -173,6 +183,7 @@ apt::source { 'puppetlabs': ``` + ### Configure Apt from Hiera Instead of specifying your sources directly as resources, you can instead just include the `apt` class, which will pick up the values automatically from hiera. @@ -201,36 +212,37 @@ apt::sources: ``` + ### Replace the default `sources.list` file The following example replaces the default `/etc/apt/sources.list`. Along with this code, be sure to use the `purge` parameter, or you might get duplicate source warnings when running Apt. ```puppet -apt::source { "archive.ubuntu.com-${lsbdistcodename}": +apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}": location => 'http://archive.ubuntu.com/ubuntu', key => '630239CC130E1A7FD81A27B140976EAF437D05B5', repos => 'main universe multiverse restricted', } -apt::source { "archive.ubuntu.com-${lsbdistcodename}-security": +apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}-security": location => 'http://archive.ubuntu.com/ubuntu', key => '630239CC130E1A7FD81A27B140976EAF437D05B5', repos => 'main universe multiverse restricted', - release => "${lsbdistcodename}-security" + release => "${facts['os']['distro']['codename']}-security" } -apt::source { "archive.ubuntu.com-${lsbdistcodename}-updates": +apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}-updates": location => 'http://archive.ubuntu.com/ubuntu', key => '630239CC130E1A7FD81A27B140976EAF437D05B5', repos => 'main universe multiverse restricted', - release => "${lsbdistcodename}-updates" + release => "${facts['os']['distro']['codename']}-updates" } -apt::source { "archive.ubuntu.com-${lsbdistcodename}-backports": +apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}-backports": location => 'http://archive.ubuntu.com/ubuntu', key => '630239CC130E1A7FD81A27B140976EAF437D05B5', repos => 'main universe multiverse restricted', - release => "${lsbdistcodename}-backports" + release => "${facts['os']['distro']['codename']}-backports" } ``` @@ -264,6 +276,7 @@ class { 'apt': ``` + ## Reference ### Facts @@ -288,7 +301,8 @@ class { 'apt': See [REFERENCE.md](https://github.com/puppetlabs/puppetlabs-apt/blob/main/REFERENCE.md) for all other reference documentation. - + + ## Limitations This module is not designed to be split across [run stages](https://docs.puppetlabs.com/puppet/latest/reference/lang_run_stages.html). @@ -306,7 +320,7 @@ Class['apt::update'] -> Package <| provider == 'apt' |> ## Development Acceptance tests for this module leverage [puppet_litmus](https://github.com/puppetlabs/puppet_litmus). -To run the acceptance tests follow the instructions [here](https://github.com/puppetlabs/puppet_litmus/wiki/Tutorial:-use-Litmus-to-execute-acceptance-tests-with-a-sample-module-(MoTD)#install-the-necessary-gems-for-the-module). +To run the acceptance tests follow the instructions [here](). You can also find a tutorial and walkthrough of using Litmus and the PDK on [YouTube](https://www.youtube.com/watch?v=FYfR7ZEGHoE). If you run into an issue with this module, or if you would like to request a feature, please [file a ticket](https://tickets.puppetlabs.com/browse/MODULES/). diff --git a/REFERENCE.md b/REFERENCE.md index dc1e5ed..13f5f9a 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -386,7 +386,7 @@ Default value: ``undef`` Data type: `Optional[String]` 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 +Default: on Debian and Ubuntu, `${facts['os']['distro']['codename']}-backports`. We recommend keeping this default, except on other operating systems. Default value: ``undef`` @@ -729,19 +729,19 @@ Default value: `$::apt::ppa_options` Data type: `Optional[String]` -Optional if lsb-release is installed (unless you're using a different release than indicated by lsb-release, e.g., Linux Mint). Specifies the operating system of your node. Valid options: a string containing a valid LSB distribution codename. +Optional if `puppet facts show os.distro.codename` returns your correct distribution release codename. -Default value: `$facts['lsbdistcodename']` +Default value: `$facts['os']['distro']['codename']` ##### `dist` Data type: `Optional[String]` -Optional if lsb-release is installed (unless you're using a different release than indicated by lsb-release, e.g., Linux Mint). Specifies the distribution of your node. Valid options: a string containing a valid distribution codename. +Optional if `puppet facts show os.name` returns your correct distribution name. -Default value: `$facts['lsbdistid']` +Default value: `$facts['os']['name']` ##### `package_name` diff --git a/examples/source.pp b/examples/source.pp index a3648c3..3e38126 100644 --- a/examples/source.pp +++ b/examples/source.pp @@ -2,7 +2,7 @@ class { 'apt': } # Install the puppetlabs apt source -# Release is automatically obtained from lsbdistcodename fact if available. +# Release is automatically obtained from facts. apt::source { 'puppetlabs': location => 'http://apt.puppetlabs.com', repos => 'main', diff --git a/locales/ja/puppetlabs-apt.po b/locales/ja/puppetlabs-apt.po index aa6b266..1fe9d1d 100644 --- a/locales/ja/puppetlabs-apt.po +++ b/locales/ja/puppetlabs-apt.po @@ -69,8 +69,8 @@ msgid "parameters release and origin are mutually exclusive" msgstr "パラメータreleaseとoriginは相互に排他的です。" #. ./manifests/ppa.pp:30 ./manifests/source.pp:79 -msgid "lsbdistcodename fact not available: release parameter required" -msgstr "lsbdistcodenameのfactが使用できません。releaseパラメータが必要です。" +msgid "os.distro.codename fact not available: release parameter required" +msgstr "os.distro.codenameのfactが使用できません。releaseパラメータが必要です。" #. ./manifests/ppa.pp:34 msgid "apt::ppa is not currently supported on Debian." diff --git a/locales/puppetlabs-apt.pot b/locales/puppetlabs-apt.pot index 5701be9..5fa70e2 100644 --- a/locales/puppetlabs-apt.pot +++ b/locales/puppetlabs-apt.pot @@ -92,7 +92,7 @@ msgid "parameters release and origin are mutually exclusive" msgstr "" #. ./manifests/ppa.pp:30 ./manifests/source.pp:79 -msgid "lsbdistcodename fact not available: release parameter required" +msgid "os.distro.codename fact not available: release parameter required" msgstr "" #. ./manifests/ppa.pp:34 diff --git a/manifests/backports.pp b/manifests/backports.pp index b3cb74b..5949905 100644 --- a/manifests/backports.pp +++ b/manifests/backports.pp @@ -21,7 +21,7 @@ # # @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 +# Default: on Debian and Ubuntu, `${facts['os']['distro']['codename']}-backports`. We recommend keeping this default, except on other operating # systems. # # @param repos @@ -70,7 +70,7 @@ 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')) } @@ -79,7 +79,7 @@ class apt::backports ( $_location = $::apt::backports['location'] } unless $release { - $_release = "${facts['lsbdistcodename']}-backports" + $_release = "${facts['os']['distro']['codename']}-backports" } unless $repos { $_repos = $::apt::backports['repos'] diff --git a/manifests/init.pp b/manifests/init.pp index ea4e828..a20748f 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -157,7 +157,7 @@ class apt ( Boolean $sources_list_force = $apt::params::sources_list_force, ) inherits apt::params { - if $facts['osfamily'] != 'Debian' { + if $facts['os']['family'] != 'Debian' { fail(translate('This module only works on Debian or derivatives like Ubuntu')) } diff --git a/manifests/params.pp b/manifests/params.pp index c648c4e..9a92577 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -1,10 +1,10 @@ # @summary Provides defaults for the Apt module parameters. -# +# # @api private # class apt::params { - if $::osfamily != 'Debian' { + if $facts['os']['family'] != 'Debian' { fail(translate('This module only works on Debian or derivatives like Ubuntu')) } diff --git a/manifests/ppa.pp b/manifests/ppa.pp index f7c78fc..6a874ce 100644 --- a/manifests/ppa.pp +++ b/manifests/ppa.pp @@ -10,12 +10,12 @@ # Supplies options to be passed to the `add-apt-repository` command. Default: '-y'. # # @param release -# Optional if lsb-release is installed (unless you're using a different release than indicated by lsb-release, e.g., Linux Mint). # Specifies the operating system of your node. Valid options: a string containing a valid LSB distribution codename. +# Optional if `puppet facts show os.distro.codename` returns your correct distribution release codename. # # @param dist -# Optional if lsb-release is installed (unless you're using a different release than indicated by lsb-release, e.g., Linux Mint). # Specifies the distribution of your node. Valid options: a string containing a valid distribution codename. +# Optional if `puppet facts show os.name` returns your correct distribution name. # # @param package_name # Names the package that provides the `apt-add-repository` command. Default: 'software-properties-common'. @@ -26,20 +26,20 @@ define apt::ppa( String $ensure = 'present', Optional[String] $options = $::apt::ppa_options, - Optional[String] $release = $facts['lsbdistcodename'], - Optional[String] $dist = $facts['lsbdistid'], + Optional[String] $release = $facts['os']['distro']['codename'], + Optional[String] $dist = $facts['os']['name'], Optional[String] $package_name = $::apt::ppa_package, Boolean $package_manage = false, ) { unless $release { - fail(translate('lsbdistcodename fact not available: release parameter required')) + fail(translate('os.distro.codename fact not available: release parameter required')) } if $dist == 'Debian' { fail(translate('apt::ppa is not currently supported on Debian.')) } - if versioncmp($facts['lsbdistrelease'], '14.10') >= 0 { + if versioncmp($facts['os']['release']['full'], '14.10') >= 0 { $distid = downcase($dist) $dash_filename = regsubst($name, '^ppa:([^/]+)/(.+)$', "\\1-${distid}-\\2") $underscore_filename = regsubst($name, '^ppa:([^/]+)/(.+)$', "\\1_${distid}_\\2") @@ -55,7 +55,7 @@ define apt::ppa( $sources_list_d_filename = "${dash_filename_no_specialchars}-${release}.list" - if versioncmp($facts['lsbdistrelease'], '15.10') >= 0 { + if versioncmp($facts['os']['release']['full'], '15.10') >= 0 { $trusted_gpg_d_filename = "${underscore_filename_no_specialchars}.gpg" } else { $trusted_gpg_d_filename = "${dash_filename_no_specialchars}.gpg" diff --git a/manifests/source.pp b/manifests/source.pp index 8cbde99..2c3d4b8 100644 --- a/manifests/source.pp +++ b/manifests/source.pp @@ -73,10 +73,10 @@ define apt::source( $_before = Apt::Setting["list-${title}"] if !$release { - if $facts['lsbdistcodename'] { - $_release = $facts['lsbdistcodename'] + if $facts['os']['distro']['codename'] { + $_release = $facts['os']['distro']['codename'] } else { - fail(translate('lsbdistcodename fact not available: release parameter required')) + fail(translate('os.distro.codename fact not available: release parameter required')) } } else { $_release = $release @@ -94,7 +94,7 @@ define apt::source( } # Newer oses, do not need the package for HTTPS transport. $_transport_https_releases = [ 'wheezy', 'jessie', 'stretch', 'trusty', 'xenial' ] - if ($facts['lsbdistcodename'] in $_transport_https_releases) and $_location =~ /(?i:^https:\/\/)/ { + if ($facts['os']['distro']['codename'] in $_transport_https_releases) and $_location =~ /(?i:^https:\/\/)/ { ensure_packages('apt-transport-https') } } else { diff --git a/readmes/README_ja_JP.md b/readmes/README_ja_JP.md index eb0803c..cf8f6b4 100644 --- a/readmes/README_ja_JP.md +++ b/readmes/README_ja_JP.md @@ -2,7 +2,6 @@ #### 目次 - 1. [説明 - モジュールの機能とその有益性](#module-description) 1. [セットアップ - apt導入の基本](#setup) * [aptが影響を与えるもの](#what-apt-affects) @@ -191,31 +190,31 @@ apt::sources: デフォルトの`/etc/apt/sources.list`を置き換える例を以下に示します。以下のコードと合わせて、`purge`パラメータを必ず使用してください。使用しない場合、Apt実行時にソース重複の警告が出ます。 ```puppet -apt::source { "archive.ubuntu.com-${lsbdistcodename}": +apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}": location => 'http://archive.ubuntu.com/ubuntu', key => '630239CC130E1A7FD81A27B140976EAF437D05B5', repos => 'main universe multiverse restricted', } -apt::source { "archive.ubuntu.com-${lsbdistcodename}-security": +apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}-security": location => 'http://archive.ubuntu.com/ubuntu', key => '630239CC130E1A7FD81A27B140976EAF437D05B5', repos => 'main universe multiverse restricted', - release => "${lsbdistcodename}-security" + release => "${facts['os']['distro']['codename']}-security" } -apt::source { "archive.ubuntu.com-${lsbdistcodename}-updates": +apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}-updates": location => 'http://archive.ubuntu.com/ubuntu', key => '630239CC130E1A7FD81A27B140976EAF437D05B5', repos => 'main universe multiverse restricted', - release => "${lsbdistcodename}-updates" + release => "${facts['os']['distro']['codename']}-updates" } -apt::source { "archive.ubuntu.com-${lsbdistcodename}-backports": +apt::source { "archive.ubuntu.com-${facts['os']['distro']['codename']}-backports": location => 'http://archive.ubuntu.com/ubuntu', key => '630239CC130E1A7FD81A27B140976EAF437D05B5', repos => 'main universe multiverse restricted', - release => "${lsbdistcodename}-backports" + release => "${facts['os']['distro']['codename']}-backports" } ``` diff --git a/spec/classes/apt_backports_spec.rb b/spec/classes/apt_backports_spec.rb index 57e8a06..7953440 100644 --- a/spec/classes/apt_backports_spec.rb +++ b/spec/classes/apt_backports_spec.rb @@ -9,10 +9,18 @@ describe 'apt::backports', type: :class do context 'with defaults on deb' do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end @@ -26,11 +34,18 @@ describe 'apt::backports', type: :class do context 'with defaults on ubuntu' do let(:facts) do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - lsbdistid: 'Ubuntu', - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistrelease: '16.04', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, } end @@ -45,11 +60,18 @@ describe 'apt::backports', type: :class do context 'with everything set' do let(:facts) do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - lsbdistid: 'Ubuntu', - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistrelease: '16.04', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, } end let(:params) do @@ -73,11 +95,18 @@ describe 'apt::backports', type: :class do context 'when set things with hashes' do let(:facts) do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - lsbdistid: 'Ubuntu', - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistrelease: '16.04', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, } end let(:params) do @@ -100,10 +129,18 @@ describe 'apt::backports', type: :class do describe 'mint tests' do let(:facts) do { - os: { family: 'Debian', name: 'Linuxmint', release: { major: '17', full: '17' } }, - lsbdistid: 'linuxmint', - osfamily: 'Debian', - lsbdistcodename: 'qiana', + os: { + family: 'Debian', + name: 'Linuxmint', + release: { + major: '17', + full: '17', + }, + distro: { + codename: 'qiana', + id: 'linuxmint', + }, + }, } end @@ -181,11 +218,18 @@ describe 'apt::backports', type: :class do describe 'validation' do let(:facts) do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - lsbdistid: 'Ubuntu', - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistrelease: '16.04', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, } end diff --git a/spec/classes/apt_spec.rb b/spec/classes/apt_spec.rb index f7ab7bc..ca23563 100644 --- a/spec/classes/apt_spec.rb +++ b/spec/classes/apt_spec.rb @@ -41,10 +41,18 @@ apt_conf_d = { ensure: 'directory', describe 'apt' do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end @@ -273,49 +281,102 @@ describe 'apt' do context 'with entries for /etc/apt/auth.conf' do facts_hash = { 'Ubuntu 14.04' => { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, - osfamily: 'Debian', - lsbdistcodename: 'trusty', - lsbdistid: 'Ubuntu', - lsbdistrelease: '14.04', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '14', + full: '14.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, }, 'Ubuntu 16.04' => { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistid: 'Ubuntu', - lsbdistrelease: '16.04', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, }, 'Ubuntu 18.04' => { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '18', full: '18.04' } }, - osfamily: 'Debian', - lsbdistcodename: 'bionic', - lsbdistid: 'Ubuntu', - lsbdistrelease: '18.04', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '18', + full: '18.04', + }, + distro: { + codename: 'bionic', + id: 'Ubuntu', + }, + }, }, 'Debian 7.0' => { - os: { family: 'Debian', name: 'Debian', release: { major: '7', full: '7.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'wheezy', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '7', + full: '7.0', + }, + distro: { + codename: 'wheezy', + id: 'Debian', + }, + }, }, 'Debian 8.0' => { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, }, 'Debian 9.0' => { - os: { family: 'Debian', name: 'Debian', release: { major: '9', full: '9.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'stretch', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '9', + full: '9.0', + }, + distro: { + codename: 'stretch', + id: 'Debian', + }, + }, }, 'Debian 10.0' => { - os: { family: 'Debian', name: 'Debian', release: { major: '10', full: '10.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'buster', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '10', + full: '10.0', + }, + distro: { + codename: 'buster', + id: 'Debian', + }, + }, }, } @@ -405,14 +466,21 @@ machine apt.example.com login aptlogin password supersecret end end - context 'with sources defined on valid osfamily' do + context 'with sources defined on valid os.family' do let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistid: 'Ubuntu', - lsbdistrelease: '16.04', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, } end let(:params) do @@ -447,13 +515,21 @@ machine apt.example.com login aptlogin password supersecret it { is_expected.to contain_file('/etc/apt/sources.list.d/puppetlabs.list').with_content(%r{^deb http://apt.puppetlabs.com xenial main$}) } end - context 'with confs defined on valid osfamily' do + context 'with confs defined on valid os.family' do let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistid: 'Ubuntu', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, } end let(:params) do @@ -476,13 +552,21 @@ machine apt.example.com login aptlogin password supersecret } end - context 'with keys defined on valid osfamily' do + context 'with keys defined on valid os.family' do let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistid: 'Ubuntu', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, } end let(:params) do @@ -505,14 +589,21 @@ machine apt.example.com login aptlogin password supersecret } end - context 'with ppas defined on valid osfamily' do + context 'with ppas defined on valid os.family' do let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistid: 'Ubuntu', - lsbdistrelease: '16.04', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, } end let(:params) do @@ -526,13 +617,21 @@ machine apt.example.com login aptlogin password supersecret it { is_expected.to contain_apt__ppa('ppa:nginx/stable') } end - context 'with settings defined on valid osfamily' do + context 'with settings defined on valid os.family' do let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistid: 'Ubuntu', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, } end let(:params) do @@ -546,13 +645,21 @@ machine apt.example.com login aptlogin password supersecret it { is_expected.to contain_apt__setting('pref-banana') } end - context 'with pins defined on valid osfamily' do + context 'with pins defined on valid os.family' do let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '16', full: '16.04' } }, - osfamily: 'Debian', - lsbdistcodename: 'xenial', - lsbdistid: 'Ubuntu', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '16', + full: '16.04', + }, + distro: { + codename: 'xenial', + id: 'Ubuntu', + }, + }, } end let(:params) do diff --git a/spec/classes/apt_update_spec.rb b/spec/classes/apt_update_spec.rb index 463566b..c6336a9 100644 --- a/spec/classes/apt_update_spec.rb +++ b/spec/classes/apt_update_spec.rb @@ -12,11 +12,19 @@ describe 'apt::update', type: :class do context "when $::apt_update_last_success indicates #{desc}" do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, apt_update_last_success: factval, - lsbdistcodename: 'jessie', } end let(:pre_condition) do @@ -32,10 +40,18 @@ describe 'apt::update', type: :class do context 'when $::apt_update_last_success is nil' do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end let(:pre_condition) { "class{ '::apt': update => {'frequency' => 'always' },}" } @@ -55,11 +71,19 @@ describe 'apt::update', type: :class do context "when $::apt_update_last_success indicates #{desc}" do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, apt_update_last_success: factval, - lsbdistcodename: 'jessie', } end let(:pre_condition) { "class{ '::apt': update => {'frequency' => 'reluctantly' },}" } @@ -73,10 +97,18 @@ describe 'apt::update', type: :class do context 'when $::apt_update_last_success is nil' do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end let(:pre_condition) { "class{ '::apt': update => {'frequency' => 'reluctantly' },}" } @@ -93,11 +125,19 @@ describe 'apt::update', type: :class do context "when $::apt_update_last_success indicates #{desc}" do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, apt_update_last_success: factval, - lsbdistcodename: 'jessie', } end let(:pre_condition) { "class{ '::apt': update => {'frequency' => '#{update_frequency}',} }" } @@ -111,10 +151,18 @@ describe 'apt::update', type: :class do context 'when the $::apt_update_last_success fact has a recent value' do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, apt_update_last_success: Time.now.to_i, } end @@ -128,10 +176,18 @@ describe 'apt::update', type: :class do context 'when $::apt_update_last_success is nil' do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, apt_update_last_success: nil, } end diff --git a/spec/defines/conf_spec.rb b/spec/defines/conf_spec.rb index 3158c16..310e15a 100644 --- a/spec/defines/conf_spec.rb +++ b/spec/defines/conf_spec.rb @@ -7,10 +7,18 @@ describe 'apt::conf', type: :define do end let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end let :title do diff --git a/spec/defines/key_compat_spec.rb b/spec/defines/key_compat_spec.rb index fc401ba..e2a76e0 100644 --- a/spec/defines/key_compat_spec.rb +++ b/spec/defines/key_compat_spec.rb @@ -25,9 +25,18 @@ describe 'apt::key', type: :define do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end diff --git a/spec/defines/key_spec.rb b/spec/defines/key_spec.rb index 6ad0978..fc40a86 100644 --- a/spec/defines/key_spec.rb +++ b/spec/defines/key_spec.rb @@ -46,10 +46,18 @@ describe 'apt::key' do let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end diff --git a/spec/defines/mark_spec.rb b/spec/defines/mark_spec.rb index 9228510..0d059a5 100644 --- a/spec/defines/mark_spec.rb +++ b/spec/defines/mark_spec.rb @@ -9,10 +9,18 @@ describe 'apt::mark', type: :define do let :facts do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - lsbdistcodename: 'jessie', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end diff --git a/spec/defines/pin_spec.rb b/spec/defines/pin_spec.rb index fd56dbf..1b6ac33 100644 --- a/spec/defines/pin_spec.rb +++ b/spec/defines/pin_spec.rb @@ -7,10 +7,18 @@ describe 'apt::pin', type: :define do end let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end let(:title) { 'my_pin' } diff --git a/spec/defines/ppa_spec.rb b/spec/defines/ppa_spec.rb index b0e689e..43ee754 100644 --- a/spec/defines/ppa_spec.rb +++ b/spec/defines/ppa_spec.rb @@ -9,12 +9,18 @@ describe 'apt::ppa' do describe 'defaults' do let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '41.04' } }, - lsbdistrelease: '14.04', - lsbdistcodename: 'trusty', - operatingsystem: 'Ubuntu', - osfamily: 'Debian', - lsbdistid: 'Ubuntu', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '14', + full: '14.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, } end @@ -33,12 +39,18 @@ describe 'apt::ppa' do describe 'Ubuntu 15.10 sources.list filename' do let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '15', full: '15.10' } }, - lsbdistrelease: '15.10', - lsbdistcodename: 'wily', - operatingsystem: 'Ubuntu', - osfamily: 'Debian', - lsbdistid: 'Ubuntu', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '15', + full: '15.10', + }, + distro: { + codename: 'wily', + id: 'Ubuntu', + }, + }, } end @@ -65,12 +77,18 @@ describe 'apt::ppa' do end let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, - lsbdistrelease: '14.04', - lsbdistcodename: 'trusty', - operatingsystem: 'Ubuntu', - osfamily: 'Debian', - lsbdistid: 'Ubuntu', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '14', + full: '14.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, } end @@ -96,12 +114,18 @@ describe 'apt::ppa' do end let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, - lsbdistrelease: '14.04', - lsbdistcodename: 'trusty', - operatingsystem: 'Ubuntu', - osfamily: 'Debian', - lsbdistid: 'Ubuntu', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '14', + full: '14.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, } end let :params do @@ -134,12 +158,18 @@ describe 'apt::ppa' do end let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, - lsbdistrelease: '14.04', - lsbdistcodename: 'trusty', - operatingsystem: 'Ubuntu', - lsbdistid: 'Ubuntu', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '14', + full: '14.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, } end let :params do @@ -170,12 +200,18 @@ describe 'apt::ppa' do end let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, - lsbdistrelease: '14.04', - lsbdistcodename: 'trusty', - operatingsystem: 'Ubuntu', - lsbdistid: 'Ubuntu', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '14', + full: '14.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, } end let :params do @@ -204,12 +240,18 @@ describe 'apt::ppa' do end let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, - lsbdistrelease: '14.04', - lsbdistcodename: 'trusty', - operatingsystem: 'Ubuntu', - lsbdistid: 'Ubuntu', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '14', + full: '14.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, } end let :params do @@ -238,12 +280,18 @@ describe 'apt::ppa' do end let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, - lsbdistrelease: '14.04', - lsbdistcodename: 'trusty', - operatingsystem: 'Ubuntu', - lsbdistid: 'Ubuntu', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '14', + full: '14.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, } end let :params do @@ -270,12 +318,18 @@ describe 'apt::ppa' do end let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, - lsbdistrelease: '14.04', - lsbdistcodename: 'trusty', - operatingsystem: 'Ubuntu', - lsbdistid: 'Ubuntu', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '14', + full: '14.04', + }, + distro: { + codename: 'trusty', + id: 'Ubuntu', + }, + }, } end let(:title) { 'ppa:user/foo' } @@ -294,30 +348,42 @@ describe 'apt::ppa' do describe 'no release' do let :facts do { - os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, - lsbdistrelease: '14.04', - operatingsystem: 'Ubuntu', - lsbdistid: 'Ubuntu', - osfamily: 'Debian', - lsbdistcodeanme: nil, + os: { + family: 'Debian', + name: 'Ubuntu', + release: { + major: '14', + full: '14.04', + }, + distro: { + codename: nil, + id: 'Ubuntu', + }, + }, } end let(:title) { 'ppa:user/foo' } it do - is_expected.to raise_error(Puppet::Error, %r{lsbdistcodename fact not available: release parameter required}) + is_expected.to raise_error(Puppet::Error, %r{os.distro.codename fact not available: release parameter required}) end end describe 'not ubuntu' do let :facts do { - os: { family: 'Debian', name: 'Debian', release: { major: '6', full: '6.0.7' } }, - lsbdistrelease: '6.0.7', - lsbdistcodename: 'wheezy', - operatingsystem: 'Debian', - lsbdistid: 'debian', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '6', + full: '6.0.7', + }, + distro: { + codename: 'wheezy', + id: 'Debian', + }, + }, } end let(:title) { 'ppa:user/foo' } diff --git a/spec/defines/setting_spec.rb b/spec/defines/setting_spec.rb index 09cb922..a2fef2e 100644 --- a/spec/defines/setting_spec.rb +++ b/spec/defines/setting_spec.rb @@ -6,12 +6,18 @@ describe 'apt::setting' do let(:pre_condition) { 'class { "apt": }' } let :facts do { - os: { distro: { codename: 'jessie' }, family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistrelease: '8.0', - lsbdistcodename: 'jessie', - operatingsystem: 'Debian', - osfamily: 'Debian', - lsbdistid: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end let(:title) { 'conf-teddybear' } @@ -76,10 +82,18 @@ describe 'apt::setting' do end let(:facts) do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - osfamily: 'Debian', - lsbdistcodename: 'jessie', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end let(:title) { 'conf-teddybear' } diff --git a/spec/defines/source_compat_spec.rb b/spec/defines/source_compat_spec.rb index 0c42ef1..c35b630 100644 --- a/spec/defines/source_compat_spec.rb +++ b/spec/defines/source_compat_spec.rb @@ -11,10 +11,18 @@ describe 'apt::source', type: :define do let :facts do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - lsbdistcodename: 'jessie', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end @@ -104,13 +112,22 @@ describe 'apt::source', type: :define do context 'with no release' do let :facts do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + id: 'Debian', + }, + }, } end it do - is_expected.to raise_error(Puppet::Error, %r{lsbdistcodename fact not available: release parameter required}) + is_expected.to raise_error(Puppet::Error, %r{os.distro.codename fact not available: release parameter required}) end end end diff --git a/spec/defines/source_spec.rb b/spec/defines/source_spec.rb index 0adcaad..94446bf 100644 --- a/spec/defines/source_spec.rb +++ b/spec/defines/source_spec.rb @@ -15,11 +15,18 @@ describe 'apt::source' do let :facts do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - lsbdistcodename: 'jessie', - operatingsystem: 'Debian', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, } end @@ -163,10 +170,18 @@ describe 'apt::source' do context 'with a https location and custom release, install apt-transport-https' do let :facts do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - lsbdistcodename: 'jessie', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + codename: 'jessie', + id: 'Debian', + }, + }, puppetversion: Puppet.version, } end @@ -186,10 +201,18 @@ describe 'apt::source' do context 'with a https location, do not install apt-transport-https on oses not in list eg buster' do let :facts do { - os: { family: 'Debian', name: 'Debian', release: { major: '10', full: '10.0' } }, - lsbdistid: 'Debian', - lsbdistcodename: 'buster', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '10', + full: '10.0', + }, + distro: { + codename: 'buster', + id: 'Debian', + }, + }, } end let :params do @@ -207,10 +230,18 @@ describe 'apt::source' do context 'with architecture equals x86_64' do let :facts do { - os: { family: 'Debian', name: 'Debian', release: { major: '7', full: '7.0' } }, - lsbdistid: 'Debian', - lsbdistcodename: 'wheezy', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '7', + full: '7.0', + }, + distro: { + codename: 'wheezy', + id: 'Debian', + }, + }, } end let :params do @@ -299,14 +330,23 @@ describe 'apt::source' do context 'with no release' do let :facts do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '8', + full: '8.0', + }, + distro: { + id: 'Debian', + }, + }, } end let(:params) { { location: 'hello.there' } } it do - is_expected.to raise_error(Puppet::Error, %r{lsbdistcodename fact not available: release parameter required}) + is_expected.to raise_error(Puppet::Error, %r{os.distro.codename fact not available: release parameter required}) end end