From 33d17cfcfd86bef27a71e29a0fbab4b20b97327d Mon Sep 17 00:00:00 2001 From: Eric Putnam Date: Wed, 24 May 2017 10:34:25 -0700 Subject: [PATCH] (MODULES-4973) rip out data in modules this module is not able to find a value for `$keyserver` when it is included in postgresql, as stated in the ticket. this changes the module back to using the params.pp model. we can revisit data in modules once LTS moves up from 4.7.0. for now, we need the compatibility. --- data/Debian-6.0.yaml | 5 -- data/Debian.yaml | 4 -- data/Ubuntu-10.04.yaml | 4 -- data/Ubuntu-12.04.yaml | 4 -- data/Ubuntu-14.04.yaml | 4 -- data/Ubuntu.yaml | 4 -- data/common.yaml | 11 ---- hiera.yaml | 22 ------- manifests/init.pp | 54 ++++++++--------- manifests/params.pp | 130 +++++++++++++++++++++++++++++++++++++++++ metadata.json | 2 +- 11 files changed, 158 insertions(+), 86 deletions(-) delete mode 100644 data/Debian-6.0.yaml delete mode 100644 data/Debian.yaml delete mode 100644 data/Ubuntu-10.04.yaml delete mode 100644 data/Ubuntu-12.04.yaml delete mode 100644 data/Ubuntu-14.04.yaml delete mode 100644 data/Ubuntu.yaml delete mode 100644 data/common.yaml delete mode 100644 hiera.yaml create mode 100644 manifests/params.pp diff --git a/data/Debian-6.0.yaml b/data/Debian-6.0.yaml deleted file mode 100644 index f03bccd..0000000 --- a/data/Debian-6.0.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -#Squeeze -apt::backports: { location: 'http://httpredir.debian.org/debian-backports', key: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553', repos: 'main contrib non-free' } -apt::ppa_options: ~ -apt::ppa_package: ~ diff --git a/data/Debian.yaml b/data/Debian.yaml deleted file mode 100644 index 823bc02..0000000 --- a/data/Debian.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -apt::backports: { location: 'http://httpredir.debian.org/debian', key: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553', repos: 'main contrib non-free' } -apt::ppa_options: ~ -apt::ppa_package: ~ diff --git a/data/Ubuntu-10.04.yaml b/data/Ubuntu-10.04.yaml deleted file mode 100644 index 567548b..0000000 --- a/data/Ubuntu-10.04.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -#Lucid -apt::ppa_options: ~ -apt::ppa_package: 'python-software-properties' diff --git a/data/Ubuntu-12.04.yaml b/data/Ubuntu-12.04.yaml deleted file mode 100644 index 992cb25..0000000 --- a/data/Ubuntu-12.04.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -#Precise -apt::ppa_options: '-y' -apt::ppa_package: 'python-software-properties' diff --git a/data/Ubuntu-14.04.yaml b/data/Ubuntu-14.04.yaml deleted file mode 100644 index d168164..0000000 --- a/data/Ubuntu-14.04.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -#Trusty -apt::ppa_options: '-y' -apt::ppa_package: 'software-properties-common' diff --git a/data/Ubuntu.yaml b/data/Ubuntu.yaml deleted file mode 100644 index ee62a25..0000000 --- a/data/Ubuntu.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -apt::backports: { location: 'http://archive.ubuntu.com/ubuntu', key: '630239CC130E1A7FD81A27B140976EAF437D05B5', repos: 'main universe multiverse restricted' } -apt::ppa_options: '-y' -apt::ppa_package: 'python-software-properties' diff --git a/data/common.yaml b/data/common.yaml deleted file mode 100644 index 2ed9e16..0000000 --- a/data/common.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -apt::provider: '/usr/bin/apt-get' -apt::keyserver: 'keyserver.ubuntu.com' -apt::update_defaults: { frequency: 'reluctantly', timeout: ~, tries: ~ } -apt::proxy_defaults: { ensure: ~, host: ~, port: 8080, https: false } -apt::purge_defaults: { sources.list: false, sources.list.d: false, preferences: false, preferences.d: false } -apt::proxy_defaults: { ensure: ~, host: ~, port: 8080, https: false } -apt::include_defaults: { deb: true, src: false } -apt::ppa_options: ~ -apt::ppa_package: ~ -apt::backports: ~ diff --git a/hiera.yaml b/hiera.yaml deleted file mode 100644 index 4bfe502..0000000 --- a/hiera.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -version: 4 -datadir: data -hierarchy: - - name: "Full Version" - backend: yaml - path: "%{facts.os.name}-%{facts.os.release.full}" - - - name: "Major Version" - backend: yaml - path: "%{facts.os.name}-%{facts.os.release.major}" - - - name: "Distribution Name" - backend: yaml - path: "%{facts.os.name}" - - - name: "Operating System Family" - backend: yaml - path: "%{facts.os.family}" - - - name: "common" - backend: yaml diff --git a/manifests/init.pp b/manifests/init.pp index 5654b3c..c89c223 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -3,33 +3,33 @@ # Manage APT (Advanced Packaging Tool) # class apt ( - Hash $update_defaults, - Hash $purge_defaults, - Hash $proxy_defaults, - Hash $include_defaults, - String $provider, - String $keyserver, - Optional[String] $ppa_options, - Optional[String] $ppa_package, - Optional[Hash] $backports, - Hash $confs = {}, - Hash $update = {}, - Hash $purge = {}, - Hash $proxy = {}, - Hash $sources = {}, - Hash $keys = {}, - Hash $ppas = {}, - Hash $pins = {}, - Hash $settings = {}, - String $root = '/etc/apt', - String $sources_list = "${root}/sources.list", - String $sources_list_d = "${root}/sources.list.d", - String $conf_d = "${root}/apt.conf.d", - String $preferences = "${root}/preferences", - String $preferences_d = "${root}/preferences.d", - Hash $config_files = { conf => { path => $conf_d, ext => '' }, pref => { path => $preferences_d, ext => '.pref' }, list => { path => $sources_list_d, ext => '.list' } }, - Hash $source_key_defaults = { 'server' => $keyserver, 'options' => undef, 'content' => undef, 'source' => undef }, -) { + Hash $update_defaults = $apt::params::update_defaults, + Hash $purge_defaults = $apt::params::purge_defaults, + Hash $proxy_defaults = $apt::params::proxy_defaults, + Hash $include_defaults = $apt::params::include_defaults, + String $provider = $apt::params::provider, + String $keyserver = $apt::params::keyserver, + Optional[String] $ppa_options = $apt::params::ppa_options, + Optional[String] $ppa_package = $apt::params::ppa_package, + Optional[Hash] $backports = $apt::params::backports, + Hash $confs = $apt::params::confs, + Hash $update = $apt::params::update, + Hash $purge = $apt::params::purge, + Hash $proxy = $apt::params::proxy, + Hash $sources = $apt::params::sources, + Hash $keys = $apt::params::keys, + Hash $ppas = $apt::params::ppas, + Hash $pins = $apt::params::pins, + Hash $settings = $apt::params::settings, + String $root = $apt::params::root, + String $sources_list = $apt::params::sources_list, + String $sources_list_d = $apt::params::sources_list_d, + String $conf_d = $apt::params::conf_d, + String $preferences = $apt::params::preferences, + String $preferences_d = $apt::params::preferences_d, + Hash $config_files = $apt::params::config_files, + Hash $source_key_defaults = $apt::params::source_key_defaults +) inherits apt::params { if $facts['osfamily'] != 'Debian' { fail('This module only works on Debian or derivatives like Ubuntu') diff --git a/manifests/params.pp b/manifests/params.pp new file mode 100644 index 0000000..8fd658b --- /dev/null +++ b/manifests/params.pp @@ -0,0 +1,130 @@ +class apt::params { + + if $::osfamily != 'Debian' { + fail('This module only works on Debian or derivatives like Ubuntu') + } + + $root = '/etc/apt' + $provider = '/usr/bin/apt-get' + $sources_list = "${root}/sources.list" + $sources_list_d = "${root}/sources.list.d" + $conf_d = "${root}/apt.conf.d" + $preferences = "${root}/preferences" + $preferences_d = "${root}/preferences.d" + $keyserver = 'keyserver.ubuntu.com' + $confs = {} + $update = {} + $purge = {} + $proxy = {} + $sources = {} + $keys = {} + $ppas = {} + $pins = {} + $settings = {} + + $config_files = { + 'conf' => { + 'path' => $conf_d, + 'ext' => '', + }, + 'pref' => { + 'path' => $preferences_d, + 'ext' => '.pref', + }, + 'list' => { + 'path' => $sources_list_d, + 'ext' => '.list', + } + } + + $update_defaults = { + 'frequency' => 'reluctantly', + 'timeout' => undef, + 'tries' => undef, + } + + $proxy_defaults = { + 'ensure' => undef, + 'host' => undef, + 'port' => 8080, + 'https' => false, + } + + $purge_defaults = { + 'sources.list' => false, + 'sources.list.d' => false, + 'preferences' => false, + 'preferences.d' => false, + } + + $source_key_defaults = { + 'server' => $keyserver, + 'options' => undef, + 'content' => undef, + 'source' => undef, + } + + $include_defaults = { + 'deb' => true, + 'src' => false, + } + + case $facts['os']['name']{ + 'Debian': { + case $facts['os']['release']['full'] { + '6.0': { + $backports = { + 'location' => 'http://httpredir.debian.org/debian-backports', + 'key' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553', + 'repos' => 'main contrib non-free', + } + } + default: { + $backports = { + 'location' => 'http://httpredir.debian.org/debian', + 'key' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553', + 'repos' => 'main contrib non-free', + } + } + } + + $ppa_options = undef + $ppa_package = undef + + } + 'Ubuntu': { + $backports = { + 'location' => 'http://archive.ubuntu.com/ubuntu', + 'key' => '630239CC130E1A7FD81A27B140976EAF437D05B5', + 'repos' => 'main universe multiverse restricted', + } + + case $facts['os']['release']['full'] { + '10.04': { + $ppa_options = undef + $ppa_package = 'python-software-properties' + } + '12.04': { + $ppa_options = '-y' + $ppa_package = 'python-software-properties' + } + '14.04', '14.10', '15.04', '15.10': { + $ppa_options = '-y' + $ppa_package = 'software-properties-common' + } + default: { + $ppa_options = '-y' + $ppa_package = 'python-software-properties' + } + } + } + undef: { + fail('Unable to determine full release number') + } + default: { + $ppa_options = undef + $ppa_package = undef + $backports = undef + } + } +} diff --git a/metadata.json b/metadata.json index f4fadeb..562f043 100644 --- a/metadata.json +++ b/metadata.json @@ -10,7 +10,7 @@ "dependencies": [ {"name":"puppetlabs/stdlib","version_requirement":">= 4.16.0 < 5.0.0"} ], - "data_provider": "hiera", + "data_provider": null, "operatingsystem_support": [ { "operatingsystem": "Debian", -- 2.32.3