]> review.fuel-infra Code Review - puppet-modules/puppetlabs-apt.git/commitdiff
Move Package['python-software-properties'] to apt:ppa
authorThomas Broyer <t.broyer@ltgt.net>
Mon, 2 Apr 2012 07:00:59 +0000 (09:00 +0200)
committerBranan Purvine-Riley <branan@puppetlabs.com>
Fri, 4 May 2012 20:46:08 +0000 (13:46 -0700)
Also updates the apt-update in Apt::Ppa to use $apt::params::provider
instead of aptitude.

manifests/init.pp
manifests/ppa.pp
spec/classes/apt_spec.rb
spec/defines/ppa_spec.rb

index 53e25dca0ec26363a300aca2ef9bf9d10467cded..e41cd3fdee7514b6373603d917638e3a77dbd28e 100644 (file)
@@ -33,10 +33,6 @@ class apt(
 
   validate_bool($purge_sources_list, $purge_sources_list_d)
 
-  if ! defined(Package['python-software-properties']) {
-    package { 'python-software-properties': }
-  }
-
   $sources_list_content = $purge_sources_list ? {
     false => undef,
     true  => "# Repos managed by puppet.\n",
index c0dfaa0f8212b78f46720540cdebe4240c9d5423..dd6ce19e8ed8d95f466c3c311ad2f14a0ccc4e54 100644 (file)
@@ -20,9 +20,14 @@ define apt::ppa(
   $filename_without_ppa = regsubst($filename_without_slashes, '^ppa:','','G')
   $sources_list_d_filename = "${filename_without_ppa}-${release}.list"
 
+  if ! defined(Package['python-software-properties']) {
+    package { 'python-software-properties': }
+  }
+
   exec { "add-apt-repository-${name}":
     command => "/usr/bin/add-apt-repository ${name}",
     creates => "${sources_list_d}/${sources_list_d_filename}",
+    require => Package['python-software-properties'],
     notify  => Exec['apt_update'],
   }
 
index ac626d291ef2d27f746a577268410086bebaec32..d623a5bf7824f8c2d32ec0cc6322b9a23f83549f 100644 (file)
@@ -41,8 +41,6 @@ describe 'apt', :type => :class do
 
       it { should include_class("apt::params") }
 
-      it { should contain_package("python-software-properties") }
-
       it {
         if param_hash[:purge_sources_list]
         should contain_file("sources.list").with({
@@ -128,9 +126,4 @@ describe 'apt', :type => :class do
       end
     end
   end
-
-  describe "it should not error if package['python-software-properties'] is already defined" do
-    let(:pre_condition) { 'package { "python-software-properties": }->Class["Apt"]' }
-    it { should contain_package("python-software-properties") }
-  end
 end
index 18c1a4f91e8c87411c20c98ba00e348c229aa8f1..ab86b93b2e35d0b145f1e601cebd139e7e066a9c 100644 (file)
@@ -18,6 +18,8 @@ describe 'apt::ppa', :type => :define do
         t.sub(/^ppa:/,'').gsub('/','-') << "-" << "#{release}.list"
       end
 
+      it { should contain_package("python-software-properties") }
+
       it { should contain_exec("apt_update").with(
         'command'     => '/usr/bin/apt-get update',
         'refreshonly' => true
@@ -26,8 +28,9 @@ describe 'apt::ppa', :type => :define do
 
       it { should contain_exec("add-apt-repository-#{t}").with(
         'command' => "/usr/bin/add-apt-repository #{t}",
-        'notify'  => "Exec[apt_update]",
-        'creates' => "/etc/apt/sources.list.d/#{filename}"
+        'creates' => "/etc/apt/sources.list.d/#{filename}",
+        'require' => "Package[python-software-properties]",
+        'notify'  => "Exec[apt_update]"
         )
       }
 
@@ -39,6 +42,19 @@ describe 'apt::ppa', :type => :define do
     end
   end
 
+  describe "it should not error if package['python-software-properties'] is already defined" do
+    let :pre_condition do
+       'class {"apt": }' +
+       'package { "python-software-properties": }->Apt::Ppa["ppa"]'
+    end
+    let :facts do
+      {:lsbdistcodename => 'natty'}
+    end
+    let(:title) { "ppa" }
+    let(:release) { "natty" }
+    it { should contain_package("python-software-properties") }
+  end
+
   describe "without Class[apt] should raise a Puppet::Error" do
     let(:release) { "natty" }
     let(:title) { "ppa" }
@@ -49,5 +65,4 @@ describe 'apt::ppa', :type => :define do
     let(:title) { "ppa:" }
     it { expect { should contain_apt__ppa(:release) }.to raise_error(Puppet::Error) }
   end
-
 end