Browse Source

Merge pull request #551 from bdellegrazie/MODULES-2269

Expose notify_update to apt::conf
Morgan Haskel 8 years ago
parent
commit
3df188f879
4 changed files with 35 additions and 11 deletions
  1. 3 1
      README.md
  2. 8 6
      manifests/conf.pp
  3. 4 3
      manifests/pin.pp
  4. 20 1
      spec/defines/conf_spec.rb

+ 3 - 1
README.md

@@ -291,6 +291,8 @@ Specifies a custom Apt configuration file.
 
 * `priority`: *Optional.* Determines the order in which Apt processes the configuration file. Files with lower priority numbers are loaded first. Valid options: a string containing an integer. Default: '50'.
 
+* `notify_update`: *Optional.* Specifies whether to trigger an `apt-get update` run. Valid options: 'true' and 'false'. Default: 'true'.
+
 #### Define: `apt::key`
 
 Manages the GPG keys that Apt uses to authenticate packages.
@@ -323,7 +325,7 @@ The `apt::key` define makes use of the `apt_key` type, but includes extra functi
 
 #### Define: `apt::pin`
 
-Manages Apt pins.
+Manages Apt pins. Does not trigger an `apt-get update` run.
 
 **Note:** For context on these parameters, we recommend reading the man page ['apt_preferences(5)'](http://linux.die.net/man/5/apt_preferences)
 

+ 8 - 6
manifests/conf.pp

@@ -1,7 +1,8 @@
 define apt::conf (
-  $content  = undef,
-  $ensure   = present,
-  $priority = '50',
+  $content       = undef,
+  $ensure        = present,
+  $priority      = '50',
+  $notify_update = undef,
 ) {
 
   unless $ensure == 'absent' {
@@ -11,8 +12,9 @@ define apt::conf (
   }
 
   apt::setting { "conf-${name}":
-    ensure   => $ensure,
-    priority => $priority,
-    content  => template('apt/_conf_header.erb', 'apt/conf.erb'),
+    ensure        => $ensure,
+    priority      => $priority,
+    content       => template('apt/_conf_header.erb', 'apt/conf.erb'),
+    notify_update => $notify_update,
   }
 }

+ 4 - 3
manifests/pin.pp

@@ -72,8 +72,9 @@ define apt::pin(
   $file_name = regsubst($title, '[^0-9a-z\-_\.]', '_', 'IG')
 
   apt::setting { "pref-${file_name}":
-    ensure   => $ensure,
-    priority => $order,
-    content  => template('apt/_header.erb', 'apt/pin.pref.erb'),
+    ensure        => $ensure,
+    priority      => $order,
+    content       => template('apt/_header.erb', 'apt/pin.pref.erb'),
+    notify_update => false,
   }
 }

+ 20 - 1
spec/defines/conf_spec.rb

@@ -9,12 +9,15 @@ describe 'apt::conf', :type => :define do
   end
 
   describe "when creating an apt preference" do
-    let :params do
+    let :default_params do
       {
         :priority => '00',
         :content  => "Apt::Install-Recommends 0;\nApt::AutoRemove::InstallRecommends 1;\n"
       }
     end
+    let :params do
+      default_params
+    end
 
     let :filename do
       "/etc/apt/apt.conf.d/00norecommends"
@@ -28,6 +31,22 @@ describe 'apt::conf', :type => :define do
           'mode'      => '0644',
         })
       }
+
+    context "with notify_update = true (default)" do
+      let :params do
+        default_params
+      end
+      it { is_expected.to contain_apt__setting("conf-#{title}").with_notify_update(true) }
+    end
+
+    context "with notify_update = false" do
+      let :params do
+        default_params.merge({
+          :notify_update => false
+        })
+      end
+      it { is_expected.to contain_apt__setting("conf-#{title}").with_notify_update(false) }
+    end
   end
 
   describe "when creating a preference without content" do