diff --git a/manifests/cache/cache_server.pp b/manifests/cache.pp similarity index 85% rename from manifests/cache/cache_server.pp rename to manifests/cache.pp index d0a1f7c0..ceb600ec 100644 --- a/manifests/cache/cache_server.pp +++ b/manifests/cache.pp @@ -13,10 +13,12 @@ # License for the specific language governing permissions and limitations # under the License. # -# Memcached node +# == Class: privatecloud::cache +# +# Install a cache server (used by OpenStack services) # -class os_cache_server{ +class privatecloud::cache{ class { 'memcached': listen_ip => $ipaddress_eth0, diff --git a/site.pp b/site.pp index 6c1cd262..c3638f08 100644 --- a/site.pp +++ b/site.pp @@ -20,7 +20,6 @@ import 'params.pp' # Import manifests import 'manifests/automation/*.pp' -import 'manifests/cache/*.pp' import 'manifests/common/*.pp' # mandatory import 'manifests/compute/*.pp' import 'manifests/database/*.pp' @@ -90,7 +89,7 @@ node 'os-ci-test13', 'os-ci-test12', 'os-ci-test11', /mgmt\d+.enovance.com/ inhe class {'os_messaging_server': } # Cache - class {'os_cache_server': } + class {'privatecloud::cache': } # Networking class {'os_network_common': } diff --git a/spec/classes/cache_spec.rb b/spec/classes/cache_spec.rb new file mode 100644 index 00000000..b1e4f474 --- /dev/null +++ b/spec/classes/cache_spec.rb @@ -0,0 +1,55 @@ +# +# Copyright (C) 2013 eNovance SAS +# +# 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. +# +# Unit tests for privatecloud::cache +# + +require 'spec_helper' + +describe 'privatecloud::cache' do + + shared_examples_for 'cache server' do + + it 'configure memcached with some params' do + should contain_class('memcached').with( + :listen_ip => '10.0.0.1', + :max_memory => '60%', + ) + end + end + + context 'on Debian platforms' do + let :facts do + { :osfamily => 'Debian', + :memorysize => '1000 MB', + :processorcount => '1', + :ipaddress_eth0 => '10.0.0.1' } + end + + it_configures 'cache server' + end + + context 'on RedHat platforms' do + let :facts do + { :osfamily => 'RedHat', + :memorysize => '1000 MB', + :processorcount => '1', + :ipaddress_eth0 => '10.0.0.1' } + end + + it_configures 'cache server' + end + +end