aboutsummaryrefslogtreecommitdiffstats
path: root/spec/classes
diff options
context:
space:
mode:
authorEmilien Macchi <emilien@redhat.com>2016-09-19 15:43:46 -0400
committerEmilien Macchi <emilien@redhat.com>2016-09-20 15:21:47 +0000
commit494b9dfe952a47ac4dcc21acdec6c0adacf59a8b (patch)
treea657a6960391e70f4ce1f83963e59579ecf2f821 /spec/classes
parent6a9429eeda549f85fdb7e3748188046d702852fb (diff)
swift: normalize memcache servers IP addresses
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
Diffstat (limited to 'spec/classes')
-rw-r--r--spec/classes/tripleo_profile_base_swift_proxy_spec.rb89
1 files changed, 89 insertions, 0 deletions
diff --git a/spec/classes/tripleo_profile_base_swift_proxy_spec.rb b/spec/classes/tripleo_profile_base_swift_proxy_spec.rb
new file mode 100644
index 0000000..da80950
--- /dev/null
+++ b/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