File: generic.pp

package info (click to toggle)
puppet-module-manila 25.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,804 kB
  • sloc: ruby: 4,767; python: 38; makefile: 10; sh: 10
file content (142 lines) | stat: -rw-r--r-- 6,314 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# ==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
#
# [*backend_availability_zone*]
#   (Optional) Availability zone for this share backend.
#   If not set, the storage_availability_zone option value
#   is used as the default for all backends.
#   Defaults to $facts['os_service_default'].
#
# [*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 will be 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
#
# [*reserved_share_percentage*]
#   (optional) The percentage of backend capacity reserved.
#   Defaults to: $facts['os_service_default']
#
# [*reserved_share_from_snapshot_percentage*]
#   (optional) The percentage of backend capacity reserved. Used for shares
#   created from the snapshot.
#   Defaults to: $facts['os_service_default']
#
# [*reserved_share_extend_percentage*]
#   (optional) The percentage of backend capacity reserved for share extend
#   operation.
#   Defaults to: $facts['os_service_default']
#
define manila::backend::generic (
  $driver_handles_share_servers,
  $share_backend_name                      = $name,
  $backend_availability_zone               = $facts['os_service_default'],
  $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',
  $reserved_share_percentage               = $facts['os_service_default'],
  $reserved_share_from_snapshot_percentage = $facts['os_service_default'],
  $reserved_share_extend_percentage        = $facts['os_service_default'],
) {

  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}/backend_availability_zone":               value => $backend_availability_zone;
    "${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;
    "${name}/reserved_share_percentage":               value => $reserved_share_percentage;
    "${name}/reserved_share_from_snapshot_percentage": value => $reserved_share_from_snapshot_percentage;
    "${name}/reserved_share_extend_percentage":        value => $reserved_share_extend_percentage;
  }
}