From 7c356e522a70b30bda0f68c9371495f236d8da10 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Fri, 13 Jun 2014 18:48:50 +0200 Subject: [PATCH] RBD: add first unit tests - add tests for Ceph monitor nodes - add tests for Ceph OSD nodes - delete empty files Signed-off-by: Emilien Macchi --- .../cloud_objectstorage_controller_spec.rb | 0 spec/classes/cloud_rbd_monitor_spec.rb | 0 spec/classes/cloud_rbd_osd_spec.rb | 0 spec/classes/cloud_spof_spec.rb | 0 spec/classes/cloud_storage_rbd_mon_spec.rb | 76 ++++++++++++++++++ spec/classes/cloud_storage_rbd_osd_spec.rb | 77 +++++++++++++++++++ 6 files changed, 153 insertions(+) delete mode 100644 spec/classes/cloud_objectstorage_controller_spec.rb delete mode 100644 spec/classes/cloud_rbd_monitor_spec.rb delete mode 100644 spec/classes/cloud_rbd_osd_spec.rb delete mode 100644 spec/classes/cloud_spof_spec.rb create mode 100644 spec/classes/cloud_storage_rbd_mon_spec.rb create mode 100644 spec/classes/cloud_storage_rbd_osd_spec.rb diff --git a/spec/classes/cloud_objectstorage_controller_spec.rb b/spec/classes/cloud_objectstorage_controller_spec.rb deleted file mode 100644 index e69de29b..00000000 diff --git a/spec/classes/cloud_rbd_monitor_spec.rb b/spec/classes/cloud_rbd_monitor_spec.rb deleted file mode 100644 index e69de29b..00000000 diff --git a/spec/classes/cloud_rbd_osd_spec.rb b/spec/classes/cloud_rbd_osd_spec.rb deleted file mode 100644 index e69de29b..00000000 diff --git a/spec/classes/cloud_spof_spec.rb b/spec/classes/cloud_spof_spec.rb deleted file mode 100644 index e69de29b..00000000 diff --git a/spec/classes/cloud_storage_rbd_mon_spec.rb b/spec/classes/cloud_storage_rbd_mon_spec.rb new file mode 100644 index 00000000..e36dd729 --- /dev/null +++ b/spec/classes/cloud_storage_rbd_mon_spec.rb @@ -0,0 +1,76 @@ +# +# Copyright (C) 2014 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 cloud::storage::rbd::monitor class +# + +require 'spec_helper' + +describe 'cloud::storage::rbd::monitor' do + + shared_examples_for 'ceph monitor' do + + let :pre_condition do + "class { 'cloud::storage::rbd': + fsid => '123', + cluster_network => '10.0.0.0/24', + public_network => '192.168.0.0/24' }" + end + + let :params do + { :mon_addr => '10.0.0.1', + :monitor_secret => 'secret' } + end + + it 'configure ceph common' do + should contain_class('ceph::conf').with( + :fsid => '123', + :auth_type => 'cephx', + :cluster_network => '10.0.0.0/24', + :public_network => '192.168.0.0/24', + :enable_service => true + ) + end + + it 'configure ceph mon' do + should contain_ceph__mon('123').with( + :monitor_secret => 'secret', + :mon_port => '6789', + :mon_addr => '10.0.0.1' + ) + end + + end + + context 'on Debian platforms' do + let :facts do + { :osfamily => 'Debian', + :concat_basedir => '/var/lib/puppet/concat', + :uniqueid => '123' } + end + + it_configures 'ceph monitor' + end + + context 'on RedHat platforms' do + let :facts do + { :osfamily => 'RedHat', + :concat_basedir => '/var/lib/puppet/concat', + :uniqueid => '123' } + end + it_configures 'ceph monitor' + end + +end diff --git a/spec/classes/cloud_storage_rbd_osd_spec.rb b/spec/classes/cloud_storage_rbd_osd_spec.rb new file mode 100644 index 00000000..c7d9a8dd --- /dev/null +++ b/spec/classes/cloud_storage_rbd_osd_spec.rb @@ -0,0 +1,77 @@ +# +# Copyright (C) 2014 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 cloud::storage::rbd::osd class +# + +require 'spec_helper' + +describe 'cloud::storage::rbd::osd' do + + shared_examples_for 'ceph osd' do + + let :pre_condition do + "class { 'cloud::storage::rbd': + fsid => '123', + cluster_network => '10.0.0.0/24', + public_network => '192.168.0.0/24' }" + end + + let :params do + { :public_address => '10.0.0.1', + :cluster_address => '192.168.0.1', + :devices => ['sdb','sdc','sdd'] } + end + + it 'configure ceph common' do + should contain_class('ceph::conf').with( + :fsid => '123', + :auth_type => 'cephx', + :cluster_network => '10.0.0.0/24', + :public_network => '192.168.0.0/24', + :enable_service => true + ) + end + + it 'configure ceph osd' do + should contain_class('ceph::osd').with( + :public_address => '10.0.0.1', + :cluster_address => '192.168.0.1' + ) + should contain_ceph__osd__device('/dev/sdb','/dev/sdc','/dev/sdd') + end + + end + + context 'on Debian platforms' do + let :facts do + { :osfamily => 'Debian', + :concat_basedir => '/var/lib/puppet/concat', + :uniqueid => '123' } + end + + it_configures 'ceph osd' + end + + context 'on RedHat platforms' do + let :facts do + { :osfamily => 'RedHat', + :concat_basedir => '/var/lib/puppet/concat', + :uniqueid => '123' } + end + it_configures 'ceph osd' + end + +end