diff --git a/.fixtures.yml b/.fixtures.yml index 6353b51a..21f4ec4a 100644 --- a/.fixtures.yml +++ b/.fixtures.yml @@ -41,7 +41,7 @@ fixtures: ref: '58682faf74cdfc6c8d921d2be9322368c8a96cf9' 'ceph': repo: 'git://github.com/enovance/puppet-ceph.git' - ref: 'd5de9a5c41c8d3090a1d2e26bb49f15dd23d166d' + ref: 'c50d91a6f790058a2b6975d6e1d6189f7c8b6687' 'concat': repo: 'git://github.com/enovance/puppet-concat.git' ref: '04356974f72b90a1d0f57346a00e95a717924e43' diff --git a/Puppetfile b/Puppetfile index 98064562..b92aaf84 100644 --- a/Puppetfile +++ b/Puppetfile @@ -63,7 +63,7 @@ mod 'boolean', :ref => '157011a4eaa27f1202a9d94335ee4876b26d377e' mod 'ceph', :git => 'git://github.com/enovance/puppet-ceph.git', - :ref => 'd5de9a5c41c8d3090a1d2e26bb49f15dd23d166d' + :ref => 'c50d91a6f790058a2b6975d6e1d6189f7c8b6687' #FIXME mod 'cloud', :git => 'git://github.com/enovance/puppet-openstack-cloud.git', diff --git a/manifests/dashboard.pp b/manifests/dashboard.pp index e5c9fad2..295612c8 100644 --- a/manifests/dashboard.pp +++ b/manifests/dashboard.pp @@ -75,6 +75,11 @@ # Useful when activating SSL binding on HAproxy and not in Horizon. # Defaults to false # +# [*neutron_extra_options*] +# (optional) Enable optional services provided by neutron +# Useful when using cisco n1kv plugin, vpnaas or fwaas. +# Default to {} + class cloud::dashboard( $ks_keystone_internal_host = '127.0.0.1', $secret_key = 'secrete', @@ -94,6 +99,7 @@ class cloud::dashboard( $os_endpoint_type = undef, $allowed_hosts = $::fqdn, $vhost_extra_params = {}, + $neutron_extra_options = {}, ) { # We build the param needed for horizon class @@ -109,7 +115,12 @@ class cloud::dashboard( 'add_listen' => true, 'setenvif' => $setenvif } - $vhost_extra_params_real = merge ($vhost_extra_params, $extra_params) + $vhost_extra_params_real = merge ($extra_params, $vhost_extra_params) + + $neutron_options = { + 'enable_lb' => true + } + $neutron_options_real = merge ($neutron_options, $neutron_extra_options) ensure_resource('class', 'apache', { default_vhost => false @@ -124,9 +135,7 @@ class cloud::dashboard( keystone_url => $keystone_url, cache_server_ip => false, django_debug => $debug, - neutron_options => { - 'enable_lb' => true - }, + neutron_options => $neutron_options_real, listen_ssl => $listen_ssl, horizon_cert => $horizon_cert, horizon_key => $horizon_key, diff --git a/manifests/storage/rbd/osd.pp b/manifests/storage/rbd/osd.pp index e85608cc..16e5d5dc 100644 --- a/manifests/storage/rbd/osd.pp +++ b/manifests/storage/rbd/osd.pp @@ -16,7 +16,7 @@ class cloud::storage::rbd::osd ( $public_address = '127.0.0.1', $cluster_address = '127.0.0.1', - $devices = ['sdb','sdc'], + $devices = ['sdb','/dev/sdc'], ) { include 'cloud::storage::rbd' @@ -26,7 +26,16 @@ class cloud::storage::rbd::osd ( cluster_address => $cluster_address, } - $osd_ceph = prefix($devices,'/dev/') - ceph::osd::device { $osd_ceph: } - + if is_array($devices) { + if '/dev/' in $devices { + ceph::osd::device { $devices: } + } + else { + $osd_ceph = prefix($devices,'/dev/') + ceph::osd::device { $osd_ceph: } + } + } + elsif is_hash($devices) { + create_resources('ceph::osd::device', $devices) + } } diff --git a/spec/classes/cloud_dashboard_spec.rb b/spec/classes/cloud_dashboard_spec.rb index 92e243f7..5dffa024 100644 --- a/spec/classes/cloud_dashboard_spec.rb +++ b/spec/classes/cloud_dashboard_spec.rb @@ -79,6 +79,24 @@ describe 'cloud::dashboard' do end end + context 'with cisco plugin enabled' do + before do + params.merge!( + :neutron_extra_options => { + 'profile_support' => 'cisco' + }) + end + + it 'configure horizon with cisco support' do + is_expected.to contain_class('horizon').with( + :neutron_options => { + 'enable_lb' => true, + 'profile_support' => 'cisco' + }, + ) + end + end + context 'with multiple allowed_hosts' do before do params.merge!(:allowed_hosts => ['horizon.openstack.org', 'vip.openstack.org']) diff --git a/spec/classes/cloud_storage_rbd_osd_spec.rb b/spec/classes/cloud_storage_rbd_osd_spec.rb index a53cc667..b36ed791 100644 --- a/spec/classes/cloud_storage_rbd_osd_spec.rb +++ b/spec/classes/cloud_storage_rbd_osd_spec.rb @@ -31,8 +31,7 @@ describe 'cloud::storage::rbd::osd' do let :params do { :public_address => '10.0.0.1', - :cluster_address => '192.168.0.1', - :devices => ['sdb','sdc','sdd'] } + :cluster_address => '192.168.0.1' } end it 'configure ceph common' do @@ -50,7 +49,16 @@ describe 'cloud::storage::rbd::osd' do :public_address => '10.0.0.1', :cluster_address => '192.168.0.1' ) - is_expected.to contain_ceph__osd__device('/dev/sdb','/dev/sdc','/dev/sdd') + end + + context 'without specified journal' do + before :each do + params.merge!( :devices => ['sdb','sdc','sdd'] ) + end + + it 'configure ceph osd with a mixed full-qualified and short device name' do + is_expected.to contain_ceph__osd__device('/dev/sdb','/dev/sdc','sdd') + end end end @@ -61,7 +69,6 @@ describe 'cloud::storage::rbd::osd' do :concat_basedir => '/var/lib/puppet/concat', :uniqueid => '123' } end - it_configures 'ceph osd' end