manifests: use modern os facts
authorKenyon Ralph <kenyon@kenyonralph.com>
Sun, 20 Dec 2020 06:31:48 +0000 (22:31 -0800)
committerKenyon Ralph <kenyon@kenyonralph.com>
Tue, 12 Jan 2021 22:27:58 +0000 (14:27 -0800)
23 files changed:
README.md
REFERENCE.md
examples/source.pp
locales/ja/puppetlabs-apt.po
locales/puppetlabs-apt.pot
manifests/backports.pp
manifests/init.pp
manifests/params.pp
manifests/ppa.pp
manifests/source.pp
readmes/README_ja_JP.md
spec/classes/apt_backports_spec.rb
spec/classes/apt_spec.rb
spec/classes/apt_update_spec.rb
spec/defines/conf_spec.rb
spec/defines/key_compat_spec.rb
spec/defines/key_spec.rb
spec/defines/mark_spec.rb
spec/defines/pin_spec.rb
spec/defines/ppa_spec.rb
spec/defines/setting_spec.rb
spec/defines/source_compat_spec.rb
spec/defines/source_spec.rb

index 53f0228cbadd0c32c0666e757b97ed99fb83487f..19b50adb1c76282fadb3e8a7997a80ab41d5d0e9 100644 (file)
--- 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)
 
 <a id="module-description"></a>
+
 ## 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.
 
 <a id="setup"></a>
+
 ## Setup
 
 <a id="what-apt-affects"></a>
+
 ### 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`.
 
 <a id="beginning-with-apt"></a>
+
 ### 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.
 
 <a id="usage"></a>
+
 ## Usage
 
 <a id="add-gpg-keys"></a>
+
 ### 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':
 ```
 
 <a id="prioritize-backports"></a>
+
 ### 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.
 
 <a id="update-the-list-of-packages"></a>
+
 ### 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).
 
 <a id="pin-a-specific-release"></a>
+
 ### 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.
 
 <a id="add-a-personal-package-archive-repository"></a>
+
 ### Add a Personal Package Archive (PPA) repository
 
 ```puppet
@@ -173,6 +183,7 @@ apt::source { 'puppetlabs':
 ```
 
 <a id="configure-apt-from-hiera"></a>
+
 ### 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:
 ```
 
 <a id="replace-the-default-sourceslist-file"></a>
+
 ### 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':
 ```
 
 <a id="reference"></a>
+
 ## 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.
 
-<a id="limitations"></a> 
+<a id="limitations"></a>
+
 ## 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](<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>).
 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/).
index dc1e5edd7a7ab75e809420fbc1acdfe6029ec2f1..13f5f9ae5e9442e380e8f3055e97fba677743d6d 100644 (file)
@@ -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`
 
index a3648c3efbcda9a13932dd45c52406ef071ed654..3e381266f3133f2a4c537f36f0987d97211b7397 100644 (file)
@@ -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',
index aa6b266486147902b92dbb4aaba4da0bc5b982f7..1fe9d1d840ec5cdf336b6c7299bb645c7d271c38 100644 (file)
@@ -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."
index 5701be94229f10d81c3e244506aa02837d366895..5fa70e28e9f592e37579791e8846227dc1c0efae 100644 (file)
@@ -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
index b3cb74b5221531fd6bbb8b1efd59224e8488492b..5949905c5e73273f2655b3d1c330b65dfa048998 100644 (file)
@@ -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']
index ea4e828267225606adfa3d2cdeabf2a4cf407f4b..a20748f4364da22559475dd67dcb605db47ef0df 100644 (file)
@@ -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'))
   }
 
index c648c4ef992b853cacc0dea271a2ae0c4d21e207..9a9257702a2732dcb6750d8b535f4fe645f4a1da 100644 (file)
@@ -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'))
   }
 
index f7c78fc820b39be021fdf4c32fd467e3691a4ca5..6a874ce3dc1fb38ec773f972f92fa76b76e3b378 100644 (file)
 #   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'.
 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"
index 8cbde99ee8f1f72e6dacf60b44a73f271508a4a4..2c3d4b84cb0e718020820be8c508b69865d98672 100644 (file)
@@ -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 {
index eb0803c7817504ba5a35f1cc91d72d8ffdd999f8..cf8f6b4157739b717767e084cfed79b89b9d2ddc 100644 (file)
@@ -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"
 }
 ```
 
index 57e8a060a219b09f1234b48e21aed78e23b2106d..795344001f1ff2c6527f32a400ec818fd6bf70c0 100644 (file)
@@ -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
 
index f7ab7bcaa345e7135d224cf8ad79a17c9f60799f..ca23563f21b41261b825948faa9f0e601bc88da9 100644 (file)
@@ -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
index 463566b986f3201a0f03852a6072033de0a4ab6b..c6336a9151c943347f4029eff026dc7a881cedbc 100644 (file)
@@ -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
index 3158c16ef41cd842f6f73de870b560343766165e..310e15ad5e67a20d41964b001cadf353949dd500 100644 (file)
@@ -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
index fc401ba592203f14e1bb9bc0794466f32cdcf07f..e2a76e0b00e8f6feeaee643daa3d5d9e618ce345 100644 (file)
@@ -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
 
index 6ad0978ca517452cea2a0b84466a182b91ebae4f..fc40a8632d89399a15e4c80a8bb6ca70e7253bae 100644 (file)
@@ -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
 
index 922851047ff1cedfa4b40b4866633837791fcd20..0d059a51732c7ab05473a18f24fd8c3119b8dfdd 100644 (file)
@@ -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
 
index fd56dbfa1cd8c6dcbab1cae1cd77be0d00c9b4d4..1b6ac33c28f629eac360d7468114c08ab8b9a39f 100644 (file)
@@ -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' }
index b0e689e236f24bd4291f031bef441d3569f36365..43ee7541d712d6663f9c68ed33ee50172bf34603 100644 (file)
@@ -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' }
index 09cb922d216e19989dffaac57feaa8976c959fd3..a2fef2e24a2c48fb82c32b0c54f1b59c9960426b 100644 (file)
@@ -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' }
index 0c42ef1393a31ae26a65e333a9f803756d6a97bd..c35b630d049a2af8455344c6e74f3f9b32483e9d 100644 (file)
@@ -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
index 0adcaadf34791bda7549415857a03b078aeae7ea..94446bfa9febdbdf68417346f99dbea62720a642 100644 (file)
@@ -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