(MODULES-4973) rip out data in modules
authorEric Putnam <putnam.eric@gmail.com>
Wed, 24 May 2017 17:34:25 +0000 (10:34 -0700)
committerEric Putnam <putnam.eric@gmail.com>
Thu, 25 May 2017 20:26:29 +0000 (13:26 -0700)
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 [deleted file]
data/Debian.yaml [deleted file]
data/Ubuntu-10.04.yaml [deleted file]
data/Ubuntu-12.04.yaml [deleted file]
data/Ubuntu-14.04.yaml [deleted file]
data/Ubuntu.yaml [deleted file]
data/common.yaml [deleted file]
hiera.yaml [deleted file]
manifests/init.pp
manifests/params.pp [new file with mode: 0644]
metadata.json

diff --git a/data/Debian-6.0.yaml b/data/Debian-6.0.yaml
deleted file mode 100644 (file)
index f03bccd..0000000
+++ /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 (file)
index 823bc02..0000000
+++ /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 (file)
index 567548b..0000000
+++ /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 (file)
index 992cb25..0000000
+++ /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 (file)
index d168164..0000000
+++ /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 (file)
index ee62a25..0000000
+++ /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 (file)
index 2ed9e16..0000000
+++ /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 (file)
index 4bfe502..0000000
+++ /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
index 5654b3c6261f058d54172fe224cc515c8d491f7f..c89c2230cfd684c108acb924ca74868f345e8222 100644 (file)
@@ -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 (file)
index 0000000..8fd658b
--- /dev/null
@@ -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
+    }
+  }
+}
index f4fadeb4c4844651262333f10ec90a2dfacb472f..562f0436e473616d6ed45cfc804c1b8d649461b5 100644 (file)
@@ -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",