diff --git a/CHANGELOG.md b/CHANGELOG.md index 23e75638..2602ebe9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ This file is used to list changes made in each version of cookbook-openstack-common. +## 0.3.4: +* Allow `#search_for` to always returns an array. + ## 0.3.3: * Incorrectly mocked search results, as a result `#search_for` was performing unnecessary actions to an array. diff --git a/libraries/search.rb b/libraries/search.rb index a316dc2a..fc8a1e53 100644 --- a/libraries/search.rb +++ b/libraries/search.rb @@ -25,7 +25,8 @@ module ::Openstack def search_for role, &block query = "chef_environment:#{node.chef_environment} AND roles:#{role}" - search(:node, query, &block) + resp = search(:node, query, &block) + resp ? resp : [] end # Returns the value for ["openstack"]["memcached_servers"] when diff --git a/spec/search_spec.rb b/spec/search_spec.rb index 40bac3c9..7bcfe7f4 100644 --- a/spec/search_spec.rb +++ b/spec/search_spec.rb @@ -33,6 +33,16 @@ describe ::Openstack do expect(resp).to eq [] end + + it "always returns empty results" do + @subject.stub(:node).and_return @chef_run.node + @subject.stub(:search). + with(:node, "chef_environment:_default AND roles:empty-role"). + and_return nil + resp = @subject.search_for("empty-role") + + expect(resp).to eq [] + end end describe "#memcached_servers" do