Skip to content
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.

Commit

Permalink
swift: normalize memcache servers IP addresses
Browse files Browse the repository at this point in the history
In the case of memcache servers are IPv6, make sure brackets set in the
way we construct the list of memcache server + memcache port parameter.

Also add unit-tests to test that the output is what we want in the
configuration.

Depends-On: I8d361ce9cfcfe6a3f8592b2b7991971a3c748c75
Closes-Bug: 1625335
Change-Id: I9fb8168d8fb56c9d8465d58a45fd8c6edfee6fdd
  • Loading branch information
EmilienM committed Sep 20, 2016
1 parent 6a9429e commit 494b9df
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .fixtures.yml
Expand Up @@ -4,6 +4,9 @@ fixtures:
'stdlib': 'git://github.com/puppetlabs/puppetlabs-stdlib.git'
'haproxy': 'git://github.com/puppetlabs/puppetlabs-haproxy.git'
'concat': 'git://github.com/puppetlabs/puppetlabs-concat.git'
'openstacklib': 'git://github.com/openstack/puppet-openstacklib.git'
'swift': 'git://github.com/openstack/puppet-swift.git'
'memcached': 'git://github.com/saz/puppet-memcached.git'
'midonet':
repo: 'git://github.com/midonet/puppet-midonet.git'
ref: 'v2015.06.7'
Expand Down
2 changes: 1 addition & 1 deletion manifests/profile/base/swift/proxy.pp
Expand Up @@ -37,7 +37,7 @@
$memcache_port = 11211,
) {
if $step >= 4 {
$swift_memcache_servers = suffix($memcache_servers, ":${memcache_port}")
$swift_memcache_servers = suffix(any2array(normalize_ip_for_uri($memcache_servers)), ":${memcache_port}")
include ::swift::proxy
include ::swift::proxy::proxy_logging
include ::swift::proxy::healthcheck
Expand Down
89 changes: 89 additions & 0 deletions spec/classes/tripleo_profile_base_swift_proxy_spec.rb
@@ -0,0 +1,89 @@
#
# Copyright (C) 2016 Red Hat Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

require 'spec_helper'

describe 'tripleo::profile::base::swift::proxy' do

let :params do
{ }
end

shared_examples_for 'tripleo swift proxy base profile' do

let :pre_condition do
"class { '::swift':
swift_hash_path_prefix => 'foo',
}
include ::memcached
class { '::swift::proxy':
proxy_local_net_ip => '127.0.0.1',
}"
end

context 'with ipv4 memcache servers' do
before :each do
params.merge!(
:step => 4,
:memcache_servers => ['192.168.0.1', '192.168.0.2'],
)
end

it 'configure swift proxy cache with ipv4 ips' do
is_expected.to contain_class('swift::proxy::cache').with({
:memcache_servers => ['192.168.0.1:11211', '192.168.0.2:11211']
})
end
end

context 'with ipv6 memcache servers' do
before :each do
params.merge!(
:step => 4,
:memcache_servers => ['::1', '::2'],
)
end

it 'configure swift proxy cache with ipv6 ips' do
is_expected.to contain_class('swift::proxy::cache').with({
:memcache_servers => ['[::1]:11211', '[::2]:11211']
})
end
end

end

context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian',
:processorcount => 1 }
end

it_configures 'tripleo swift proxy base profile'
end

context 'on RedHat platforms' do
let :facts do
{
:osfamily => 'RedHat',
:operatingsystemrelease => '7.1',
:processorcount => 1,
}
end

it_configures 'tripleo swift proxy base profile'
end

end

0 comments on commit 494b9df

Please sign in to comment.