apt::source: Merge `include_*` options into hash.
authorDaniele Sluijters <daenney@users.noreply.github.com>
Thu, 5 Mar 2015 16:37:51 +0000 (17:37 +0100)
committerDaniele Sluijters <daenney@users.noreply.github.com>
Thu, 5 Mar 2015 16:37:51 +0000 (17:37 +0100)
This makes its behaviour similar to the `update`, `proxy` and `purge`
hashes on the main classes bringing its API more in line with the rest
of the module.

manifests/params.pp
manifests/source.pp
spec/classes/apt_spec.rb
spec/defines/source_spec.rb
templates/source.list.erb

index 42dd6b01290bae1783aadccaaae56eb84708f572..e3cc8252f99ab34127b221080f5d7b2ffa80cdc0 100644 (file)
@@ -87,6 +87,11 @@ class apt::params {
     'source'  => undef,
   }
 
+  $include_defaults = {
+    'deb' => true,
+    'src' => false,
+  }
+
   case $xfacts['lsbdistid'] {
     'ubuntu', 'debian': {
       $distid = $xfacts['lsbdistid']
index 9b3405797a83b5734619ff300fca1f6006d99714..1ceaba96ceb5aae6ed5ec967b59e60e176cbb0f2 100644 (file)
@@ -6,21 +6,22 @@ define apt::source(
   $location       = '',
   $release        = $::apt::xfacts['lsbdistcodename'],
   $repos          = 'main',
-  $include_src    = false,
-  $include_deb    = true,
+  $include        = {},
   $key            = undef,
   $pin            = false,
   $architecture   = undef,
   $trusted_source = false,
 ) {
   validate_string($architecture, $comment, $location, $repos)
-  validate_bool($trusted_source, $include_src, $include_deb)
+  validate_bool($trusted_source)
+  validate_hash($include)
 
   unless $release {
     fail('lsbdistcodename fact not available: release parameter required')
   }
 
   $_before = Apt::Setting["list-${title}"]
+  $_include = merge($::apt::include_defaults, $include)
 
   if $key {
     if is_hash($key) {
index e668996f5b9e9edde5fd52ec2f0dd4e421cf7e5c..856007bf503fe12fc6d880b8e1d47bb99f524554 100644 (file)
@@ -142,7 +142,7 @@ describe 'apt' do
         'repos'             => 'main contrib non-free',
         'key'               => { 'id' => '55BE302B', 'server' => 'subkeys.pgp.net' },
         'pin'               => '-10',
-        'include_src'       => true,
+        'include'           => {'src' => true,},
       },
       'puppetlabs' => {
         'location'   => 'http://apt.puppetlabs.com',
index 7dc03e459377b543a52de1df68867862f5453aa0..e2ae69a1617bd32a0b0f0541bef89d0a97b91446 100644 (file)
@@ -11,7 +11,7 @@ describe 'apt::source' do
     'my_source'
   end
 
-  context 'mostly defaults' do
+  context 'defaults' do
     let :facts do
       {
         :lsbdistid       => 'Debian',
@@ -20,17 +20,9 @@ describe 'apt::source' do
       }
     end
 
-    let :params do
-      {
-        :include_deb => false,
-        :include_src => true,
-      }
-    end
-
     it { is_expected.to contain_apt__setting('list-my_source').with({
-      :ensure => 'present',
-    }).with_content(/# my_source\ndeb-src  wheezy main\n/)
-
+      :ensure  => 'present',
+    }).without_content(/# my_source\ndeb-src  wheezy main\n/)
     }
   end
 
@@ -49,7 +41,6 @@ describe 'apt::source' do
           :location          => 'http://debian.mirror.iweb.ca/debian/',
           :release           => 'sid',
           :repos             => 'testing',
-          :include_src       => false,
           :key               => GPG_KEY_ID,
           :pin               => '10',
           :architecture      => 'x86_64',
@@ -83,7 +74,6 @@ describe 'apt::source' do
           :location          => 'http://debian.mirror.iweb.ca/debian/',
           :release           => 'sid',
           :repos             => 'testing',
-          :include_src       => false,
           :key               => { 'id' => GPG_KEY_ID, 'server' => 'pgp.mit.edu',
                                   'content' => 'GPG key content',
                                   'source'  => 'http://apt.puppetlabs.com/pubkey.gpg',},
@@ -122,7 +112,6 @@ describe 'apt::source' do
           :location       => 'http://debian.mirror.iweb.ca/debian/',
           :release        => 'sid',
           :repos          => 'testing',
-          :include_src    => false,
           :key            => GPG_KEY_ID,
           :pin            => '10',
           :architecture   => 'x86_64',
@@ -160,7 +149,6 @@ describe 'apt::source' do
     end
     let :params do
       {
-        :include_src    => false,
         :trusted_source => true,
       }
     end
@@ -181,8 +169,7 @@ describe 'apt::source' do
     end
     let :params do
       {
-        :include_deb  => false,
-        :include_src  => true,
+        :include      => {'deb' => false, 'src' => true,},
         :architecture => 'x86_64',
       }
     end
index fb0a38612e7f2ff42fa393c18488ec296004418a..00457de64a194f445142b6ca8f720051147883c1 100644 (file)
@@ -1,10 +1,10 @@
 # <%= @comment %>
-<%- if @include_deb then -%>
+<%- if @_include['deb'] then -%>
 deb <%- if @architecture or @trusted_source -%>
 [<%- if @architecture %>arch=<%= @architecture %> <% end %><% if @trusted_source %>trusted=yes<% end -%>
 ] <%- end %><%= @location %> <%= @release %> <%= @repos %>
 <%- end -%>
-<%- if @include_src then -%>
+<%- if @_include['src'] then -%>
 deb-src <%- if @architecture or @trusted_source -%>
 [<%- if @architecture %>arch=<%= @architecture %> <% end %><% if @trusted_source %>trusted=yes<% end -%>
 ] <%- end %><%= @location %> <%= @release %> <%= @repos %>