Merge "Add posibility to configure Glance backend settings for Glare service"

This commit is contained in:
Jenkins 2016-03-28 21:07:33 +00:00 committed by Gerrit Code Review
commit 035d1e6c71
12 changed files with 237 additions and 10 deletions

View File

@ -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; }
}
}
}

View File

@ -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 {

View File

@ -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':

View File

@ -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; }
}
}
}

View File

@ -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 {

View File

@ -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'; }
}
}
}

View File

@ -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

View File

@ -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

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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