puppet-manila/manifests/backend/generic.pp
root 5b720d66d6 Manila hooks support
This code moves all deps to an external class so that Manila can be
installed with mechanisms besides packages (like venv or docker). This
also cleans-up the dependency tree by removing false or confusing
dependencies.

Change-Id: I053dbef10d51664d99e633abb714b3520a681e96
2016-10-28 11:29:34 +02:00

114 lines
4.6 KiB
Puppet

# ==define manila::backend::generic
#
# ===Parameters
#
# [*driver_handles_share_servers*]
# (required) Denotes whether the driver should handle the responsibility of
# managing share servers. This must be set to false if the driver is to
# operate without managing share servers.
#
# [*share_backend_name*]
# (optional) Name of the backend in manila.conf that
# these settings will reside in
#
# [*smb_template_config_path*]
# (optional) Path to smb config.
# Defaults to: $state_path/smb.conf
#
# [*volume_name_template*]
# (optional) Volume name template.
# Defaults to: manila-share-%s
#
# [*volume_snapshot_name_template*]
# (optional) Volume snapshot name template.
# Defaults to: manila-snapshot-%s
#
# [*share_mount_path*]
# (optional) Parent path in service instance where shares will be mounted.
# Defaults to: /shares
#
# [*max_time_to_create_volume*]
# (optional) Maximum time to wait for creating cinder volume.
# Defaults to: 180
#
# [*max_time_to_attach*]
# (optional) Maximum time to wait for attaching cinder volume.
# Defaults to: 120
#
# [*service_instance_smb_config_path*]
# (optional) Path to smb config in service instance.
# Defaults to: $share_mount_path/smb.conf
#
# [*share_volume_fstype*]
# (optional) Filesystem type of the share volume.
# Choices: 'ext4', 'ext3'
# Defaults to: ext4
#
# [*share_helpers*]
# (optional) Specify list of share export helpers.
# Defaults to: ['CIFS=manila.share.drivers.helpers.CIFSHelperIPAccess',
# 'NFS=manila.share.drivers.helpers.NFSHelper']
#
# [*cinder_volume_type*]
# (optional) Name or id of cinder volume type which will be used for all
# volumes created by driver.
#
# [*delete_share_server_with_last_share*]
# (optional) With this option is set to True share server willbe deleted
# on deletion of last share.
# Defaults to: False
#
# [*unmanage_remove_access_rules*]
# (optional) If set to True, then manila will deny access and remove all
# access rules on share unmanage. If set to False - nothing will be changed.
# Defaults to: False
#
# [*automatic_share_server_cleanup*]
# (optional) If set to True, then Manila will delete all share servers which
# were unused more than specified time. If set to False, automatic deletion
# of share servers will be disabled.
# Defaults to: True
#
define manila::backend::generic (
$driver_handles_share_servers,
$share_backend_name = $name,
$smb_template_config_path = '$state_path/smb.conf',
$volume_name_template = 'manila-share-%s',
$volume_snapshot_name_template = 'manila-snapshot-%s',
$share_mount_path = '/shares',
$max_time_to_create_volume = 180,
$max_time_to_attach = 120,
$service_instance_smb_config_path = '$share_mount_path/smb.conf',
$share_volume_fstype = 'ext4',
$share_helpers = ['CIFS=manila.share.drivers.helpers.CIFSHelperIPAccess',
'NFS=manila.share.drivers.helpers.NFSHelper'],
$cinder_volume_type = undef,
$delete_share_server_with_last_share = 'False',
$unmanage_remove_access_rules = 'False',
$automatic_share_server_cleanup = 'True',
) {
include ::manila::deps
$share_driver = 'manila.share.drivers.generic.GenericShareDriver'
manila_config {
"${name}/driver_handles_share_servers": value => $driver_handles_share_servers;
"${name}/share_backend_name": value => $share_backend_name;
"${name}/share_driver": value => $share_driver;
"${name}/smb_template_config_path": value => $smb_template_config_path;
"${name}/volume_name_template": value => $volume_name_template;
"${name}/volume_snapshot_name_template": value => $volume_snapshot_name_template;
"${name}/share_mount_path": value => $share_mount_path;
"${name}/max_time_to_create_volume": value => $max_time_to_create_volume;
"${name}/max_time_to_attach": value => $max_time_to_attach;
"${name}/service_instance_smb_config_path": value => $service_instance_smb_config_path;
"${name}/share_volume_fstype": value => $share_volume_fstype;
"${name}/share_helpers": value => join($share_helpers, ',');
"${name}/cinder_volume_type": value => $cinder_volume_type;
"${name}/delete_share_server_with_last_share": value => $delete_share_server_with_last_share;
"${name}/unmanage_remove_access_rules": value => $unmanage_remove_access_rules;
"${name}/automatic_share_server_cleanup": value => $automatic_share_server_cleanup;
}
}