diff --git a/Gemfile b/Gemfile index 6ffa3b35..11c670ac 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,7 @@ source 'https://rubygems.org' group :development, :test do gem 'puppetlabs_spec_helper' - gem 'puppet-lint-param-docs' + gem 'puppet-lint-param-docs', '1.1.0' gem 'metadata-json-lint' gem 'json' gem 'webmock' diff --git a/manifests/compute/hypervisor.pp b/manifests/compute/hypervisor.pp index 241375a7..fe6fc088 100644 --- a/manifests/compute/hypervisor.pp +++ b/manifests/compute/hypervisor.pp @@ -359,18 +359,16 @@ # Configure Ceph keyring Ceph::Key <<| title == $cinder_rbd_user |>> - if defined(Ceph::Key[$cinder_rbd_user]) { - ensure_resource( - 'file', - "/etc/ceph/ceph.client.${cinder_rbd_user}.keyring", { - owner => 'root', - group => 'cephkeyring', - mode => '0440', - require => Ceph::Key[$cinder_rbd_user], - notify => Service['nova-compute'], - } - ) - } + ensure_resource( + 'file', + "/etc/ceph/ceph.client.${cinder_rbd_user}.keyring", { + owner => 'root', + group => 'cephkeyring', + mode => '0440', + require => Ceph::Key[$cinder_rbd_user], + notify => Service['nova-compute'], + } + ) Concat::Fragment <<| title == 'ceph-client-os' |>> } else { diff --git a/manifests/database/sql/mysql.pp b/manifests/database/sql/mysql.pp index 7ec08364..0c1d67e6 100644 --- a/manifests/database/sql/mysql.pp +++ b/manifests/database/sql/mysql.pp @@ -417,7 +417,7 @@ } } # Debian default: { - err "${::osfamily} not supported yet" + fail("${::osfamily} not supported yet") } } diff --git a/manifests/logging/server.pp b/manifests/logging/server.pp index b7bb7c89..bca3a9ad 100644 --- a/manifests/logging/server.pp +++ b/manifests/logging/server.pp @@ -40,7 +40,12 @@ include ::kibana3 include cloud::database::nosql::elasticsearch include cloud::logging::agent - elasticsearch::instance {'fluentd' : } + + # Elasticsearch 1.4 ships with a security setting that prevents Kibana from connecting. + # We need to allow http cors in fluentd instance. + elasticsearch::instance {'fluentd' : + config => { 'http' => { 'cors.enabled' => true } } + } @@haproxy::balancermember{"${::fqdn}-kibana": listening_service => 'kibana', diff --git a/manifests/network.pp b/manifests/network.pp index 0b16f7bc..b4873ab7 100644 --- a/manifests/network.pp +++ b/manifests/network.pp @@ -89,7 +89,7 @@ $core_plugin = 'neutron.plugins.cisco.network_plugin.PluginV2' } default: { - err "${plugin} plugin is not supported." + fail("${plugin} plugin is not supported.") } } diff --git a/manifests/network/controller.pp b/manifests/network/controller.pp index 5e138999..cb79f6c7 100644 --- a/manifests/network/controller.pp +++ b/manifests/network/controller.pp @@ -259,7 +259,7 @@ } default: { - err "${plugin} plugin is not supported." + fail("${plugin} plugin is not supported.") } } diff --git a/manifests/network/vswitch.pp b/manifests/network/vswitch.pp index 10d663d6..0a00ce6c 100644 --- a/manifests/network/vswitch.pp +++ b/manifests/network/vswitch.pp @@ -215,7 +215,7 @@ } default: { - err "${driver} driver is not supported." + fail("${driver} driver is not supported.") } } diff --git a/manifests/object.pp b/manifests/object.pp index 0ad00e70..d7d9e917 100644 --- a/manifests/object.pp +++ b/manifests/object.pp @@ -30,6 +30,4 @@ swift_hash_suffix => $swift_hash_suffix, } - class {'cloud::object::tweaking': } - } diff --git a/manifests/object/storage.pp b/manifests/object/storage.pp index 5d755943..ae19ef7a 100644 --- a/manifests/object/storage.pp +++ b/manifests/object/storage.pp @@ -75,6 +75,8 @@ include 'cloud::object' + include 'cloud::object::tweaking' + class { 'swift::storage': storage_local_net_ip => $storage_eth, } diff --git a/manifests/object/tweaking.pp b/manifests/object/tweaking.pp index 17f54f42..ff5e552b 100644 --- a/manifests/object/tweaking.pp +++ b/manifests/object/tweaking.pp @@ -22,7 +22,7 @@ 'net.ipv4.tcp_tw_recycle' => { value => 1 }, 'net.ipv4.tcp_tw_reuse' => { value => 1 }, 'net.ipv4.tcp_syncookies' => { value => 0 }, - 'net.ipv4.ip_local_port_range' => { value => "1024\t65000" }, + 'net.ipv4.ip_local_port_range' => { value => "10000\t65000" }, 'net.core.netdev_max_backlog' => { value => 300000 }, 'net.ipv4.tcp_sack' => { value => 0 }, } diff --git a/manifests/volume/backend/rbd.pp b/manifests/volume/backend/rbd.pp index cf33d08b..c6115003 100644 --- a/manifests/volume/backend/rbd.pp +++ b/manifests/volume/backend/rbd.pp @@ -84,14 +84,12 @@ # Configure Ceph keyring Ceph::Key <<| title == $rbd_user |>> - if defined(Ceph::Key[$rbd_user]) { - ensure_resource('file', "/etc/ceph/ceph.client.${rbd_user}.keyring", { - owner => 'root', - group => 'cephkeyring', - mode => '0440', - require => Ceph::Key[$rbd_user], - }) - } + ensure_resource('file', "/etc/ceph/ceph.client.${rbd_user}.keyring", { + owner => 'root', + group => 'cephkeyring', + mode => '0440', + require => Ceph::Key[$rbd_user], + }) Concat::Fragment <<| title == 'ceph-client-os' |>> diff --git a/spec/classes/cloud_compute_hypervisor_spec.rb b/spec/classes/cloud_compute_hypervisor_spec.rb index da537049..9a43aa9e 100644 --- a/spec/classes/cloud_compute_hypervisor_spec.rb +++ b/spec/classes/cloud_compute_hypervisor_spec.rb @@ -384,6 +384,11 @@ class { 'cloud::network': :command => 'usermod -a -G cephkeyring nova', :unless => 'groups nova | grep cephkeyring' ) + is_expected.to contain_file('/etc/ceph/ceph.client.cinder.keyring').with({ + 'owner' => 'root', + 'group' => 'cephkeyring', + 'mode' => '0440', + }) end it 'configure libvirt driver' do diff --git a/spec/classes/cloud_logging_server_spec.rb b/spec/classes/cloud_logging_server_spec.rb index c00485e4..f66e7036 100644 --- a/spec/classes/cloud_logging_server_spec.rb +++ b/spec/classes/cloud_logging_server_spec.rb @@ -39,7 +39,9 @@ end it 'configure an elasticsearch instance' do - is_expected.to contain_elasticsearch__instance('fluentd') + is_expected.to contain_elasticsearch__instance('fluentd').with( + :config => { 'http' => { 'cors.enabled' => true } } + ) end context 'with default firewall enabled' do diff --git a/spec/classes/cloud_network_vswitch_spec.rb b/spec/classes/cloud_network_vswitch_spec.rb index 6078ad50..d101b76e 100644 --- a/spec/classes/cloud_network_vswitch_spec.rb +++ b/spec/classes/cloud_network_vswitch_spec.rb @@ -133,7 +133,7 @@ before :each do params.merge!(:driver => 'Something') end - it { should compile.and_raise_error(/Something plugin is not supported./) } + it_raises 'a Puppet::Error', /Something driver is not supported./ end context 'with default firewall enabled' do diff --git a/spec/classes/cloud_object_storage_spec.rb b/spec/classes/cloud_object_storage_spec.rb index 766e2121..f62605ac 100644 --- a/spec/classes/cloud_object_storage_spec.rb +++ b/spec/classes/cloud_object_storage_spec.rb @@ -39,6 +39,10 @@ 'storage_local_net_ip' => '127.0.0.1', }) + is_expected.to contain_sysctl('net.ipv4.ip_local_port_range').with( + :val => "10000\t65000", + ) + is_expected.to contain_swift__storage__server('6000').with({ 'type' => 'object', 'config_file_path' => 'object-server.conf', diff --git a/spec/classes/cloud_volume_storage_spec.rb b/spec/classes/cloud_volume_storage_spec.rb index fcea91db..c7b5f012 100644 --- a/spec/classes/cloud_volume_storage_spec.rb +++ b/spec/classes/cloud_volume_storage_spec.rb @@ -157,6 +157,11 @@ :path => ['/usr/sbin', '/usr/bin', '/bin', '/sbin'], :unless => 'groups cinder | grep cephkeyring' ) + is_expected.to contain_file('/etc/ceph/ceph.client.cinder.keyring').with({ + 'owner' => 'root', + 'group' => 'cephkeyring', + 'mode' => '0440', + }) end end