diff --git a/.kitchen.yml b/.kitchen.yml index 614cfe96..fa5fead1 100644 --- a/.kitchen.yml +++ b/.kitchen.yml @@ -44,6 +44,7 @@ suites: run_list: - recipe[sensu-test::ensure_group] - recipe[sensu::default] + - recipe[sensu-test::gem_lwrp] - recipe[sensu-test::good_checks] attributes: sensu: diff --git a/CHANGELOG.md b/CHANGELOG.md index a3115358..7dea582a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ cookbook. Please see HISTORY.md for changes from older versions of this project. ## [Unreleased] +### Added +- exposed `package_name` as an optional parameter to the `sensu_gem` resource in case you need to install multiple versions of a gem. (@majormoses) + ## [5.3.0] - 2018-08-19 ### Added - First class support for defining checks via cron syntax (@vbichov) diff --git a/providers/gem.rb b/providers/gem.rb index 86cc91b3..39e3e1cd 100644 --- a/providers/gem.rb +++ b/providers/gem.rb @@ -4,6 +4,7 @@ version new_resource.version source new_resource.source options new_resource.options + package_name new_resource.package_name unless new_resource.package_name.nil? end new_resource.updated_by_last_action(g.updated_by_last_action?) @@ -15,6 +16,7 @@ version new_resource.version source new_resource.source options new_resource.options + package_name new_resource.package_name unless new_resource.package_name.nil? action :upgrade end @@ -25,6 +27,7 @@ g = gem_package new_resource.name do gem_binary Sensu::Helpers.gem_binary version new_resource.version + package_name new_resource.package_name unless new_resource.package_name.nil? action :remove end diff --git a/resources/gem.rb b/resources/gem.rb index 10f74fa5..4b0fa7c7 100644 --- a/resources/gem.rb +++ b/resources/gem.rb @@ -4,3 +4,4 @@ attribute :version, :kind_of => String attribute :source, :kind_of => String attribute :options, :kind_of => [String, Hash] +attribute :package_name, :kind_of => [String, NilClass], :default => nil diff --git a/test/cookbooks/sensu-test/recipes/gem_lwrp.rb b/test/cookbooks/sensu-test/recipes/gem_lwrp.rb index 430b953e..cdb3e8e6 100644 --- a/test/cookbooks/sensu-test/recipes/gem_lwrp.rb +++ b/test/cookbooks/sensu-test/recipes/gem_lwrp.rb @@ -31,6 +31,13 @@ action :install end +# for testing the package proprty +sensu_gem 'sensu-plugins-disk-checks-newer' do + action :install + version '3.1.0' + package_name 'sensu-plugins-disk-checks' +end + # for testing upgrade action with source sensu_gem 'sensu-plugins-memory-checks' do source mem_checks diff --git a/test/integration/default/serverspec/default_spec.rb b/test/integration/default/serverspec/default_spec.rb index 52df3b79..fe09fd61 100644 --- a/test/integration/default/serverspec/default_spec.rb +++ b/test/integration/default/serverspec/default_spec.rb @@ -2,6 +2,8 @@ sensu_pkg_name = windows? ? 'Sensu' : 'sensu' +sensu_gem_bin = '/opt/sensu/embedded/bin/gem' + describe package(sensu_pkg_name) do it { should be_installed } end @@ -11,3 +13,7 @@ its(:content) { should_not match /"id": / } # it { should be_grouped_into('nogroup') } unless windows? end + +describe command("#{sensu_gem_bin} list | grep sensu-plugins-disk-checks") do + its('stdout') { should match(/3\.(\d+).\d+/)} +end