- if $caller_module_name and $caller_module_name != $module_name {
- fail('apt::params is a private class and cannot be accessed directly')
+ if $::osfamily != 'Debian' {
+ fail('This module only works on Debian or derivatives like Ubuntu')
+ }
+
+ # prior to puppet 3.5.0, defined() couldn't test if a variable was defined.
+ # strict_variables wasn't added until 3.5.0, so this should be fine.
+ if $::puppetversion and versioncmp($::puppetversion, '3.5.0') < 0 {
+ $xfacts = {
+ 'lsbdistcodename' => $::lsbdistcodename,
+ 'lsbdistrelease' => $::lsbdistrelease,
+ 'lsbdistid' => $::lsbdistid,
+ }
+ } else {
+ # Strict variables facts lookup compatibility
+ $xfacts = {
+ 'lsbdistcodename' => defined('$lsbdistcodename') ? {
+ true => $::lsbdistcodename,
+ default => undef,
+ },
+ 'lsbdistrelease' => defined('$lsbdistrelease') ? {
+ true => $::lsbdistrelease,
+ default => undef,
+ },
+ 'lsbdistid' => defined('$lsbdistid') ? {
+ true => $::lsbdistid,
+ default => undef,
+ },
+ }