From 7c47af7d819b9d75d363b657a8bce33c2a6ae25e Mon Sep 17 00:00:00 2001 From: Garrett Honeycutt Date: Fri, 15 Jul 2016 11:34:28 -0700 Subject: [PATCH] Add ability to specify a hash of apt::conf defines --- README.md | 2 ++ manifests/init.pp | 10 +++++++++- spec/classes/apt_spec.rb | 26 ++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 422a862..2c1d3e3 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,8 @@ Main class, includes all other classes. ##### Parameters (all optional) +* `confs`: Creates new `apt::conf` resources. Valid options: a hash to be passed to the [`create_resources` function](https://docs.puppetlabs.com/references/latest/function.html#createresources). Default: {}. + * `keys`: Creates new `apt::key` resources. Valid options: a hash to be passed to the [`create_resources` function](https://docs.puppetlabs.com/references/latest/function.html#createresources). Default: {}. * `ppas`: Creates new `apt::ppa` resources. Valid options: a hash to be passed to the [`create_resources` function](https://docs.puppetlabs.com/references/latest/function.html#createresources). Default: {}. diff --git a/manifests/init.pp b/manifests/init.pp index 2e82502..5664ede 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,5 +1,9 @@ +# == Class: apt # -class apt( +# Manage APT (Advanced Packaging Tool) +# +class apt ( + $confs = {}, $update = {}, $purge = {}, $proxy = {}, @@ -63,6 +67,7 @@ class apt( $_proxy = merge($apt::proxy_defaults, $proxy) + validate_hash($confs) validate_hash($sources) validate_hash($keys) validate_hash($settings) @@ -139,6 +144,9 @@ class apt( notify => Class['apt::update'], } + if $confs { + create_resources('apt::conf', $confs) + } # manage sources if present if $sources { create_resources('apt::source', $sources) diff --git a/spec/classes/apt_spec.rb b/spec/classes/apt_spec.rb index cc2264b..bf539bb 100644 --- a/spec/classes/apt_spec.rb +++ b/spec/classes/apt_spec.rb @@ -177,6 +177,32 @@ describe 'apt' do it { is_expected.to contain_file('/etc/apt/sources.list.d/puppetlabs.list').with_content(/^deb http:\/\/apt.puppetlabs.com precise main$/) } end + context 'with confs defined on valid osfamily' do + let :facts do + { :osfamily => 'Debian', + :lsbdistcodename => 'precise', + :lsbdistid => 'Debian', + :puppetversion => Puppet.version, + } + end + let(:params) { { :confs => { + 'foo' => { + 'content' => 'foo', + }, + 'bar' => { + 'content' => 'bar', + } + } } } + + it { is_expected.to contain_apt__conf('foo').with({ + :content => 'foo', + })} + + it { is_expected.to contain_apt__conf('bar').with({ + :content => 'bar', + })} + end + context 'with keys defined on valid osfamily' do let :facts do { :osfamily => 'Debian', -- 2.32.3