From: William Van Hevelingen Date: Wed, 8 Feb 2012 19:40:09 +0000 (-0800) Subject: (#12522) Adding purge option to apt class X-Git-Tag: 0.0.1~11^2~1 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=8c279636f5e1bfd3bdda9abe912b8930bbc18a5b;p=puppet-modules%2Fpuppetlabs-apt.git (#12522) Adding purge option to apt class Adds a purge option to the apt class to remove repositories that are not managed by apt::source --- diff --git a/manifests/init.pp b/manifests/init.pp index 8d266b8..b0acdd0 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -15,14 +15,17 @@ # Sample Usage: # class { 'apt': } class apt( - $disable_keys = false, $always_apt_update = false, + $disable_keys = false, $proxy_host = false, - $proxy_port = '8080' + $proxy_port = '8080', + $purge = false ) { include apt::params + validate_bool($purge) + $refresh_only_apt_update = $always_apt_update? { true => false, false => true @@ -36,6 +39,10 @@ class apt( owner => root, group => root, mode => 644, + content => $purge ? { + false => undef, + true => "# Repos managed by puppet.\n", + }, } file { "sources.list.d": @@ -43,6 +50,8 @@ class apt( ensure => directory, owner => root, group => root, + purge => $purge, + recurse => $purge, } exec { "apt_update": diff --git a/spec/classes/apt_spec.rb b/spec/classes/apt_spec.rb index 1c7c18f..294892f 100644 --- a/spec/classes/apt_spec.rb +++ b/spec/classes/apt_spec.rb @@ -3,7 +3,8 @@ describe 'apt', :type => :class do let :default_params do { :disable_keys => false, - :always_apt_update => false + :always_apt_update => false, + :purge => false } end @@ -12,7 +13,8 @@ describe 'apt', :type => :class do :disable_keys => true, :always_apt_update => true, :proxy_host => true, - :proxy_port => '3128' + :proxy_port => '3128', + :purge => true } ].each do |param_set| describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do @@ -37,22 +39,46 @@ describe 'apt', :type => :class do it { should contain_package("python-software-properties") } it { + if param_hash[:purge] should contain_file("sources.list").with({ - 'path' => "/etc/apt/sources.list", - 'ensure' => "present", - 'owner' => "root", - 'group' => "root", - 'mode' => 644 - }) + 'path' => "/etc/apt/sources.list", + 'ensure' => "present", + 'owner' => "root", + 'group' => "root", + 'mode' => 644, + "content" => "# Repos managed by puppet.\n" + }) + else + should contain_file("sources.list").with({ + 'path' => "/etc/apt/sources.list", + 'ensure' => "present", + 'owner' => "root", + 'group' => "root", + 'mode' => 644, + 'content' => nil + }) + end } - it { - should create_file("sources.list.d").with({ - "path" => "/etc/apt/sources.list.d", - "ensure" => "directory", - "owner" => "root", - "group" => "root" - }) + if param_hash[:purge] + should create_file("sources.list.d").with({ + 'path' => "/etc/apt/sources.list.d", + 'ensure' => "directory", + 'owner' => "root", + 'group' => "root", + 'purge' => true, + 'recurse' => true + }) + else + should create_file("sources.list.d").with({ + 'path' => "/etc/apt/sources.list.d", + 'ensure' => "directory", + 'owner' => "root", + 'group' => "root", + 'purge' => false, + 'recurse' => false + }) + end } it {