Support more file backend parameters
This change improves coverage of the file backend parameters. Because the filesystem_store_datadirs parameter is MultiStrOpt, support for MultiStrOpt is also introduced to the glance_cache_config resource type. Change-Id: I5785605bf4224c0f189fd7700d5a9b05def058e8
This commit is contained in:
parent
a221b72918
commit
aaa352a3af
@ -1,6 +1,6 @@
|
||||
Puppet::Type.type(:glance_cache_config).provide(
|
||||
:ini_setting,
|
||||
:parent => Puppet::Type.type(:openstack_config).provider(:ini_setting)
|
||||
:openstackconfig,
|
||||
:parent => Puppet::Type.type(:openstack_config).provider(:ruby)
|
||||
) do
|
||||
|
||||
def self.file_path
|
@ -7,14 +7,22 @@ Puppet::Type.newtype(:glance_cache_config) do
|
||||
newvalues(/\S+\/\S+/)
|
||||
end
|
||||
|
||||
newproperty(:value) do
|
||||
newproperty(:value, :array_matching => :all) do
|
||||
desc 'The value of the setting to be defined.'
|
||||
def insync?(is)
|
||||
return true if @should.empty?
|
||||
return false unless is.is_a? Array
|
||||
return false unless is.length == @should.length
|
||||
return (
|
||||
is & @should == is or
|
||||
is & @should.map(&:to_s) == is
|
||||
)
|
||||
end
|
||||
munge do |value|
|
||||
value = value.to_s.strip
|
||||
value.capitalize! if value =~ /^(true|false)$/i
|
||||
value
|
||||
end
|
||||
newvalues(/^[\S ]*$/)
|
||||
|
||||
def is_to_s( currentvalue )
|
||||
if resource.secret?
|
||||
|
@ -20,7 +20,26 @@
|
||||
# === Parameters:
|
||||
#
|
||||
# [*filesystem_store_datadir*]
|
||||
# Location where dist images are stored when the backend type is file.
|
||||
# (optional) Directory where dist images are stored.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*filesystem_store_datadirs*]
|
||||
# (optional) List of directories where dist images are stored. When using
|
||||
# multiple directoris, each directory can be given an optional priority,
|
||||
# which is an integer that is concatenated to the directory path with
|
||||
# a colon.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*filesystem_store_metadata_file*]
|
||||
# (optional) Filesystem store metadata file.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*filesystem_store_file_perm*]
|
||||
# (optional) File access permissions for the image files.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*filesystem_store_chunk_size*]
|
||||
# (optional) Chunk size, in bytes.
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
# [*filesystem_thin_provisioning*]
|
||||
@ -33,20 +52,33 @@
|
||||
# Defaults to $::os_service_default.
|
||||
#
|
||||
define glance::backend::multistore::file(
|
||||
$filesystem_store_datadir = $::os_service_default,
|
||||
$filesystem_thin_provisioning = $::os_service_default,
|
||||
$store_description = $::os_service_default,
|
||||
$filesystem_store_datadir = $::os_service_default,
|
||||
$filesystem_store_datadirs = $::os_service_default,
|
||||
$filesystem_store_metadata_file = $::os_service_default,
|
||||
$filesystem_store_file_perm = $::os_service_default,
|
||||
$filesystem_store_chunk_size = $::os_service_default,
|
||||
$filesystem_thin_provisioning = $::os_service_default,
|
||||
$store_description = $::os_service_default,
|
||||
) {
|
||||
|
||||
include glance::deps
|
||||
|
||||
if !is_service_default($filesystem_store_datadir) and !is_service_default($filesystem_store_datadirs) {
|
||||
fail('filesystem_store_datadir and filesystem_store_datadirs are mutually exclusive.')
|
||||
}
|
||||
|
||||
glance_api_config {
|
||||
"${name}/filesystem_store_datadir": value => $filesystem_store_datadir;
|
||||
"${name}/filesystem_thin_provisioning": value => $filesystem_thin_provisioning;
|
||||
"${name}/store_description": value => $store_description;
|
||||
"${name}/filesystem_store_datadir": value => $filesystem_store_datadir;
|
||||
"${name}/filesystem_store_datadirs": value => $filesystem_store_datadirs;
|
||||
"${name}/filesystem_store_metadata_file": value => $filesystem_store_metadata_file;
|
||||
"${name}/filesystem_store_file_perm": value => $filesystem_store_file_perm;
|
||||
"${name}/filesystem_store_chunk_size": value => $filesystem_store_chunk_size;
|
||||
"${name}/filesystem_thin_provisioning": value => $filesystem_thin_provisioning;
|
||||
"${name}/store_description": value => $store_description;
|
||||
}
|
||||
|
||||
glance_cache_config {
|
||||
"${name}/filesystem_store_datadir": value => $filesystem_store_datadir;
|
||||
"${name}/filesystem_store_datadir": value => $filesystem_store_datadir;
|
||||
"${name}/filesystem_store_datadirs": value => $filesystem_store_datadirs;
|
||||
}
|
||||
}
|
||||
|
11
releasenotes/notes/file-backend-opts-24feb56451524847.yaml
Normal file
11
releasenotes/notes/file-backend-opts-24feb56451524847.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
The ``glance::backend::multistore::file`` resource type now supports
|
||||
the following parameters, to configure the same parameter for file backend.
|
||||
|
||||
- ``filesystem_store_datadirs``
|
||||
- ``filesystem_store_metadata_file``
|
||||
- ``filesystem_store_file_perm``
|
||||
- ``filesystem_store_chunk_size``
|
||||
- ``filesystem_thin_provisioning``
|
@ -24,30 +24,72 @@ describe 'glance::backend::multistore::file' do
|
||||
shared_examples_for 'glance::backend::multistore::file' do
|
||||
it 'configures glance-api.conf' do
|
||||
is_expected.to contain_glance_api_config('file/store_description').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_thin_provisioning').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_datadir').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_datadirs').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_metadata_file').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_file_perm').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_chunk_size').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_thin_provisioning').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
|
||||
it 'configures glance-cache.conf' do
|
||||
is_expected.to_not contain_glance_cache_config('file/store_description')
|
||||
is_expected.to contain_glance_cache_config('file/filesystem_store_datadir').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_cache_config('file/filesystem_store_datadirs').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
|
||||
describe 'when overriding datadir' do
|
||||
let :params do
|
||||
{
|
||||
:filesystem_store_datadir => '/tmp/',
|
||||
:filesystem_thin_provisioning => 'true',
|
||||
:filesystem_store_datadir => '/var/lib/glance/images',
|
||||
:filesystem_store_metadata_file => '/var/lib/glance/metadata.json',
|
||||
:filesystem_store_file_perm => 0,
|
||||
:filesystem_store_chunk_size => 65536,
|
||||
:filesystem_thin_provisioning => true,
|
||||
}
|
||||
end
|
||||
|
||||
it 'configures glance-api.conf' do
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_datadir').with_value('/tmp/')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_thin_provisioning').with_value('true')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_datadir')\
|
||||
.with_value('/var/lib/glance/images')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_datadirs')\
|
||||
.with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_metadata_file')\
|
||||
.with_value('/var/lib/glance/metadata.json')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_file_perm')\
|
||||
.with_value(0)
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_chunk_size')\
|
||||
.with_value(65536)
|
||||
is_expected.to contain_glance_api_config('file/filesystem_thin_provisioning')\
|
||||
.with_value(true)
|
||||
end
|
||||
|
||||
it 'configures glance-cache.conf' do
|
||||
is_expected.to contain_glance_cache_config('file/filesystem_store_datadir').with_value('/tmp/')
|
||||
is_expected.to contain_glance_cache_config('file/filesystem_store_datadir')\
|
||||
.with_value('/var/lib/glance/images')
|
||||
is_expected.to contain_glance_cache_config('file/filesystem_store_datadirs')\
|
||||
.with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when filesystem_store_datadirs is set' do
|
||||
let :params do
|
||||
{
|
||||
:filesystem_store_datadirs => ['/var/lib/glance/images', '/var/lib/gnance/images_alt']
|
||||
}
|
||||
end
|
||||
it 'configures glance-api.conf' do
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_datadir')\
|
||||
.with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_api_config('file/filesystem_store_datadirs')\
|
||||
.with_value(['/var/lib/glance/images', '/var/lib/gnance/images_alt'])
|
||||
end
|
||||
|
||||
it 'configures glance-cache.conf' do
|
||||
is_expected.to contain_glance_cache_config('file/filesystem_store_datadir')\
|
||||
.with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_glance_cache_config('file/filesystem_store_datadirs')\
|
||||
.with_value(['/var/lib/glance/images', '/var/lib/gnance/images_alt'])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
require 'spec_helper'
|
||||
|
||||
provider_class = Puppet::Type.type(:glance_cache_config).provider(:ini_setting)
|
||||
provider_class = Puppet::Type.type(:glance_cache_config).provider(:openstackconfig)
|
||||
|
||||
describe provider_class do
|
||||
|
Loading…
Reference in New Issue
Block a user