Sort #memcached_servers results
Chef 11 doesn't seem to return sorted results. The results of this method need sorted, to prevent template changes, and unnecessary service restarts. Change-Id: I7b8864515cd2f4140f72d5ac430cd330a530cab2
This commit is contained in:
@@ -2,6 +2,9 @@
|
||||
|
||||
This file is used to list changes made in each version of cookbook-openstack-common.
|
||||
|
||||
## 0.2.3:
|
||||
* Sort the results returned by #memcached_servers
|
||||
|
||||
## 0.2.2:
|
||||
* Provides a mechanism to override memcache_servers search logic through node attributes
|
||||
|
||||
|
||||
@@ -82,9 +82,9 @@ module ::Openstack
|
||||
# role - sets role that is used to filter out memcached nodes
|
||||
def memcached_servers(env=node.chef_environment, role="infra-caching")
|
||||
unless node['openstack']['memcache_servers']
|
||||
search(:node, "chef_environment:#{env} AND roles:#{role}").map do |c_node|
|
||||
"#{c_node['memcached']['listen']}:11211"
|
||||
end
|
||||
search(:node, "chef_environment:#{env} AND roles:#{role}").map do |n|
|
||||
"#{n['memcached']['listen']}:11211"
|
||||
end.sort
|
||||
else
|
||||
node['openstack']['memcache_servers'].length != 0 ?
|
||||
node['openstack']['memcache_servers'] : []
|
||||
|
||||
@@ -4,7 +4,7 @@ maintainer_email "cookbooks@lists.tfoundry.com"
|
||||
license "Apache 2.0"
|
||||
description "Common OpenStack attributes, libraries and recipes."
|
||||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
||||
version "0.2.2"
|
||||
version "0.2.3"
|
||||
|
||||
recipe "openstack-common", "Installs/Configures common recipes"
|
||||
recipe "openstack-common::logging", "Installs/Configures common logging"
|
||||
|
||||
@@ -143,6 +143,18 @@ describe ::Openstack do
|
||||
@subject.memcached_servers("test_env", "test_role").
|
||||
should == ["1.1.1.1:11211", "2.2.2.2:11211"]
|
||||
end
|
||||
it "returns proper pairs sorted" do
|
||||
nodes = [
|
||||
{ "memcached" => { "listen" => "3.3.3.3" }},
|
||||
{ "memcached" => { "listen" => "1.1.1.1" }},
|
||||
{ "memcached" => { "listen" => "2.2.2.2" }},
|
||||
]
|
||||
@subject.stub(:node).and_return @chef_run.node
|
||||
@subject.stub(:search).
|
||||
with(:node, "chef_environment:test_env AND roles:test_role").and_return nodes
|
||||
@subject.memcached_servers("test_env", "test_role").
|
||||
should == ["1.1.1.1:11211", "2.2.2.2:11211", "3.3.3.3:11211"]
|
||||
end
|
||||
it "returns list of servers as defined by attributes" do
|
||||
nodes = {
|
||||
"openstack" => {
|
||||
|
||||
Reference in New Issue
Block a user