summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMickaël Canévet <mickael.canevet@camptocamp.com>2015-08-12 15:07:35 +0200
committerMickaël Canévet <mickael.canevet@camptocamp.com>2015-08-12 15:07:35 +0200
commitea07077f8427fc9807b9de8503f2f73dc0f7d1f8 (patch)
tree0de3ee34aa802f0135c2d2bbe38e96dc6d8d6af3
parent2afa04fa07399f66917aa24ee6ca959ea38cc0ac (diff)
parent3e23d677370d44b62495022338b8cc12f42bd30f (diff)
Merge pull request #54 from mcanevet/puppet4
Puppet4
-rw-r--r--manifests/init.pp21
-rw-r--r--manifests/lens.pp6
-rw-r--r--manifests/params.pp7
-rw-r--r--spec/classes/augeas_spec.rb138
-rw-r--r--spec/defines/augeas_lens_spec.rb23
5 files changed, 106 insertions, 89 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
index 653925e..f927fe1 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -14,12 +14,19 @@ class augeas (
$purge = true,
) inherits augeas::params {
- anchor { 'augeas::begin': } ->
- class {'::augeas::packages': } ->
- class {'::augeas::files': } ->
- anchor { 'augeas::end': }
+ if versioncmp($::puppetversion, '4.0.0') >= 0 {
+ anchor { 'augeas::begin': } ->
+ class {'::augeas::files': } ->
+ anchor { 'augeas::end': }
+ } else {
+ anchor { 'augeas::begin': } ->
+ class {'::augeas::packages': } ->
+ class {'::augeas::files': } ->
+ anchor { 'augeas::end': }
+
+ # lint:ignore:spaceship_operator_without_tag
+ Package['ruby-augeas', $augeas::params::augeas_pkgs] -> Augeas <| |>
+ # lint:endignore
+ }
- # lint:ignore:spaceship_operator_without_tag
- Package['ruby-augeas', $augeas::params::augeas_pkgs] -> Augeas <| |>
- # lint:endignore
}
diff --git a/manifests/lens.pp b/manifests/lens.pp
index c7dd6b2..e2c34de 100644
--- a/manifests/lens.pp
+++ b/manifests/lens.pp
@@ -60,10 +60,6 @@ define augeas::lens (
mode => '0644',
}
- Exec {
- path => $::path,
- }
-
if (!$stock_since or versioncmp($::augeasversion, $stock_since) < 0) {
validate_re(
@@ -85,6 +81,7 @@ define augeas::lens (
exec { "Typecheck lens ${name}":
command => "augparse -I ${augeas::lens_dir} ${lens_dest} || (rm -f ${lens_dest} && exit 1)",
+ path => $::path,
refreshonly => true,
subscribe => File[$lens_dest],
}
@@ -101,6 +98,7 @@ define augeas::lens (
exec { "Test lens ${name}":
command => "augparse -I ${augeas::lens_dir} ${test_dest} || (rm -f ${lens_dest} && rm -f ${test_dest} && exit 1)",
+ path => $::path,
refreshonly => true,
subscribe => File[$lens_dest, $test_dest],
}
diff --git a/manifests/params.pp b/manifests/params.pp
index 59023ab..4ca216d 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -3,7 +3,12 @@
# Default parameters for the Augeas module
#
class augeas::params {
- $lens_dir = '/usr/share/augeas/lenses'
+
+ if versioncmp($::puppetversion, '4.0.0') >= 0 {
+ $lens_dir = '/opt/puppetlabs/puppet/share/augeas/lenses'
+ } else {
+ $lens_dir = '/usr/share/augeas/lenses'
+ }
case $::osfamily {
'RedHat': {
diff --git a/spec/classes/augeas_spec.rb b/spec/classes/augeas_spec.rb
index ab4241f..32a390d 100644
--- a/spec/classes/augeas_spec.rb
+++ b/spec/classes/augeas_spec.rb
@@ -5,69 +5,76 @@ describe 'augeas' do
context 'when on an unsupported Operating System' do
let (:facts) do
{
- :osfamily => 'MS-DOS',
+ :osfamily => 'MS-DOS',
+ :puppetversion => Puppet.version,
}
end
it 'should fail' do
- expect { is_expected.to contain_package('ruby-augeas') }.to raise_error(Puppet::Error, /Unsupported OS family/)
+ expect { is_expected.to compile }.to raise_error(/Unsupported OS family/)
end
end
+ lens_dir = Puppet.version < '4.0.0' ? '/usr/share/augeas/lenses' : '/opt/puppetlabs/puppet/share/augeas/lenses'
+
on_supported_os.each do |os, facts|
context "on #{os}" do
let(:facts) do
- facts
+ facts.merge({
+ :puppetversion => Puppet.version,
+ })
end
context 'without params' do
- case facts[:osfamily]
- when 'Debian'
- it { is_expected.to contain_package('libaugeas0').with(
- :ensure => 'present'
- ) }
- it { is_expected.to contain_package('augeas-tools').with(
- :ensure => 'present'
- ) }
- it { is_expected.to contain_package('augeas-lenses').with(
- :ensure => 'present'
- ) }
- case facts[:lsbdistcodename]
- when 'squeeze', 'lucid', 'precise'
- it { is_expected.to contain_package('ruby-augeas').with(
- :ensure => 'present',
- :name => 'libaugeas-ruby1.8'
+ if Puppet.version < '4.0.0'
+ case facts[:osfamily]
+ when 'Debian'
+ it { is_expected.to contain_package('libaugeas0').with(
+ :ensure => 'present'
+ ) }
+ it { is_expected.to contain_package('augeas-tools').with(
+ :ensure => 'present'
+ ) }
+ it { is_expected.to contain_package('augeas-lenses').with(
+ :ensure => 'present'
+ ) }
+ case facts[:lsbdistcodename]
+ when 'squeeze', 'lucid', 'precise'
+ it { is_expected.to contain_package('ruby-augeas').with(
+ :ensure => 'present',
+ :name => 'libaugeas-ruby1.8'
+ ) }
+ else
+ it { is_expected.to contain_package('ruby-augeas').with(
+ :ensure => 'present',
+ :name => 'libaugeas-ruby1.9.1'
+ ) }
+ end
+ when 'RedHat'
+ it { is_expected.to contain_package('augeas').with(
+ :ensure => 'present'
+ ) }
+ it { is_expected.to contain_package('augeas-libs').with(
+ :ensure => 'present'
) }
- else
it { is_expected.to contain_package('ruby-augeas').with(
:ensure => 'present',
- :name => 'libaugeas-ruby1.9.1'
+ :name => 'ruby-augeas'
) }
end
- when 'RedHat'
- it { is_expected.to contain_package('augeas').with(
- :ensure => 'present'
- ) }
- it { is_expected.to contain_package('augeas-libs').with(
- :ensure => 'present'
- ) }
- it { is_expected.to contain_package('ruby-augeas').with(
- :ensure => 'present',
- :name => 'ruby-augeas'
- ) }
end
- it { is_expected.to contain_file('/usr/share/augeas/lenses').with(
+ it { is_expected.to contain_file(lens_dir).with(
:ensure => 'directory',
:purge => 'true',
:force => 'true',
:recurse => 'true',
:recurselimit => 1
) }
- it { is_expected.to contain_file('/usr/share/augeas/lenses/dist').with(
+ it { is_expected.to contain_file("#{lens_dir}/dist").with(
:ensure => 'directory',
:purge => 'false'
) }
- it { is_expected.to contain_file('/usr/share/augeas/lenses/tests').with(
+ it { is_expected.to contain_file("#{lens_dir}/tests").with(
:ensure => 'directory',
:purge => 'true',
:force => 'true'
@@ -82,42 +89,43 @@ describe 'augeas' do
}
end
- case facts[:osfamily]
- when 'Debian'
- it { is_expected.to contain_package('libaugeas0').with(
- :ensure => '1.2.3'
- ) }
- it { is_expected.to contain_package('augeas-tools').with(
- :ensure => '1.2.3'
- ) }
- it { is_expected.to contain_package('augeas-lenses').with(
- :ensure => '1.2.3'
- ) }
- case facts[:lsbdistcodename]
- when 'squeeze', 'lucid', 'precise'
- it { is_expected.to contain_package('ruby-augeas').with(
- :ensure => '3.2.1',
- :name => 'libaugeas-ruby1.8'
+ if Puppet.version < '4.0.0'
+ case facts[:osfamily]
+ when 'Debian'
+ it { is_expected.to contain_package('libaugeas0').with(
+ :ensure => '1.2.3'
+ ) }
+ it { is_expected.to contain_package('augeas-tools').with(
+ :ensure => '1.2.3'
+ ) }
+ it { is_expected.to contain_package('augeas-lenses').with(
+ :ensure => '1.2.3'
+ ) }
+ case facts[:lsbdistcodename]
+ when 'squeeze', 'lucid', 'precise'
+ it { is_expected.to contain_package('ruby-augeas').with(
+ :ensure => '3.2.1',
+ :name => 'libaugeas-ruby1.8'
+ ) }
+ else
+ it { is_expected.to contain_package('ruby-augeas').with(
+ :ensure => '3.2.1',
+ :name => 'libaugeas-ruby1.9.1'
+ ) }
+ end
+ when 'RedHat'
+ it { is_expected.to contain_package('augeas').with(
+ :ensure => '1.2.3'
+ ) }
+ it { is_expected.to contain_package('augeas-libs').with(
+ :ensure => '1.2.3'
) }
- else
it { is_expected.to contain_package('ruby-augeas').with(
:ensure => '3.2.1',
- :name => 'libaugeas-ruby1.9.1'
+ :name => 'ruby-augeas'
) }
end
- when 'RedHat'
- it { is_expected.to contain_package('augeas').with(
- :ensure => '1.2.3'
- ) }
- it { is_expected.to contain_package('augeas-libs').with(
- :ensure => '1.2.3'
- ) }
- it { is_expected.to contain_package('ruby-augeas').with(
- :ensure => '3.2.1',
- :name => 'ruby-augeas'
- ) }
end
-
end
context 'with a non standard lens_dir' do
diff --git a/spec/defines/augeas_lens_spec.rb b/spec/defines/augeas_lens_spec.rb
index 21dfd55..f4e5be7 100644
--- a/spec/defines/augeas_lens_spec.rb
+++ b/spec/defines/augeas_lens_spec.rb
@@ -11,12 +11,12 @@ describe 'augeas::lens' do
end
it 'should error' do
- expect {
- is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug')
- }.to raise_error(Puppet::Error, /You must declare the augeas class/)
+ expect { is_expected.to compile }.to raise_error(/You must declare the augeas class/)
end
end
+ lens_dir = Puppet.version < '4.0.0' ? '/usr/share/augeas/lenses' : '/opt/puppetlabs/puppet/share/augeas/lenses'
+
context 'when declaring augeas class first' do
on_supported_os.each do |os, facts|
@@ -24,6 +24,7 @@ describe 'augeas::lens' do
let(:facts) do
facts.merge({
:augeasversion => :undef,
+ :puppetversion => Puppet.version,
})
end
@@ -35,9 +36,7 @@ describe 'augeas::lens' do
context 'when no lens_source is passed' do
it 'should error' do
- expect {
- is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug')
- }.to raise_error(Puppet::Error, /You must set either \$lens_source or \$lens_content/)
+ expect { is_expected.to compile }.to raise_error(/You must set either \$lens_source or \$lens_content/)
end
end
@@ -48,9 +47,9 @@ describe 'augeas::lens' do
}
end
- it { is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { is_expected.to contain_file("#{lens_dir}/foo.aug") }
it { is_expected.to contain_exec('Typecheck lens foo') }
- it { is_expected.not_to contain_file('/usr/share/augeas/lenses/tests/test_foo.aug') }
+ it { is_expected.not_to contain_file("#{lens_dir}/tests/test_foo.aug") }
it { is_expected.not_to contain_exec('Test lens foo') }
end
@@ -62,9 +61,9 @@ describe 'augeas::lens' do
}
end
- it { is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { is_expected.to contain_file("#{lens_dir}/foo.aug") }
+ it { is_expected.to contain_file("#{lens_dir}/tests/test_foo.aug") }
it { is_expected.to contain_exec('Typecheck lens foo') }
- it { is_expected.to contain_file('/usr/share/augeas/lenses/tests/test_foo.aug') }
it { is_expected.to contain_exec('Test lens foo') }
end
end
@@ -81,7 +80,7 @@ describe 'augeas::lens' do
"class { '::augeas': version => '1.0.0' }"
end
- it { is_expected.to contain_file('/usr/share/augeas/lenses/foo.aug') }
+ it { is_expected.to contain_file("#{lens_dir}/foo.aug") }
it { is_expected.to contain_exec('Typecheck lens foo') }
end
@@ -99,7 +98,7 @@ describe 'augeas::lens' do
it do
pending "undefined method `negative_failure_message'"
- is_expected.not_to contain_file('/usr/share/augeas/lenses/foo.aug')
+ is_expected.not_to contain_file("#{lens_dir}/foo.aug")
end
it do
pending "undefined method `negative_failure_message'"