From ea0c4d5b515ae0d4810afefd63deb234ed0e762a Mon Sep 17 00:00:00 2001 From: Denis Egorenko Date: Fri, 25 Mar 2016 21:03:49 +0300 Subject: [PATCH] Add posibility to configure Glance backend settings for Glare service This patch adds posibility to configure backend settings for Glare service. Since Glare service is experimental feature, it can be usually disabled for deployment. Hence was added a optional parameter 'glare_enabled' for each backend manifest. So, if Glare is enabled glance glare config will (and should) have same backend options as main glance api config. Change-Id: I112a332f490d2e57eef5fa7d41d465c0eb89da04 Related-bug: #1555697 --- manifests/backend/cinder.pp | 30 +++++++++++++++++-- manifests/backend/file.pp | 17 ++++++++++- manifests/backend/rbd.pp | 19 +++++++++++- manifests/backend/s3.pp | 32 +++++++++++++++++++-- manifests/backend/swift.pp | 25 +++++++++++++++- manifests/backend/vsphere.pp | 23 ++++++++++++++- spec/classes/glance_backend_cinder_spec.rb | 16 ++++++++++- spec/classes/glance_backend_file_spec.rb | 11 ++++++- spec/classes/glance_backend_rbd_spec.rb | 9 ++++++ spec/classes/glance_backend_s3_spec.rb | 26 +++++++++++++++++ spec/classes/glance_backend_swift_spec.rb | 20 +++++++++++++ spec/classes/glance_backend_vsphere_spec.rb | 19 ++++++++++++ 12 files changed, 237 insertions(+), 10 deletions(-) diff --git a/manifests/backend/cinder.pp b/manifests/backend/cinder.pp index 1e43ee1a..d2ed2f88 100644 --- a/manifests/backend/cinder.pp +++ b/manifests/backend/cinder.pp @@ -56,7 +56,10 @@ # (optional) Boolean describing if multiple backends will be configured # Defaults to false # - +# [*glare_enabled*] +# (optional) Whether enabled Glance Glare API. +# Defaults to false +# class glance::backend::cinder( $os_region_name = undef, $cinder_ca_certificates_file = undef, @@ -65,7 +68,7 @@ class glance::backend::cinder( $cinder_endpoint_template = undef, $cinder_http_retries = '3', $multi_store = false, - + $glare_enabled = false, ) { if $os_region_name { @@ -80,6 +83,9 @@ class glance::backend::cinder( if !$multi_store { glance_api_config { 'glance_store/default_store': value => 'cinder'; } + if $glare_enabled { + glance_glare_config { 'glance_store/default_store': value => 'cinder'; } + } } glance_cache_config { @@ -88,20 +94,40 @@ class glance::backend::cinder( 'glance_store/cinder_http_retries': value => $cinder_http_retries; } + if $glare_enabled { + glance_glare_config { + 'glance_store/cinder_api_insecure': value => $cinder_api_insecure; + 'glance_store/cinder_catalog_info': value => $cinder_catalog_info; + 'glance_store/cinder_http_retries': value => $cinder_http_retries; + } + } + if $cinder_endpoint_template { glance_api_config { 'glance_store/cinder_endpoint_template': value => $cinder_endpoint_template; } glance_cache_config { 'glance_store/cinder_endpoint_template': value => $cinder_endpoint_template; } + if $glare_enabled { + glance_glare_config { 'glance_store/cinder_endpoint_template': value => $cinder_endpoint_template; } + } } else { glance_api_config { 'glance_store/cinder_endpoint_template': ensure => absent; } glance_cache_config { 'glance_store/cinder_endpoint_template': ensure => absent; } + if $glare_enabled { + glance_glare_config { 'glance_store/cinder_endpoint_template': ensure => absent; } + } } if $cinder_ca_certificates_file { glance_api_config { 'glance_store/cinder_ca_certificates_file': value => $cinder_ca_certificates_file; } glance_cache_config { 'glance_store/cinder_ca_certificates_file': value => $cinder_ca_certificates_file; } + if $glare_enabled { + glance_glare_config { 'glance_store/cinder_ca_certificates_file': value => $cinder_ca_certificates_file; } + } } else { glance_api_config { 'glance_store/cinder_ca_certificates_file': ensure => absent; } glance_cache_config { 'glance_store/cinder_ca_certificates_file': ensure => absent; } + if $glare_enabled { + glance_glare_config { 'glance_store/cinder_ca_certificates_file': ensure => absent; } + } } } diff --git a/manifests/backend/file.pp b/manifests/backend/file.pp index fd9876b1..a251666e 100644 --- a/manifests/backend/file.pp +++ b/manifests/backend/file.pp @@ -13,18 +13,33 @@ # (optional) Boolean describing if multiple backends will be configured # Defaults to false # - +# [*glare_enabled*] +# (optional) Whether enabled Glance Glare API. +# Defaults to false +# class glance::backend::file( $filesystem_store_datadir = '/var/lib/glance/images/', $multi_store = false, + $glare_enabled = false, ) { glance_api_config { 'glance_store/filesystem_store_datadir': value => $filesystem_store_datadir; } + if $glare_enabled { + glance_glare_config { + 'glance_store/filesystem_store_datadir': value => $filesystem_store_datadir; + } + } + if !$multi_store { glance_api_config { 'glance_store/default_store': value => 'file'; } + if $glare_enabled { + glance_glare_config { + 'glance_store/default_store': value => 'file'; + } + } } glance_cache_config { diff --git a/manifests/backend/rbd.pp b/manifests/backend/rbd.pp index bd1daa5f..1f6e13f9 100644 --- a/manifests/backend/rbd.pp +++ b/manifests/backend/rbd.pp @@ -35,7 +35,10 @@ # (optional) Boolean describing if multiple backends will be configured # Defaults to false # - +# [*glare_enabled*] +# (optional) Whether enabled Glance Glare API. +# Defaults to false +# class glance::backend::rbd( $rbd_store_user = undef, $rbd_store_ceph_conf = '/etc/ceph/ceph.conf', @@ -45,6 +48,7 @@ class glance::backend::rbd( $package_ensure = 'present', $rados_connect_timeout = '0', $multi_store = false, + $glare_enabled = false, ) { include ::glance::params @@ -60,8 +64,21 @@ class glance::backend::rbd( 'glance_store/rados_connect_timeout': value => $rados_connect_timeout; } + if $glare_enabled { + glance_glare_config { + 'glance_store/rbd_store_ceph_conf': value => $rbd_store_ceph_conf; + 'glance_store/rbd_store_user': value => $rbd_store_user; + 'glance_store/rbd_store_pool': value => $rbd_store_pool; + 'glance_store/rbd_store_chunk_size': value => $rbd_store_chunk_size; + 'glance_store/rados_connect_timeout': value => $rados_connect_timeout; + } + } + if !$multi_store { glance_api_config { 'glance_store/default_store': value => 'rbd'; } + if $glare_enabled { + glance_glare_config { 'glance_store/default_store': value => 'rbd'; } + } } package { 'python-ceph': diff --git a/manifests/backend/s3.pp b/manifests/backend/s3.pp index 6ffd49ac..2a175ca3 100644 --- a/manifests/backend/s3.pp +++ b/manifests/backend/s3.pp @@ -50,6 +50,10 @@ # (optional) Boolean describing if multiple backends will be configured # Defaults to false # +# [*glare_enabled*] +# (optional) Whether enabled Glance Glare API. +# Defaults to false +# # === deprecated parameters: # # [*default_store*] @@ -68,6 +72,7 @@ class glance::backend::s3( $object_buffer_dir = undef, $thread_pools = 10, $multi_store = false, + $glare_enabled = false, # deprecated parameters $default_store = undef, ) { @@ -96,14 +101,37 @@ class glance::backend::s3( 'glance_store/s3_store_thread_pools': value => $thread_pools; } + if $glare_enabled { + glance_glare_config { + 'glance_store/s3_store_access_key': value => $access_key; + 'glance_store/s3_store_secret_key': value => $secret_key; + 'glance_store/s3_store_host': value => $host; + 'glance_store/s3_store_bucket': value => $bucket; + 'glance_store/s3_store_bucket_url_format': value => $bucket_url_format; + 'glance_store/s3_store_create_bucket_on_put': value => $create_bucket_on_put; + 'glance_store/s3_store_large_object_size': value => $large_object_size; + 'glance_store/s3_store_large_object_chunk_size': value => $large_object_chunk_size; + 'glance_store/s3_store_thread_pools': value => $thread_pools; + } + } + if !$multi_store { glance_api_config { 'glance_store/default_store': value => 's3'; } + if $glare_enabled { + glance_glare_config { 'glance_store/default_store': value => 's3'; } + } } if $object_buffer_dir { - glance_api_config { 'glance_store/s3_store_object_buffer_dir': value => $object_buffer_dir; } + glance_api_config { 'glance_store/s3_store_object_buffer_dir': value => $object_buffer_dir; } + if $glare_enabled { + glance_glare_config { 'glance_store/s3_store_object_buffer_dir': value => $object_buffer_dir; } + } } else { - glance_api_config { 'glance_store/s3_store_object_buffer_dir': ensure => absent; } + glance_api_config { 'glance_store/s3_store_object_buffer_dir': ensure => absent; } + if $glare_enabled { + glance_glare_config { 'glance_store/s3_store_object_buffer_dir': ensure => absent; } + } } } diff --git a/manifests/backend/swift.pp b/manifests/backend/swift.pp index 7fdfff82..d1b7406e 100644 --- a/manifests/backend/swift.pp +++ b/manifests/backend/swift.pp @@ -42,7 +42,10 @@ # (optional) Boolean describing if multiple backends will be configured # Defaults to false # - +# [*glare_enabled*] +# (optional) Whether enabled Glance Glare API. +# Defaults to false +# class glance::backend::swift( $swift_store_user, $swift_store_key, @@ -55,6 +58,7 @@ class glance::backend::swift( $swift_store_region = undef, $default_swift_reference = 'ref1', $multi_store = false, + $glare_enabled = false, ) { glance_api_config { @@ -71,8 +75,27 @@ class glance::backend::swift( 'glance_store/default_swift_reference': value => $default_swift_reference; } + if $glare_enabled { + glance_glare_config { + 'glance_store/swift_store_region': value => $swift_store_region; + 'glance_store/swift_store_container': value => $swift_store_container; + 'glance_store/swift_store_create_container_on_put': + value => $swift_store_create_container_on_put; + 'glance_store/swift_store_large_object_size': + value => $swift_store_large_object_size; + 'glance_store/swift_store_endpoint_type': + value => $swift_store_endpoint_type; + + 'glance_store/swift_store_config_file': value => '/etc/glance/glance-swift.conf'; + 'glance_store/default_swift_reference': value => $default_swift_reference; + } + } + if !$multi_store { glance_api_config { 'glance_store/default_store': value => 'swift'; } + if $glare_enabled { + glance_glare_config { 'glance_store/default_store': value => 'swift'; } + } } glance_swift_config { diff --git a/manifests/backend/vsphere.pp b/manifests/backend/vsphere.pp index b73ea873..5e1f0b2a 100644 --- a/manifests/backend/vsphere.pp +++ b/manifests/backend/vsphere.pp @@ -61,7 +61,10 @@ # (optional) Boolean describing if multiple backends will be configured # Defaults to false # - +# [*glare_enabled*] +# (optional) Whether enabled Glance Glare API. +# Defaults to false +# class glance::backend::vsphere( $vcenter_host, $vcenter_user, @@ -73,6 +76,7 @@ class glance::backend::vsphere( $vcenter_task_poll_interval = '5', $vcenter_api_retry_count = '10', $multi_store = false, + $glare_enabled = false, ) { glance_api_config { @@ -87,7 +91,24 @@ class glance::backend::vsphere( 'glance_store/vmware_datacenter_path': value => $vcenter_datacenter; } + if $glare_enabled { + glance_glare_config { + 'glance_store/vmware_api_insecure': value => $vcenter_api_insecure; + 'glance_store/vmware_server_host': value => $vcenter_host; + 'glance_store/vmware_server_username': value => $vcenter_user; + 'glance_store/vmware_server_password': value => $vcenter_password; + 'glance_store/vmware_datastore_name': value => $vcenter_datastore; + 'glance_store/vmware_store_image_dir': value => $vcenter_image_dir; + 'glance_store/vmware_task_poll_interval': value => $vcenter_task_poll_interval; + 'glance_store/vmware_api_retry_count': value => $vcenter_api_retry_count; + 'glance_store/vmware_datacenter_path': value => $vcenter_datacenter; + } + } + if !$multi_store { glance_api_config { 'glance_store/default_store': value => 'vsphere'; } + if $glare_enabled { + glance_glare_config { 'glance_store/default_store': value => 'vsphere'; } + } } } diff --git a/spec/classes/glance_backend_cinder_spec.rb b/spec/classes/glance_backend_cinder_spec.rb index 454cca94..b8ccbf26 100644 --- a/spec/classes/glance_backend_cinder_spec.rb +++ b/spec/classes/glance_backend_cinder_spec.rb @@ -46,6 +46,13 @@ describe 'glance::backend::cinder' do is_expected.to contain_glance_cache_config('glance_store/cinder_ca_certificates_file').with(:ensure => 'absent') is_expected.to contain_glance_cache_config('glance_store/cinder_endpoint_template').with(:ensure => 'absent') end + it 'not configures glance-glare.conf' do + is_expected.to_not contain_glance_glare_config('glance_store/cinder_api_insecure').with_value(false) + is_expected.to_not contain_glance_glare_config('glance_store/cinder_catalog_info').with_value('volume:cinder:publicURL') + is_expected.to_not contain_glance_glare_config('glance_store/cinder_http_retries').with_value('3') + is_expected.to_not contain_glance_glare_config('glance_store/cinder_ca_certificates_file').with(:ensure => 'absent') + is_expected.to_not contain_glance_glare_config('glance_store/cinder_endpoint_template').with(:ensure => 'absent') + end end context 'when overriding parameters' do @@ -56,6 +63,7 @@ describe 'glance::backend::cinder' do :cinder_catalog_info => 'volume:cinder:internalURL', :cinder_endpoint_template => 'http://srv-foo:8776/v1/%(project_id)s', :cinder_http_retries => '10', + :glare_enabled => true, } end it 'configures glance-api.conf' do @@ -72,8 +80,14 @@ describe 'glance::backend::cinder' do is_expected.to contain_glance_cache_config('glance_store/cinder_endpoint_template').with_value('http://srv-foo:8776/v1/%(project_id)s') is_expected.to contain_glance_cache_config('glance_store/cinder_http_retries').with_value('10') end + it 'configures glance-glare.conf' do + is_expected.to contain_glance_glare_config('glance_store/cinder_api_insecure').with_value(true) + is_expected.to contain_glance_glare_config('glance_store/cinder_ca_certificates_file').with_value('/etc/ssh/ca.crt') + is_expected.to contain_glance_glare_config('glance_store/cinder_catalog_info').with_value('volume:cinder:internalURL') + is_expected.to contain_glance_glare_config('glance_store/cinder_endpoint_template').with_value('http://srv-foo:8776/v1/%(project_id)s') + is_expected.to contain_glance_glare_config('glance_store/cinder_http_retries').with_value('10') + end end - end diff --git a/spec/classes/glance_backend_file_spec.rb b/spec/classes/glance_backend_file_spec.rb index a71b130c..d5d46a3d 100644 --- a/spec/classes/glance_backend_file_spec.rb +++ b/spec/classes/glance_backend_file_spec.rb @@ -12,9 +12,14 @@ describe 'glance::backend::file' do is_expected.to contain_glance_cache_config('glance_store/filesystem_store_datadir').with_value('/var/lib/glance/images/') end + it 'configures glance-glare.conf' do + is_expected.to_not contain_glance_glare_config('glance_store/filesystem_store_datadir').with_value('/tmp/') + end + describe 'when overriding datadir' do let :params do - {:filesystem_store_datadir => '/tmp/'} + {:filesystem_store_datadir => '/tmp/', + :glare_enabled => true,} end it 'configures glance-api.conf' do @@ -24,6 +29,10 @@ describe 'glance::backend::file' do it 'configures glance-cache.conf' do is_expected.to contain_glance_cache_config('glance_store/filesystem_store_datadir').with_value('/tmp/') end + + it 'configures glance-glare.conf' do + is_expected.to contain_glance_glare_config('glance_store/filesystem_store_datadir').with_value('/tmp/') + end end end diff --git a/spec/classes/glance_backend_rbd_spec.rb b/spec/classes/glance_backend_rbd_spec.rb index eba29fad..508fc94d 100644 --- a/spec/classes/glance_backend_rbd_spec.rb +++ b/spec/classes/glance_backend_rbd_spec.rb @@ -20,6 +20,11 @@ describe 'glance::backend::rbd' do it { is_expected.to contain_glance_api_config('glance_store/rbd_store_chunk_size').with_value('8') } it { is_expected.to contain_glance_api_config('glance_store/rados_connect_timeout').with_value('0')} + it { is_expected.to_not contain_glance_glare_config('glance_store/default_store').with_value('rbd') } + it { is_expected.to_not contain_glance_glare_config('glance_store/rbd_store_pool').with_value('images') } + it { is_expected.to_not contain_glance_glare_config('glance_store/rbd_store_ceph_conf').with_value('/etc/ceph/ceph.conf') } + it { is_expected.to_not contain_glance_glare_config('glance_store/rbd_store_chunk_size').with_value('8') } + it { is_expected.to_not contain_glance_glare_config('glance_store/rados_connect_timeout').with_value('0')} it { is_expected.to contain_package('python-ceph').with( :name => 'python-ceph', :ensure => 'present' @@ -34,11 +39,15 @@ describe 'glance::backend::rbd' do :rbd_store_chunk_size => '2', :package_ensure => 'latest', :rados_connect_timeout => '30', + :glare_enabled => true, } end it { is_expected.to contain_glance_api_config('glance_store/rbd_store_user').with_value('user') } it { is_expected.to contain_glance_api_config('glance_store/rbd_store_chunk_size').with_value('2') } it { is_expected.to contain_glance_api_config('glance_store/rados_connect_timeout').with_value('30')} + it { is_expected.to contain_glance_glare_config('glance_store/rbd_store_user').with_value('user') } + it { is_expected.to contain_glance_glare_config('glance_store/rbd_store_chunk_size').with_value('2') } + it { is_expected.to contain_glance_glare_config('glance_store/rados_connect_timeout').with_value('30')} it { is_expected.to contain_package('python-ceph').with( :name => 'python-ceph', :ensure => 'latest' diff --git a/spec/classes/glance_backend_s3_spec.rb b/spec/classes/glance_backend_s3_spec.rb index 570232ce..b042463c 100644 --- a/spec/classes/glance_backend_s3_spec.rb +++ b/spec/classes/glance_backend_s3_spec.rb @@ -26,6 +26,19 @@ describe 'glance::backend::s3' do is_expected.to contain_glance_api_config('glance_store/s3_store_object_buffer_dir').with_value(nil) is_expected.to contain_glance_api_config('glance_store/s3_store_thread_pools').with_value('10') end + it 'not configures glance-glare.conf' do + is_expected.to_not contain_glance_glare_config('glance_store/default_store').with_value('s3') + is_expected.to_not contain_glance_glare_config('glance_store/s3_store_access_key').with_value('access') + is_expected.to_not contain_glance_glare_config('glance_store/s3_store_secret_key').with_value('secret') + is_expected.to_not contain_glance_glare_config('glance_store/s3_store_host').with_value('host') + is_expected.to_not contain_glance_glare_config('glance_store/s3_store_bucket').with_value('bucket') + is_expected.to_not contain_glance_glare_config('glance_store/s3_store_bucket_url_format').with_value('subdomain') + is_expected.to_not contain_glance_glare_config('glance_store/s3_store_create_bucket_on_put').with_value('false') + is_expected.to_not contain_glance_glare_config('glance_store/s3_store_large_object_size').with_value('100') + is_expected.to_not contain_glance_glare_config('glance_store/s3_store_large_object_chunk_size').with_value('10') + is_expected.to_not contain_glance_glare_config('glance_store/s3_store_object_buffer_dir').with_value(nil) + is_expected.to_not contain_glance_glare_config('glance_store/s3_store_thread_pools').with_value('10') + end end @@ -42,6 +55,7 @@ describe 'glance::backend::s3' do :large_object_chunk_size => 20, :object_buffer_dir => '/tmp', :thread_pools => 20, + :glare_enabled => true, } end @@ -58,6 +72,18 @@ describe 'glance::backend::s3' do is_expected.to contain_glance_api_config('glance_store/s3_store_thread_pools').with_value('20') end + it 'configures glance-glare.conf' do + is_expected.to contain_glance_glare_config('glance_store/s3_store_access_key').with_value('access2') + is_expected.to contain_glance_glare_config('glance_store/s3_store_secret_key').with_value('secret2') + is_expected.to contain_glance_glare_config('glance_store/s3_store_host').with_value('host2') + is_expected.to contain_glance_glare_config('glance_store/s3_store_bucket').with_value('bucket2') + is_expected.to contain_glance_glare_config('glance_store/s3_store_bucket_url_format').with_value('path') + is_expected.to contain_glance_glare_config('glance_store/s3_store_create_bucket_on_put').with_value('true') + is_expected.to contain_glance_glare_config('glance_store/s3_store_large_object_size').with_value('200') + is_expected.to contain_glance_glare_config('glance_store/s3_store_large_object_chunk_size').with_value('20') + is_expected.to contain_glance_glare_config('glance_store/s3_store_object_buffer_dir').with_value('/tmp') + is_expected.to contain_glance_glare_config('glance_store/s3_store_thread_pools').with_value('20') + end end describe 'with invalid bucket_url_format' do diff --git a/spec/classes/glance_backend_swift_spec.rb b/spec/classes/glance_backend_swift_spec.rb index a89910e2..e9ddd69f 100644 --- a/spec/classes/glance_backend_swift_spec.rb +++ b/spec/classes/glance_backend_swift_spec.rb @@ -30,6 +30,16 @@ describe 'glance::backend::swift' do is_expected.to contain_glance_swift_config('ref1/auth_address').with_value('http://127.0.0.1:5000/v2.0/') end + it 'not configures glance-glare.conf' do + is_expected.to_not contain_glance_glare_config('glance_store/default_store').with_value('swift') + is_expected.to_not contain_glance_glare_config('glance_store/swift_store_large_object_size').with_value('5120') + is_expected.to_not contain_glance_glare_config('glance_store/swift_store_container').with_value('glance') + is_expected.to_not contain_glance_glare_config('glance_store/swift_store_create_container_on_put').with_value(false) + is_expected.to_not contain_glance_glare_config('glance_store/swift_store_endpoint_type').with_value('internalURL') + is_expected.to_not contain_glance_glare_config('glance_store/swift_store_region').with_value(nil) + is_expected.to_not contain_glance_glare_config('glance_store/swift_store_config_file').with_value('/etc/glance/glance-swift.conf') + is_expected.to_not contain_glance_glare_config('glance_store/default_swift_reference').with_value('ref1') + end end describe 'when overriding parameters' do @@ -45,6 +55,7 @@ describe 'glance::backend::swift' do :swift_store_endpoint_type => 'publicURL', :swift_store_region => 'RegionTwo', :default_swift_reference => 'swift_creds', + :glare_enabled => true, } end @@ -60,6 +71,15 @@ describe 'glance::backend::swift' do is_expected.to contain_glance_swift_config('swift_creds/auth_version').with_value('1') is_expected.to contain_glance_swift_config('swift_creds/auth_address').with_value('127.0.0.2:8080/v1.0/') end + + it 'configures glance-glare.conf' do + is_expected.to contain_glance_glare_config('glance_store/swift_store_container').with_value('swift') + is_expected.to contain_glance_glare_config('glance_store/swift_store_create_container_on_put').with_value(true) + is_expected.to contain_glance_glare_config('glance_store/swift_store_large_object_size').with_value('100') + is_expected.to contain_glance_glare_config('glance_store/swift_store_endpoint_type').with_value('publicURL') + is_expected.to contain_glance_glare_config('glance_store/swift_store_region').with_value('RegionTwo') + is_expected.to contain_glance_glare_config('glance_store/default_swift_reference').with_value('swift_creds') + end end end diff --git a/spec/classes/glance_backend_vsphere_spec.rb b/spec/classes/glance_backend_vsphere_spec.rb index 1ae9bebc..2b8f9b48 100644 --- a/spec/classes/glance_backend_vsphere_spec.rb +++ b/spec/classes/glance_backend_vsphere_spec.rb @@ -51,6 +51,18 @@ describe 'glance::backend::vsphere' do is_expected.to contain_glance_api_config('glance_store/vmware_api_retry_count').with_value('10') is_expected.to contain_glance_api_config('glance_store/vmware_datacenter_path').with_value('Datacenter') end + it 'not configures glance-glare.conf' do + is_expected.to_not contain_glance_glare_config('glance_store/default_store').with_value('vsphere') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_api_insecure').with_value('False') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_server_host').with_value('10.0.0.1') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_server_username').with_value('root') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_server_password').with_value('123456') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_datastore_name').with_value('Datastore') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_store_image_dir').with_value('/openstack_glance') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_task_poll_interval').with_value('5') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_api_retry_count').with_value('10') + is_expected.to_not contain_glance_glare_config('glance_store/vmware_datacenter_path').with_value('Datacenter') + end end context 'when overriding parameters' do @@ -65,6 +77,7 @@ describe 'glance::backend::vsphere' do :vcenter_api_insecure => 'True', :vcenter_task_poll_interval => '6', :vcenter_api_retry_count => '11', + :glare_enabled => true, } end it 'configures glance-api.conf' do @@ -72,6 +85,12 @@ describe 'glance::backend::vsphere' do is_expected.to contain_glance_api_config('glance_store/vmware_task_poll_interval').with_value('6') is_expected.to contain_glance_api_config('glance_store/vmware_api_retry_count').with_value('11') end + + it 'configures glance-glare.conf' do + is_expected.to contain_glance_glare_config('glance_store/vmware_api_insecure').with_value('True') + is_expected.to contain_glance_glare_config('glance_store/vmware_task_poll_interval').with_value('6') + is_expected.to contain_glance_glare_config('glance_store/vmware_api_retry_count').with_value('11') + end end end