Allow overriding share protocols with manila

We need a way to override available protocols
for enabled Shared File Systems service back ends,
or enable custom ones per the deployment.

Change-Id: I7b36e5c45b029f070976e58335d79678752a990c
Closes-Bug: #1831767
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
Co-Authored-By: Alan Bishop <abishop@redhat.com>
(cherry picked from commit f032b7c186)
(cherry picked from commit 5d2174dc88)
Signed-off-by: Goutham Pacha Ravi <gouthampravi@gmail.com>
This commit is contained in:
Goutham Pacha Ravi 2019-06-28 17:02:47 -07:00
parent c49d8de7b6
commit 4d5a9c05ae
3 changed files with 56 additions and 12 deletions

View File

@ -18,6 +18,10 @@
#
# === Parameters
#
# [*enabled_share_protocols*]
# (Optional) Share protocols enabled on the manila API service.
# Defaults to hiera('manila_enabled_share_protocols', undef)
#
# [*backend_generic_enabled*]
# (Optional) Whether or not the generic backend is enabled
# Defaults to hiera('manila_backend_generic_enabled', false)
@ -77,6 +81,7 @@
# Defaults to hiera('step')
class tripleo::profile::base::manila::api (
$enabled_share_protocols = hiera('manila_enabled_share_protocols', undef),
$backend_generic_enabled = hiera('manila_backend_generic_enabled', false),
$backend_netapp_enabled = hiera('manila_backend_netapp_enabled', false),
$backend_vmax_enabled = hiera('manila_backend_vmax_enabled', false),
@ -112,21 +117,31 @@ class tripleo::profile::base::manila::api (
if $step >= 4 or ($step >= 3 and $sync_db) {
include ::tripleo::profile::base::apache
if $backend_generic_enabled or $backend_netapp_enabled or $backend_vmax_enabled or
$backend_isilon_enabled or $backend_unity_enabled or $backend_vnx_enabled {
$nfs_protocol = 'NFS'
$cifs_protocol = 'CIFS'
unless empty($enabled_share_protocols) {
$enabled_share_protocols_real = join(any2array($enabled_share_protocols), ',')
} else {
$nfs_protocol = undef
$cifs_protocol = undef
}
if $backend_cephfs_enabled {
$cephfs_protocol = hiera('manila::backend::cephfs::cephfs_protocol_helper_type', 'CEPHFS')
} else {
$cephfs_protocol = undef
if $backend_generic_enabled or $backend_netapp_enabled
or $backend_vmax_enabled or $backend_isilon_enabled
or $backend_unity_enabled or $backend_vnx_enabled {
$nfs_protocol = 'NFS'
$cifs_protocol = 'CIFS'
} else {
$nfs_protocol = undef
$cifs_protocol = undef
}
if $backend_cephfs_enabled {
$cephfs_protocol = hiera(
'manila::backend::cephfs::cephfs_protocol_helper_type', 'CEPHFS')
} else {
$cephfs_protocol = undef
}
$enabled_share_protocols_real = join(delete_undef_values([$nfs_protocol,$cifs_protocol,$cephfs_protocol]), ',')
}
class { '::manila::api' :
enabled_share_protocols => join(delete_undef_values([$nfs_protocol,$cifs_protocol,$cephfs_protocol]), ',')
enabled_share_protocols => $enabled_share_protocols_real
}
class { '::manila::wsgi::apache':
ssl_cert => $tls_certfile,

View File

@ -0,0 +1,6 @@
---
fixes:
- |
It is now possible to override the ``enabled_share_protocols``
configuration for the Shared File Systems service (manila) with the
hiera parameter ``manila_enabled_share_protocols``.

View File

@ -129,6 +129,29 @@ eos
is_expected.to contain_class('tripleo::profile::base::manila::api')
}
end
context 'with custom protocols' do
let(:params) { {
:step => 4,
:bootstrap_node => 'node.example.com',
:backend_generic_enabled => true,
:backend_cephfs_enabled => true,
:enabled_share_protocols => ['CIFS', 'CEPHFS'],
} }
it {
is_expected.to contain_class('tripleo::profile::base::manila::api')
is_expected.to contain_class('tripleo::profile::base::manila')
is_expected.to contain_class('tripleo::profile::base::manila::authtoken')
is_expected.to contain_class('tripleo::profile::base::manila::api')
is_expected.to contain_class('tripleo::profile::base::apache')
is_expected.to contain_class('manila::api').with(
:enabled_share_protocols => 'CIFS,CEPHFS'
)
is_expected.to contain_class('manila::wsgi::apache')
is_expected.to contain_class('tripleo::profile::base::manila::api')
}
end
end