diff --git a/manifests/backend/defaults.pp b/manifests/backend/defaults.pp index 3264adef..d418b2cd 100644 --- a/manifests/backend/defaults.pp +++ b/manifests/backend/defaults.pp @@ -9,13 +9,31 @@ # copy-volume-to-image operations. # Defaults to $facts['os_service_default'] # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# class cinder::backend::defaults ( - $use_multipath_for_image_xfer = $facts['os_service_default'], + $use_multipath_for_image_xfer = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], ) { include cinder::deps cinder_config { - 'backend_defaults/use_multipath_for_image_xfer': value => $use_multipath_for_image_xfer; + 'backend_defaults/use_multipath_for_image_xfer': value => $use_multipath_for_image_xfer; + 'backend_defaults/image_volume_cache_enabled': value => $image_volume_cache_enabled; + 'backend_defaults/image_volume_cache_max_size_gb': value => $image_volume_cache_max_size_gb; + 'backend_defaults/image_volume_cache_max_count': value => $image_volume_cache_max_count; } } diff --git a/manifests/backend/dellemc_powerflex.pp b/manifests/backend/dellemc_powerflex.pp index d5d31e77..0e90638e 100644 --- a/manifests/backend/dellemc_powerflex.pp +++ b/manifests/backend/dellemc_powerflex.pp @@ -31,6 +31,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*powerflex_allow_migration_during_rebuild*] # (optional) (Boolean) Allow volume migration during rebuild. # Defaults to $facts['os_service_default'] @@ -104,6 +116,9 @@ define cinder::backend::dellemc_powerflex( $powerflex_storage_pools, $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], $powerflex_allow_migration_during_rebuild = $facts['os_service_default'], $powerflex_allow_non_padded_volumes = $facts['os_service_default'], $powerflex_max_over_subscription_ratio = $facts['os_service_default'], @@ -128,6 +143,9 @@ define cinder::backend::dellemc_powerflex( "${name}/powerflex_storage_pools": value => $powerflex_storage_pools; "${name}/volume_backend_name": value => $volume_backend_name; "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/powerflex_allow_migration_during_rebuild": value => $powerflex_allow_migration_during_rebuild; "${name}/powerflex_allow_non_padded_volumes": value => $powerflex_allow_non_padded_volumes; "${name}/powerflex_max_over_subscription_ratio": value => $powerflex_max_over_subscription_ratio; diff --git a/manifests/backend/dellemc_powermax.pp b/manifests/backend/dellemc_powermax.pp index 0f6edb46..b6395fde 100644 --- a/manifests/backend/dellemc_powermax.pp +++ b/manifests/backend/dellemc_powermax.pp @@ -40,6 +40,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*reserved_percentage*] # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. @@ -66,6 +78,9 @@ define cinder::backend::dellemc_powermax ( Enum['iSCSI', 'FC'] $powermax_storage_protocol = 'iSCSI', $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], Hash $extra_options = {}, Boolean $manage_volume_type = false, @@ -86,16 +101,19 @@ define cinder::backend::dellemc_powermax ( } cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/reserved_percentage": value => $reserved_percentage; - "${name}/volume_driver": value => $volume_driver; - "${name}/san_ip": value => $san_ip; - "${name}/san_login": value => $san_login; - "${name}/san_password": value => $san_password, secret => true; - "${name}/powermax_array": value => $powermax_array; - "${name}/powermax_srp": value => $powermax_srp; - "${name}/powermax_port_groups": value => $powermax_port_groups_real; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/volume_driver": value => $volume_driver; + "${name}/san_ip": value => $san_ip; + "${name}/san_login": value => $san_login; + "${name}/san_password": value => $san_password, secret => true; + "${name}/powermax_array": value => $powermax_array; + "${name}/powermax_srp": value => $powermax_srp; + "${name}/powermax_port_groups": value => $powermax_port_groups_real; } if $manage_volume_type { diff --git a/manifests/backend/dellemc_powerstore.pp b/manifests/backend/dellemc_powerstore.pp index 123045e8..fb91a7f8 100644 --- a/manifests/backend/dellemc_powerstore.pp +++ b/manifests/backend/dellemc_powerstore.pp @@ -30,6 +30,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*manage_volume_type*] # (Optional) Whether or not manage Cinder Volume type. # If set to true, a Cinder Volume type will be created @@ -50,6 +62,9 @@ define cinder::backend::dellemc_powerstore ( Enum['iSCSI', 'FC'] $storage_protocol = 'iSCSI', $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], Boolean $manage_volume_type = false, Hash $extra_options = {}, ) { @@ -59,14 +74,17 @@ define cinder::backend::dellemc_powerstore ( $driver = 'dell_emc.powerstore.driver.PowerStoreDriver' cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/volume_driver": value => "cinder.volume.drivers.${driver}"; - "${name}/san_ip": value => $san_ip; - "${name}/san_login": value => $san_login; - "${name}/san_password": value => $san_password, secret => true; - "${name}/powerstore_ports": value => $powerstore_ports; - "${name}/storage_protocol": value => $storage_protocol; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/volume_driver": value => "cinder.volume.drivers.${driver}"; + "${name}/san_ip": value => $san_ip; + "${name}/san_login": value => $san_login; + "${name}/san_password": value => $san_password, secret => true; + "${name}/powerstore_ports": value => $powerstore_ports; + "${name}/storage_protocol": value => $storage_protocol; } cinder_config { diff --git a/manifests/backend/dellemc_sc.pp b/manifests/backend/dellemc_sc.pp index 0f6c96e9..a926884b 100644 --- a/manifests/backend/dellemc_sc.pp +++ b/manifests/backend/dellemc_sc.pp @@ -30,6 +30,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*dell_sc_api_port*] # (optional) The Enterprise Manager API port. # Defaults to $facts['os_service_default'] @@ -101,6 +113,9 @@ define cinder::backend::dellemc_sc ( $target_ip_address = undef, $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], $dell_sc_api_port = $facts['os_service_default'], $dell_sc_server_folder = 'srv', $dell_sc_verify_cert = $facts['os_service_default'], @@ -125,25 +140,28 @@ define cinder::backend::dellemc_sc ( } cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/volume_driver": value => $volume_driver; - "${name}/san_ip": value => $san_ip; - "${name}/san_login": value => $san_login; - "${name}/san_password": value => $san_password, secret => true; - "${name}/target_ip_address": value => $target_ip_address; - "${name}/dell_sc_ssn": value => $dell_sc_ssn; - "${name}/dell_sc_api_port": value => $dell_sc_api_port; - "${name}/dell_sc_server_folder": value => $dell_sc_server_folder; - "${name}/dell_sc_verify_cert": value => $dell_sc_verify_cert; - "${name}/dell_sc_volume_folder": value => $dell_sc_volume_folder; - "${name}/target_port": value => $target_port; - "${name}/excluded_domain_ips": value => $excluded_domain_ips; - "${name}/secondary_san_ip": value => $secondary_san_ip; - "${name}/secondary_san_login": value => $secondary_san_login; - "${name}/secondary_san_password": value => $secondary_san_password, secret => true; - "${name}/secondary_sc_api_port": value => $secondary_sc_api_port; - "${name}/use_multipath_for_image_xfer": value => $use_multipath_for_image_xfer; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/volume_driver": value => $volume_driver; + "${name}/san_ip": value => $san_ip; + "${name}/san_login": value => $san_login; + "${name}/san_password": value => $san_password, secret => true; + "${name}/target_ip_address": value => $target_ip_address; + "${name}/dell_sc_ssn": value => $dell_sc_ssn; + "${name}/dell_sc_api_port": value => $dell_sc_api_port; + "${name}/dell_sc_server_folder": value => $dell_sc_server_folder; + "${name}/dell_sc_verify_cert": value => $dell_sc_verify_cert; + "${name}/dell_sc_volume_folder": value => $dell_sc_volume_folder; + "${name}/target_port": value => $target_port; + "${name}/excluded_domain_ips": value => $excluded_domain_ips; + "${name}/secondary_san_ip": value => $secondary_san_ip; + "${name}/secondary_san_login": value => $secondary_san_login; + "${name}/secondary_san_password": value => $secondary_san_password, secret => true; + "${name}/secondary_sc_api_port": value => $secondary_sc_api_port; + "${name}/use_multipath_for_image_xfer": value => $use_multipath_for_image_xfer; } if $manage_volume_type { diff --git a/manifests/backend/dellemc_unity.pp b/manifests/backend/dellemc_unity.pp index 4f941b26..db806da7 100644 --- a/manifests/backend/dellemc_unity.pp +++ b/manifests/backend/dellemc_unity.pp @@ -26,6 +26,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*reserved_percentage*] # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. @@ -56,29 +68,35 @@ define cinder::backend::dellemc_unity ( $san_login, $san_password, $storage_protocol, - $volume_backend_name = $name, - $backend_availability_zone = $facts['os_service_default'], - $reserved_percentage = $facts['os_service_default'], - $unity_io_ports = $facts['os_service_default'], - $unity_storage_pool_names = $facts['os_service_default'], - Boolean $manage_volume_type = false, - Hash $extra_options = {}, + $volume_backend_name = $name, + $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], + $unity_io_ports = $facts['os_service_default'], + $unity_storage_pool_names = $facts['os_service_default'], + Boolean $manage_volume_type = false, + Hash $extra_options = {}, ) { include cinder::deps $driver = 'dell_emc.unity.Driver' cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/reserved_percentage": value => $reserved_percentage; - "${name}/volume_driver": value => "cinder.volume.drivers.${driver}"; - "${name}/san_ip": value => $san_ip; - "${name}/san_login": value => $san_login; - "${name}/san_password": value => $san_password, secret => true; - "${name}/storage_protocol": value => $storage_protocol; - "${name}/unity_io_ports": value => join(any2array($unity_io_ports), ','); - "${name}/unity_storage_pool_names": value => join(any2array($unity_storage_pool_names), ','); + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/volume_driver": value => "cinder.volume.drivers.${driver}"; + "${name}/san_ip": value => $san_ip; + "${name}/san_login": value => $san_login; + "${name}/san_password": value => $san_password, secret => true; + "${name}/storage_protocol": value => $storage_protocol; + "${name}/unity_io_ports": value => join(any2array($unity_io_ports), ','); + "${name}/unity_storage_pool_names": value => join(any2array($unity_storage_pool_names), ','); } if $manage_volume_type { diff --git a/manifests/backend/dellemc_xtremio.pp b/manifests/backend/dellemc_xtremio.pp index 8d901782..a372f8d5 100644 --- a/manifests/backend/dellemc_xtremio.pp +++ b/manifests/backend/dellemc_xtremio.pp @@ -26,6 +26,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*reserved_percentage*] # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. @@ -73,6 +85,9 @@ define cinder::backend::dellemc_xtremio ( $xtremio_cluster_name, $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], $xtremio_array_busy_retry_count = $facts['os_service_default'], $xtremio_array_busy_retry_interval = $facts['os_service_default'], @@ -93,6 +108,9 @@ define cinder::backend::dellemc_xtremio ( cinder_config { "${name}/volume_backend_name": value => $volume_backend_name; "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; "${name}/volume_driver": value => "cinder.volume.drivers.${driver}"; "${name}/san_ip": value => $san_ip; diff --git a/manifests/backend/emc_vnx.pp b/manifests/backend/emc_vnx.pp index 1fba34ac..1abdde8a 100644 --- a/manifests/backend/emc_vnx.pp +++ b/manifests/backend/emc_vnx.pp @@ -16,6 +16,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*reserved_percentage*] # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. @@ -125,6 +137,9 @@ define cinder::backend::emc_vnx ( $san_login = 'admin', $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], Hash $extra_options = {}, $volume_driver = 'cinder.volume.drivers.dell_emc.vnx.driver.VNXDriver', @@ -156,6 +171,9 @@ define cinder::backend::emc_vnx ( "${name}/storage_vnx_pool_names": value => join(any2array($storage_vnx_pool_names), ','); "${name}/volume_backend_name": value => $volume_backend_name; "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; "${name}/volume_driver": value => $volume_driver; "${name}/storage_protocol": value => $storage_protocol; diff --git a/manifests/backend/gpfs.pp b/manifests/backend/gpfs.pp index 46ab5a72..2044640d 100644 --- a/manifests/backend/gpfs.pp +++ b/manifests/backend/gpfs.pp @@ -74,6 +74,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*manage_volume_type*] # (Optional) Whether or not manage Cinder Volume type. # If set to true, a Cinder Volume type will be created @@ -96,20 +108,23 @@ # define cinder::backend::gpfs ( $gpfs_mount_point_base, - $volume_backend_name = $name, - $gpfs_images_dir = $facts['os_service_default'], - $gpfs_images_share_mode = $facts['os_service_default'], - $gpfs_max_clone_depth = $facts['os_service_default'], - $gpfs_sparse_volumes = $facts['os_service_default'], - $gpfs_storage_pool = $facts['os_service_default'], - $nas_host = $facts['os_service_default'], - $nas_login = $facts['os_service_default'], - $nas_password = $facts['os_service_default'], - $nas_private_key = $facts['os_service_default'], - $nas_ssh_port = $facts['os_service_default'], - $backend_availability_zone = $facts['os_service_default'], - Boolean $manage_volume_type = false, - Hash $extra_options = {}, + $volume_backend_name = $name, + $gpfs_images_dir = $facts['os_service_default'], + $gpfs_images_share_mode = $facts['os_service_default'], + $gpfs_max_clone_depth = $facts['os_service_default'], + $gpfs_sparse_volumes = $facts['os_service_default'], + $gpfs_storage_pool = $facts['os_service_default'], + $nas_host = $facts['os_service_default'], + $nas_login = $facts['os_service_default'], + $nas_password = $facts['os_service_default'], + $nas_private_key = $facts['os_service_default'], + $nas_ssh_port = $facts['os_service_default'], + $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], + Boolean $manage_volume_type = false, + Hash $extra_options = {}, ) { include cinder::deps @@ -122,20 +137,23 @@ define cinder::backend::gpfs ( } cinder_config { - "${name}/volume_driver": value => 'cinder.volume.drivers.ibm.gpfs.GPFSDriver'; - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/gpfs_max_clone_depth": value => $gpfs_max_clone_depth; - "${name}/gpfs_mount_point_base": value => $gpfs_mount_point_base; - "${name}/gpfs_sparse_volumes": value => $gpfs_sparse_volumes; - "${name}/gpfs_storage_pool": value => $gpfs_storage_pool; - "${name}/gpfs_images_share_mode": value => $gpfs_images_share_mode; - "${name}/gpfs_images_dir": value => $gpfs_images_dir; - "${name}/nas_host": value => $nas_host; - "${name}/nas_login": value => $nas_login; - "${name}/nas_password": value => $nas_password, secret => true; - "${name}/nas_private_key": value => $nas_private_key; - "${name}/nas_ssh_port": value => $nas_ssh_port; - "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/volume_driver": value => 'cinder.volume.drivers.ibm.gpfs.GPFSDriver'; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/gpfs_max_clone_depth": value => $gpfs_max_clone_depth; + "${name}/gpfs_mount_point_base": value => $gpfs_mount_point_base; + "${name}/gpfs_sparse_volumes": value => $gpfs_sparse_volumes; + "${name}/gpfs_storage_pool": value => $gpfs_storage_pool; + "${name}/gpfs_images_share_mode": value => $gpfs_images_share_mode; + "${name}/gpfs_images_dir": value => $gpfs_images_dir; + "${name}/nas_host": value => $nas_host; + "${name}/nas_login": value => $nas_login; + "${name}/nas_password": value => $nas_password, secret => true; + "${name}/nas_private_key": value => $nas_private_key; + "${name}/nas_ssh_port": value => $nas_ssh_port; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; } if $manage_volume_type { diff --git a/manifests/backend/hpe3par_iscsi.pp b/manifests/backend/hpe3par_iscsi.pp index 55cdd1d7..079a589f 100644 --- a/manifests/backend/hpe3par_iscsi.pp +++ b/manifests/backend/hpe3par_iscsi.pp @@ -37,6 +37,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*reserved_percentage*] # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. @@ -83,16 +95,19 @@ define cinder::backend::hpe3par_iscsi( $san_login, $san_password, $hpe3par_iscsi_ips, - $volume_backend_name = $name, - $backend_availability_zone = $facts['os_service_default'], - $reserved_percentage = $facts['os_service_default'], - $volume_driver = 'cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver', - $hpe3par_iscsi_chap_enabled = false, - $hpe3par_cpg_snap = 'userCPG', - $hpe3par_snapshot_retention = 48, - $hpe3par_snapshot_expiration = 72, - Boolean $manage_volume_type = false, - Hash $extra_options = {}, + $volume_backend_name = $name, + $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], + $volume_driver = 'cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver', + $hpe3par_iscsi_chap_enabled = false, + $hpe3par_cpg_snap = 'userCPG', + $hpe3par_snapshot_retention = 48, + $hpe3par_snapshot_expiration = 72, + Boolean $manage_volume_type = false, + Hash $extra_options = {}, ) { include cinder::deps @@ -102,21 +117,24 @@ define cinder::backend::hpe3par_iscsi( } cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/reserved_percentage": value => $reserved_percentage; - "${name}/volume_driver": value => $volume_driver; - "${name}/hpe3par_username": value => $hpe3par_username; - "${name}/hpe3par_password": value => $hpe3par_password, secret => true; - "${name}/san_ip": value => $san_ip; - "${name}/san_login": value => $san_login; - "${name}/san_password": value => $san_password, secret => true; - "${name}/hpe3par_iscsi_ips": value => $hpe3par_iscsi_ips; - "${name}/hpe3par_api_url": value => $hpe3par_api_url; - "${name}/hpe3par_iscsi_chap_enabled": value => $hpe3par_iscsi_chap_enabled; - "${name}/hpe3par_snap_cpg": value => $hpe3par_cpg_snap; - "${name}/hpe3par_snapshot_retention": value => $hpe3par_snapshot_retention; - "${name}/hpe3par_snapshot_expiration": value => $hpe3par_snapshot_expiration; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/volume_driver": value => $volume_driver; + "${name}/hpe3par_username": value => $hpe3par_username; + "${name}/hpe3par_password": value => $hpe3par_password, secret => true; + "${name}/san_ip": value => $san_ip; + "${name}/san_login": value => $san_login; + "${name}/san_password": value => $san_password, secret => true; + "${name}/hpe3par_iscsi_ips": value => $hpe3par_iscsi_ips; + "${name}/hpe3par_api_url": value => $hpe3par_api_url; + "${name}/hpe3par_iscsi_chap_enabled": value => $hpe3par_iscsi_chap_enabled; + "${name}/hpe3par_snap_cpg": value => $hpe3par_cpg_snap; + "${name}/hpe3par_snapshot_retention": value => $hpe3par_snapshot_retention; + "${name}/hpe3par_snapshot_expiration": value => $hpe3par_snapshot_expiration; } if $manage_volume_type { diff --git a/manifests/backend/ibm_svf.pp b/manifests/backend/ibm_svf.pp index 8b9c3744..69f5a145 100644 --- a/manifests/backend/ibm_svf.pp +++ b/manifests/backend/ibm_svf.pp @@ -53,6 +53,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*reserved_percentage*] # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. @@ -81,6 +93,9 @@ define cinder::backend::ibm_svf ( $storwize_portset = $facts['os_service_default'], $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], Hash $extra_options = {}, Boolean $manage_volume_type = false, @@ -98,6 +113,9 @@ define cinder::backend::ibm_svf ( cinder_config { "${name}/volume_backend_name": value => $volume_backend_name; "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; "${name}/volume_driver": value => $volume_driver; "${name}/san_ip": value => $san_ip; diff --git a/manifests/backend/iscsi.pp b/manifests/backend/iscsi.pp index 3b5e6088..7439375b 100644 --- a/manifests/backend/iscsi.pp +++ b/manifests/backend/iscsi.pp @@ -17,6 +17,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*reserved_percentage*] # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. @@ -54,17 +66,20 @@ # { 'iscsi_backend/param1' => { 'value' => value1 } } # define cinder::backend::iscsi ( - $target_ip_address = $facts['os_service_default'], - $volume_backend_name = $name, - $backend_availability_zone = $facts['os_service_default'], - $reserved_percentage = $facts['os_service_default'], - $volume_driver = 'cinder.volume.drivers.lvm.LVMVolumeDriver', - $volume_group = $facts['os_service_default'], - $volumes_dir = '/var/lib/cinder/volumes', - $target_helper = undef, - $target_protocol = $facts['os_service_default'], - Boolean $manage_volume_type = false, - Hash $extra_options = {}, + $target_ip_address = $facts['os_service_default'], + $volume_backend_name = $name, + $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], + $volume_driver = 'cinder.volume.drivers.lvm.LVMVolumeDriver', + $volume_group = $facts['os_service_default'], + $volumes_dir = '/var/lib/cinder/volumes', + $target_helper = undef, + $target_protocol = $facts['os_service_default'], + Boolean $manage_volume_type = false, + Hash $extra_options = {}, ) { include cinder::deps @@ -85,15 +100,18 @@ define cinder::backend::iscsi ( } cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/reserved_percentage": value => $reserved_percentage; - "${name}/volume_driver": value => $volume_driver; - "${name}/target_ip_address": value => $target_ip_address; - "${name}/target_helper": value => $target_helper_real; - "${name}/volume_group": value => $volume_group; - "${name}/volumes_dir": value => $volumes_dir; - "${name}/target_protocol": value => $target_protocol; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/volume_driver": value => $volume_driver; + "${name}/target_ip_address": value => $target_ip_address; + "${name}/target_helper": value => $target_helper_real; + "${name}/volume_group": value => $volume_group; + "${name}/volumes_dir": value => $volumes_dir; + "${name}/target_protocol": value => $target_protocol; } if $manage_volume_type { diff --git a/manifests/backend/netapp.pp b/manifests/backend/netapp.pp index dbdefcb0..4f100f5e 100644 --- a/manifests/backend/netapp.pp +++ b/manifests/backend/netapp.pp @@ -27,6 +27,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*reserved_percentage*] # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. @@ -176,6 +188,9 @@ define cinder::backend::netapp ( $netapp_server_hostname, $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], $reserved_percentage = $facts['os_service_default'], $netapp_server_port = $facts['os_service_default'], $netapp_size_multiplier = $facts['os_service_default'], @@ -218,6 +233,9 @@ and will be removed in a future release.") "${name}/nfs_mount_options": value => $nfs_mount_options; "${name}/volume_backend_name": value => $volume_backend_name; "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; "${name}/reserved_percentage": value => $reserved_percentage; "${name}/volume_driver": value => 'cinder.volume.drivers.netapp.common.NetAppDriver'; "${name}/netapp_login": value => $netapp_login; diff --git a/manifests/backend/nexenta.pp b/manifests/backend/nexenta.pp index 19844e07..7a1b6f03 100644 --- a/manifests/backend/nexenta.pp +++ b/manifests/backend/nexenta.pp @@ -23,6 +23,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*reserved_percentage*] # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. @@ -71,36 +83,42 @@ define cinder::backend::nexenta ( $nexenta_user, $nexenta_password, $nexenta_host, - $volume_backend_name = $name, - $backend_availability_zone = $facts['os_service_default'], - $reserved_percentage = $facts['os_service_default'], - $nexenta_volume = 'cinder', - $nexenta_target_prefix = 'iqn:', - $nexenta_target_group_prefix = 'cinder/', - $nexenta_blocksize = '8192', - $nexenta_sparse = true, - $nexenta_rest_port = '8457', - $volume_driver = 'cinder.volume.drivers.nexenta.iscsi.NexentaISCSIDriver', - Boolean $manage_volume_type = false, - Hash $extra_options = {}, + $volume_backend_name = $name, + $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], + $nexenta_volume = 'cinder', + $nexenta_target_prefix = 'iqn:', + $nexenta_target_group_prefix = 'cinder/', + $nexenta_blocksize = '8192', + $nexenta_sparse = true, + $nexenta_rest_port = '8457', + $volume_driver = 'cinder.volume.drivers.nexenta.iscsi.NexentaISCSIDriver', + Boolean $manage_volume_type = false, + Hash $extra_options = {}, ) { include cinder::deps cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/reserved_percentage": value => $reserved_percentage; - "${name}/nexenta_user": value => $nexenta_user; - "${name}/nexenta_password": value => $nexenta_password, secret => true; - "${name}/nexenta_host": value => $nexenta_host; - "${name}/nexenta_volume": value => $nexenta_volume; - "${name}/nexenta_target_prefix": value => $nexenta_target_prefix; - "${name}/nexenta_target_group_prefix": value => $nexenta_target_group_prefix; - "${name}/nexenta_blocksize": value => $nexenta_blocksize; - "${name}/nexenta_sparse": value => $nexenta_sparse; - "${name}/nexenta_rest_port": value => $nexenta_rest_port; - "${name}/volume_driver": value => $volume_driver; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/nexenta_user": value => $nexenta_user; + "${name}/nexenta_password": value => $nexenta_password, secret => true; + "${name}/nexenta_host": value => $nexenta_host; + "${name}/nexenta_volume": value => $nexenta_volume; + "${name}/nexenta_target_prefix": value => $nexenta_target_prefix; + "${name}/nexenta_target_group_prefix": value => $nexenta_target_group_prefix; + "${name}/nexenta_blocksize": value => $nexenta_blocksize; + "${name}/nexenta_sparse": value => $nexenta_sparse; + "${name}/nexenta_rest_port": value => $nexenta_rest_port; + "${name}/volume_driver": value => $volume_driver; } if $manage_volume_type { diff --git a/manifests/backend/nfs.pp b/manifests/backend/nfs.pp index 32808e97..1577647d 100644 --- a/manifests/backend/nfs.pp +++ b/manifests/backend/nfs.pp @@ -15,6 +15,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*nfs_mount_attempts*] # (optional) The number of attempts to mount nfs shares before raising an # error. At least one attempt will be made to mount an nfs share, regardless @@ -92,6 +104,9 @@ define cinder::backend::nfs ( Array[String[1], 1] $nfs_servers, $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], $nfs_mount_attempts = $facts['os_service_default'], $nfs_mount_options = $facts['os_service_default'], $nfs_sparsed_volumes = $facts['os_service_default'], @@ -116,23 +131,23 @@ define cinder::backend::nfs ( } cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/volume_driver": value => - 'cinder.volume.drivers.nfs.NfsDriver'; - "${name}/nfs_shares_config": value => $nfs_shares_config; - "${name}/nfs_mount_attempts": value => $nfs_mount_attempts; - "${name}/nfs_mount_options": value => $nfs_mount_options; - "${name}/nfs_sparsed_volumes": value => $nfs_sparsed_volumes; - "${name}/nfs_mount_point_base": value => $nfs_mount_point_base; - "${name}/nfs_used_ratio": value => $nfs_used_ratio; - "${name}/nfs_oversub_ratio": value => $nfs_oversub_ratio; - "${name}/nfs_snapshot_support": value => $nfs_snapshot_support; - "${name}/nfs_qcow2_volumes": value => $nfs_qcow2_volumes; - "${name}/nas_secure_file_operations": value => - $nas_secure_file_operations; - "${name}/nas_secure_file_permissions": value => - $nas_secure_file_permissions; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/volume_driver": value => 'cinder.volume.drivers.nfs.NfsDriver'; + "${name}/nfs_shares_config": value => $nfs_shares_config; + "${name}/nfs_mount_attempts": value => $nfs_mount_attempts; + "${name}/nfs_mount_options": value => $nfs_mount_options; + "${name}/nfs_sparsed_volumes": value => $nfs_sparsed_volumes; + "${name}/nfs_mount_point_base": value => $nfs_mount_point_base; + "${name}/nfs_used_ratio": value => $nfs_used_ratio; + "${name}/nfs_oversub_ratio": value => $nfs_oversub_ratio; + "${name}/nfs_snapshot_support": value => $nfs_snapshot_support; + "${name}/nfs_qcow2_volumes": value => $nfs_qcow2_volumes; + "${name}/nas_secure_file_operations": value => $nas_secure_file_operations; + "${name}/nas_secure_file_permissions": value => $nas_secure_file_permissions; } if $manage_volume_type { diff --git a/manifests/backend/nvmeof.pp b/manifests/backend/nvmeof.pp index 7122768b..a52e80eb 100644 --- a/manifests/backend/nvmeof.pp +++ b/manifests/backend/nvmeof.pp @@ -38,6 +38,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*volume_driver*] # (Optional) Driver to use for volume creation # Defaults to 'cinder.volume.drivers.lvm.LVMVolumeDriver'. @@ -62,37 +74,43 @@ define cinder::backend::nvmeof ( $target_ip_address, $target_helper, $target_protocol, - $target_port = '4420', - $target_prefix = $facts['os_service_default'], - $nvmet_port_id = $facts['os_service_default'], - $nvmet_ns_id = $facts['os_service_default'], - $volume_backend_name = $name, - $backend_availability_zone = $facts['os_service_default'], - $volume_driver = 'cinder.volume.drivers.lvm.LVMVolumeDriver', - $volume_group = $facts['os_service_default'], - $nvmeof_conn_info_version = $facts['os_service_default'], - $lvm_share_target = $facts['os_service_default'], - $target_secondary_ip_addresses = $facts['os_service_default'], + $target_port = '4420', + $target_prefix = $facts['os_service_default'], + $nvmet_port_id = $facts['os_service_default'], + $nvmet_ns_id = $facts['os_service_default'], + $volume_backend_name = $name, + $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], + $volume_driver = 'cinder.volume.drivers.lvm.LVMVolumeDriver', + $volume_group = $facts['os_service_default'], + $nvmeof_conn_info_version = $facts['os_service_default'], + $lvm_share_target = $facts['os_service_default'], + $target_secondary_ip_addresses = $facts['os_service_default'], ) { include cinder::deps include cinder::params cinder_config { - "${name}/target_ip_address": value => $target_ip_address; - "${name}/target_port": value => $target_port; - "${name}/target_helper": value => $target_helper; - "${name}/target_protocol": value => $target_protocol; - "${name}/target_prefix": value => $target_prefix; - "${name}/nvmet_port_id": value => $nvmet_port_id; - "${name}/nvmet_ns_id": value => $nvmet_ns_id; - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/volume_driver": value => $volume_driver; - "${name}/volume_group": value => $volume_group; - "${name}/nvmeof_conn_info_version": value => $nvmeof_conn_info_version; - "${name}/lvm_share_target": value => $lvm_share_target; - "${name}/target_secondary_ip_addresses": value => join(any2array($target_secondary_ip_addresses), ','); + "${name}/target_ip_address": value => $target_ip_address; + "${name}/target_port": value => $target_port; + "${name}/target_helper": value => $target_helper; + "${name}/target_protocol": value => $target_protocol; + "${name}/target_prefix": value => $target_prefix; + "${name}/nvmet_port_id": value => $nvmet_port_id; + "${name}/nvmet_ns_id": value => $nvmet_ns_id; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/volume_driver": value => $volume_driver; + "${name}/volume_group": value => $volume_group; + "${name}/nvmeof_conn_info_version": value => $nvmeof_conn_info_version; + "${name}/lvm_share_target": value => $lvm_share_target; + "${name}/target_secondary_ip_addresses": value => join(any2array($target_secondary_ip_addresses), ','); } ensure_packages ( 'nvmetcli', { diff --git a/manifests/backend/pure.pp b/manifests/backend/pure.pp index eddfa32f..89dfa386 100644 --- a/manifests/backend/pure.pp +++ b/manifests/backend/pure.pp @@ -46,10 +46,17 @@ # Defaults to false. # # [*image_volume_cache_enabled*] -# (Optional) Enable Cinder's image cache function for the PureStorage -# backend. +# (Optional) Enable Cinder's image cache function for this backend. # Defaults to True # +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*pure_host_personality*] # (Optional) Determines how the Purity system tunes the protocol used between # the array and the initiator. @@ -107,6 +114,8 @@ define cinder::backend::pure( $use_multipath_for_image_xfer = true, Boolean $manage_volume_type = false, $image_volume_cache_enabled = true, + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], $pure_host_personality = $facts['os_service_default'], $pure_eradicate_on_delete = $facts['os_service_default'], $pure_nvme_transport = $facts['os_service_default'], @@ -126,22 +135,24 @@ define cinder::backend::pure( } cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/reserved_percentage": value => $reserved_percentage; - "${name}/volume_driver": value => $volume_driver; - "${name}/san_ip": value => $san_ip; - "${name}/pure_api_token": value => $pure_api_token, secret => true; - "${name}/use_chap_auth": value => $use_chap_auth; - "${name}/use_multipath_for_image_xfer": value => $use_multipath_for_image_xfer; - "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; - "${name}/pure_host_personality": value => $pure_host_personality; - "${name}/pure_eradicate_on_delete": value => $pure_eradicate_on_delete; - "${name}/pure_nvme_transport": value => $pure_nvme_transport; - "${name}/pure_nvme_cidr": value => $pure_nvme_cidr; - "${name}/pure_nvme_cidr_list": value => join(any2array($pure_nvme_cidr_list), ','); - "${name}/pure_iscsi_cidr": value => $pure_iscsi_cidr; - "${name}/pure_iscsi_cidr_list": value => join(any2array($pure_iscsi_cidr_list), ','); + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/volume_driver": value => $volume_driver; + "${name}/san_ip": value => $san_ip; + "${name}/pure_api_token": value => $pure_api_token, secret => true; + "${name}/use_chap_auth": value => $use_chap_auth; + "${name}/use_multipath_for_image_xfer": value => $use_multipath_for_image_xfer; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/pure_host_personality": value => $pure_host_personality; + "${name}/pure_eradicate_on_delete": value => $pure_eradicate_on_delete; + "${name}/pure_nvme_transport": value => $pure_nvme_transport; + "${name}/pure_nvme_cidr": value => $pure_nvme_cidr; + "${name}/pure_nvme_cidr_list": value => join(any2array($pure_nvme_cidr_list), ','); + "${name}/pure_iscsi_cidr": value => $pure_iscsi_cidr; + "${name}/pure_iscsi_cidr_list": value => join(any2array($pure_iscsi_cidr_list), ','); } if $manage_volume_type { diff --git a/manifests/backend/quobyte.pp b/manifests/backend/quobyte.pp index 0a484588..748f70d7 100644 --- a/manifests/backend/quobyte.pp +++ b/manifests/backend/quobyte.pp @@ -40,6 +40,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*manage_volume_type*] # (Optional) Whether or not manage Cinder Volume type. # If set to true, a Cinder Volume type will be created @@ -54,27 +66,32 @@ # define cinder::backend::quobyte ( $quobyte_volume_url, - $quobyte_client_cfg = undef, - $quobyte_qcow2_volumes = undef, - $quobyte_sparsed_volumes = undef, - $quobyte_mount_point_base = undef, - $volume_backend_name = $name, - $backend_availability_zone = $facts['os_service_default'], - Boolean $manage_volume_type = false, + $quobyte_client_cfg = undef, + $quobyte_qcow2_volumes = undef, + $quobyte_sparsed_volumes = undef, + $quobyte_mount_point_base = undef, + $volume_backend_name = $name, + $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], + Boolean $manage_volume_type = false, ) { include cinder::deps cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/volume_driver": value => - 'cinder.volume.drivers.quobyte.QuobyteDriver'; - "${name}/quobyte_volume_url": value => $quobyte_volume_url; - "${name}/quobyte_client_cfg": value => $quobyte_client_cfg; - "${name}/quobyte_qcow2_volumes": value => $quobyte_qcow2_volumes; - "${name}/quobyte_sparsed_volumes": value => $quobyte_sparsed_volumes; - "${name}/quobyte_mount_point_base": value => $quobyte_mount_point_base; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/volume_driver": value => 'cinder.volume.drivers.quobyte.QuobyteDriver'; + "${name}/quobyte_volume_url": value => $quobyte_volume_url; + "${name}/quobyte_client_cfg": value => $quobyte_client_cfg; + "${name}/quobyte_qcow2_volumes": value => $quobyte_qcow2_volumes; + "${name}/quobyte_sparsed_volumes": value => $quobyte_sparsed_volumes; + "${name}/quobyte_mount_point_base": value => $quobyte_mount_point_base; } if $manage_volume_type { diff --git a/manifests/backend/releasenotes/notes/image_volume_cache-882c9d2b842c3c0f.yaml b/manifests/backend/releasenotes/notes/image_volume_cache-882c9d2b842c3c0f.yaml new file mode 100644 index 00000000..7c20d147 --- /dev/null +++ b/manifests/backend/releasenotes/notes/image_volume_cache-882c9d2b842c3c0f.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Support for the image volume cache options has been added. diff --git a/manifests/backend/san.pp b/manifests/backend/san.pp index 1ed4fb03..61bc0091 100644 --- a/manifests/backend/san.pp +++ b/manifests/backend/san.pp @@ -18,6 +18,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*san_thin_provision*] # (optional) Use thin provisioning for SAN volumes? # Defaults to $facts['os_service_default']. @@ -81,42 +93,48 @@ # define cinder::backend::san ( $volume_driver, - $volume_backend_name = $name, - $backend_availability_zone = $facts['os_service_default'], - $san_thin_provision = $facts['os_service_default'], - $san_ip = $facts['os_service_default'], - $san_login = $facts['os_service_default'], - $san_password = $facts['os_service_default'], - $san_private_key = $facts['os_service_default'], - $san_clustername = $facts['os_service_default'], - $san_ssh_port = $facts['os_service_default'], - $san_api_port = $facts['os_service_default'], - $san_is_local = $facts['os_service_default'], - $ssh_conn_timeout = $facts['os_service_default'], - $ssh_min_pool_conn = $facts['os_service_default'], - $ssh_max_pool_conn = $facts['os_service_default'], - Boolean $manage_volume_type = false, - Hash $extra_options = {}, + $volume_backend_name = $name, + $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], + $san_thin_provision = $facts['os_service_default'], + $san_ip = $facts['os_service_default'], + $san_login = $facts['os_service_default'], + $san_password = $facts['os_service_default'], + $san_private_key = $facts['os_service_default'], + $san_clustername = $facts['os_service_default'], + $san_ssh_port = $facts['os_service_default'], + $san_api_port = $facts['os_service_default'], + $san_is_local = $facts['os_service_default'], + $ssh_conn_timeout = $facts['os_service_default'], + $ssh_min_pool_conn = $facts['os_service_default'], + $ssh_max_pool_conn = $facts['os_service_default'], + Boolean $manage_volume_type = false, + Hash $extra_options = {}, ) { include cinder::deps cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/volume_driver": value => $volume_driver; - "${name}/san_thin_provision": value => $san_thin_provision; - "${name}/san_ip": value => $san_ip; - "${name}/san_login": value => $san_login; - "${name}/san_password": value => $san_password, secret => true; - "${name}/san_private_key": value => $san_private_key; - "${name}/san_clustername": value => $san_clustername; - "${name}/san_ssh_port": value => $san_ssh_port; - "${name}/san_api_port": value => $san_api_port; - "${name}/san_is_local": value => $san_is_local; - "${name}/ssh_conn_timeout": value => $ssh_conn_timeout; - "${name}/ssh_min_pool_conn": value => $ssh_min_pool_conn; - "${name}/ssh_max_pool_conn": value => $ssh_max_pool_conn; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/volume_driver": value => $volume_driver; + "${name}/san_thin_provision": value => $san_thin_provision; + "${name}/san_ip": value => $san_ip; + "${name}/san_login": value => $san_login; + "${name}/san_password": value => $san_password, secret => true; + "${name}/san_private_key": value => $san_private_key; + "${name}/san_clustername": value => $san_clustername; + "${name}/san_ssh_port": value => $san_ssh_port; + "${name}/san_api_port": value => $san_api_port; + "${name}/san_is_local": value => $san_is_local; + "${name}/ssh_conn_timeout": value => $ssh_conn_timeout; + "${name}/ssh_min_pool_conn": value => $ssh_min_pool_conn; + "${name}/ssh_max_pool_conn": value => $ssh_max_pool_conn; } if $manage_volume_type { diff --git a/manifests/backend/solidfire.pp b/manifests/backend/solidfire.pp index 3c7ceeb7..415dd294 100644 --- a/manifests/backend/solidfire.pp +++ b/manifests/backend/solidfire.pp @@ -15,6 +15,18 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*image_volume_cache_enabled*] +# (Optional) Enable Cinder's image cache function for this backend. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_size_gb*] +# (Optional) Max size of the image volume cache for this backend in GB. +# Defaults to $facts['os_service_default'], +# +# [*image_volume_cache_max_count*] +# (Optional) Max number of entries allowed in the image volume cache. +# Defaults to $facts['os_service_default'], +# # [*reserved_percentage*] # (Optional) The percentage of backend capacity is reserved. # Defaults to $facts['os_service_default']. @@ -107,50 +119,56 @@ define cinder::backend::solidfire( $san_ip, $san_login, $san_password, - $volume_backend_name = $name, - $backend_availability_zone = $facts['os_service_default'], - $reserved_percentage = $facts['os_service_default'], - $volume_driver = 'cinder.volume.drivers.solidfire.SolidFireDriver', - $sf_emulate_512 = $facts['os_service_default'], - $sf_allow_tenant_qos = $facts['os_service_default'], - $sf_account_prefix = $facts['os_service_default'], - $sf_api_port = $facts['os_service_default'], - $sf_volume_prefix = $facts['os_service_default'], - $sf_svip = $facts['os_service_default'], - $sf_enable_vag = $facts['os_service_default'], - $sf_provisioning_calc = $facts['os_service_default'], - $sf_cluster_pairing_timeout = $facts['os_service_default'], - $sf_volume_pairing_timeout = $facts['os_service_default'], - $sf_api_request_timeout = $facts['os_service_default'], - $sf_volume_clone_timeout = $facts['os_service_default'], - $sf_volume_create_timeout = $facts['os_service_default'], - Boolean $manage_volume_type = false, - Hash $extra_options = {}, + $volume_backend_name = $name, + $backend_availability_zone = $facts['os_service_default'], + $image_volume_cache_enabled = $facts['os_service_default'], + $image_volume_cache_max_size_gb = $facts['os_service_default'], + $image_volume_cache_max_count = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], + $volume_driver = 'cinder.volume.drivers.solidfire.SolidFireDriver', + $sf_emulate_512 = $facts['os_service_default'], + $sf_allow_tenant_qos = $facts['os_service_default'], + $sf_account_prefix = $facts['os_service_default'], + $sf_api_port = $facts['os_service_default'], + $sf_volume_prefix = $facts['os_service_default'], + $sf_svip = $facts['os_service_default'], + $sf_enable_vag = $facts['os_service_default'], + $sf_provisioning_calc = $facts['os_service_default'], + $sf_cluster_pairing_timeout = $facts['os_service_default'], + $sf_volume_pairing_timeout = $facts['os_service_default'], + $sf_api_request_timeout = $facts['os_service_default'], + $sf_volume_clone_timeout = $facts['os_service_default'], + $sf_volume_create_timeout = $facts['os_service_default'], + Boolean $manage_volume_type = false, + Hash $extra_options = {}, ) { include cinder::deps cinder_config { - "${name}/volume_backend_name": value => $volume_backend_name; - "${name}/backend_availability_zone": value => $backend_availability_zone; - "${name}/reserved_percentage": value => $reserved_percentage; - "${name}/volume_driver": value => $volume_driver; - "${name}/san_ip": value => $san_ip; - "${name}/san_login": value => $san_login; - "${name}/san_password": value => $san_password, secret => true; - "${name}/sf_emulate_512": value => $sf_emulate_512; - "${name}/sf_allow_tenant_qos": value => $sf_allow_tenant_qos; - "${name}/sf_account_prefix": value => $sf_account_prefix; - "${name}/sf_api_port": value => $sf_api_port; - "${name}/sf_volume_prefix": value => $sf_volume_prefix; - "${name}/sf_svip": value => $sf_svip; - "${name}/sf_enable_vag": value => $sf_enable_vag; - "${name}/sf_provisioning_calc": value => $sf_provisioning_calc; - "${name}/sf_cluster_pairing_timeout": value => $sf_cluster_pairing_timeout; - "${name}/sf_volume_pairing_timeout": value => $sf_volume_pairing_timeout; - "${name}/sf_api_request_timeout": value => $sf_api_request_timeout; - "${name}/sf_volume_clone_timeout": value => $sf_volume_clone_timeout; - "${name}/sf_volume_create_timeout": value => $sf_volume_create_timeout; + "${name}/volume_backend_name": value => $volume_backend_name; + "${name}/backend_availability_zone": value => $backend_availability_zone; + "${name}/image_volume_cache_enabled": value => $image_volume_cache_enabled; + "${name}/image_volume_cache_max_size_gb": value => $image_volume_cache_max_size_gb; + "${name}/image_volume_cache_max_count": value => $image_volume_cache_max_count; + "${name}/reserved_percentage": value => $reserved_percentage; + "${name}/volume_driver": value => $volume_driver; + "${name}/san_ip": value => $san_ip; + "${name}/san_login": value => $san_login; + "${name}/san_password": value => $san_password, secret => true; + "${name}/sf_emulate_512": value => $sf_emulate_512; + "${name}/sf_allow_tenant_qos": value => $sf_allow_tenant_qos; + "${name}/sf_account_prefix": value => $sf_account_prefix; + "${name}/sf_api_port": value => $sf_api_port; + "${name}/sf_volume_prefix": value => $sf_volume_prefix; + "${name}/sf_svip": value => $sf_svip; + "${name}/sf_enable_vag": value => $sf_enable_vag; + "${name}/sf_provisioning_calc": value => $sf_provisioning_calc; + "${name}/sf_cluster_pairing_timeout": value => $sf_cluster_pairing_timeout; + "${name}/sf_volume_pairing_timeout": value => $sf_volume_pairing_timeout; + "${name}/sf_api_request_timeout": value => $sf_api_request_timeout; + "${name}/sf_volume_clone_timeout": value => $sf_volume_clone_timeout; + "${name}/sf_volume_create_timeout": value => $sf_volume_create_timeout; } if $manage_volume_type { diff --git a/spec/classes/cinder_backend_defaults_spec.rb b/spec/classes/cinder_backend_defaults_spec.rb index eada9630..c34bf813 100644 --- a/spec/classes/cinder_backend_defaults_spec.rb +++ b/spec/classes/cinder_backend_defaults_spec.rb @@ -4,15 +4,31 @@ describe 'cinder::backend::defaults' do shared_examples 'cinder backend defaults' do - context 'configure cinder with default backend_defaults parameters' do - it { is_expected.to contain_cinder_config('backend_defaults/use_multipath_for_image_xfer').with_value('') } + context 'with defaults' do + it 'should configure cinder with default backend_defaults parameters' do + is_expected.to contain_cinder_config('backend_defaults/use_multipath_for_image_xfer').with_value('') + is_expected.to contain_cinder_config('backend_defaults/image_volume_cache_enabled').with_value('') + is_expected.to contain_cinder_config('backend_defaults/image_volume_cache_max_size_gb').with_value('') + is_expected.to contain_cinder_config('backend_defaults/image_volume_cache_max_count').with_value('') + end end - context 'configure cinder with user defined backend_defaults parameters' do + context 'with parameters' do let(:params) do - { :use_multipath_for_image_xfer => true, } + { + :use_multipath_for_image_xfer => true, + :image_volume_cache_enabled => true, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, + } + end + + it 'should configure cinder with user defined backend_defaults parameters' do + is_expected.to contain_cinder_config('backend_defaults/use_multipath_for_image_xfer').with_value(true) + is_expected.to contain_cinder_config('backend_defaults/image_volume_cache_enabled').with_value(true) + is_expected.to contain_cinder_config('backend_defaults/image_volume_cache_max_size_gb').with_value(100) + is_expected.to contain_cinder_config('backend_defaults/image_volume_cache_max_count').with_value(101) end - it { is_expected.to contain_cinder_config('backend_defaults/use_multipath_for_image_xfer').with_value(true) } end end diff --git a/spec/defines/cinder_backend_dellemc_powerflex_spec.rb b/spec/defines/cinder_backend_dellemc_powerflex_spec.rb index 8e14df45..8a1f3183 100644 --- a/spec/defines/cinder_backend_dellemc_powerflex_spec.rb +++ b/spec/defines/cinder_backend_dellemc_powerflex_spec.rb @@ -17,6 +17,9 @@ describe 'cinder::backend::dellemc_powerflex' do let :params2 do { :backend_availability_zone => 'my_zone', + :image_volume_cache_enabled => true, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, :powerflex_allow_migration_during_rebuild => 'true', :powerflex_allow_non_padded_volumes => 'false', :powerflex_max_over_subscription_ratio => '6.0', diff --git a/spec/defines/cinder_backend_dellemc_powermax_spec.rb b/spec/defines/cinder_backend_dellemc_powermax_spec.rb index 648fb0e7..5a27d16f 100644 --- a/spec/defines/cinder_backend_dellemc_powermax_spec.rb +++ b/spec/defines/cinder_backend_dellemc_powermax_spec.rb @@ -31,6 +31,9 @@ describe 'cinder::backend::dellemc_powermax' do is_expected.to contain_cinder_config("#{title}/powermax_port_groups").with_value('[OS-ISCSI-PG]') is_expected.to contain_cinder_config("#{title}/backend_availability_zone").with_value('') is_expected.to contain_cinder_config("#{title}/reserved_percentage").with_value('') + is_expected.to contain_cinder_config("#{title}/image_volume_cache_enabled").with_value('') + is_expected.to contain_cinder_config("#{title}/image_volume_cache_max_size_gb").with_value('') + is_expected.to contain_cinder_config("#{title}/image_volume_cache_max_count").with_value('') is_expected.to contain_package('pywbem').with( :ensure => 'installed', diff --git a/spec/defines/cinder_backend_dellemc_powerstore_spec.rb b/spec/defines/cinder_backend_dellemc_powerstore_spec.rb index ed3b729b..cfa37cb1 100644 --- a/spec/defines/cinder_backend_dellemc_powerstore_spec.rb +++ b/spec/defines/cinder_backend_dellemc_powerstore_spec.rb @@ -15,17 +15,23 @@ describe 'cinder::backend::dellemc_powerstore' do let :default_params do { - :powerstore_ports => '', - :backend_availability_zone => '', - :storage_protocol => 'iSCSI' , + :powerstore_ports => '', + :backend_availability_zone => '', + :image_volume_cache_enabled => '', + :image_volume_cache_max_size_gb => '', + :image_volume_cache_max_count => '', + :storage_protocol => 'iSCSI' , } end let :custom_params do { - :powerstore_ports => '58:cc:f0:98:49:22:07:02,58:cc:f0:98:49:23:07:02', - :backend_availability_zone => 'my_zone', - :storage_protocol => 'iSCSI' , + :powerstore_ports => '58:cc:f0:98:49:22:07:02,58:cc:f0:98:49:23:07:02', + :backend_availability_zone => 'my_zone', + :image_volume_cache_enabled => true, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, + :storage_protocol => 'iSCSI' , } end diff --git a/spec/defines/cinder_backend_dellemc_sc_spec.rb b/spec/defines/cinder_backend_dellemc_sc_spec.rb index 32723ccb..b3264815 100644 --- a/spec/defines/cinder_backend_dellemc_sc_spec.rb +++ b/spec/defines/cinder_backend_dellemc_sc_spec.rb @@ -17,33 +17,39 @@ describe 'cinder::backend::dellemc_sc' do let :default_params do { - :backend_availability_zone => '', - :dell_sc_api_port => '', - :dell_sc_server_folder => 'srv', - :dell_sc_verify_cert => '', - :dell_sc_volume_folder => 'vol', - :target_port => '', - :excluded_domain_ips => '', - :secondary_san_ip => '', - :secondary_san_login => '', - :secondary_san_password => '', - :secondary_sc_api_port => '', - :use_multipath_for_image_xfer => 'true', + :backend_availability_zone => '', + :image_volume_cache_enabled => '', + :image_volume_cache_max_size_gb => '', + :image_volume_cache_max_count => '', + :dell_sc_api_port => '', + :dell_sc_server_folder => 'srv', + :dell_sc_verify_cert => '', + :dell_sc_volume_folder => 'vol', + :target_port => '', + :excluded_domain_ips => '', + :secondary_san_ip => '', + :secondary_san_login => '', + :secondary_san_password => '', + :secondary_sc_api_port => '', + :use_multipath_for_image_xfer => 'true', } end let :custom_params do { - :backend_availability_zone => 'my_zone', - :dell_sc_api_port => 111, - :dell_sc_server_folder => 'other_srv', - :dell_sc_verify_cert => true, - :dell_sc_volume_folder => 'other_vol', - :target_port => 222, - :secondary_san_ip => '127.0.0.3', - :secondary_san_login => 'Foo', - :secondary_san_password => 'Bar', - :secondary_sc_api_port => 333, + :backend_availability_zone => 'my_zone', + :image_volume_cache_enabled => true, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, + :dell_sc_api_port => 111, + :dell_sc_server_folder => 'other_srv', + :dell_sc_verify_cert => true, + :dell_sc_volume_folder => 'other_vol', + :target_port => 222, + :secondary_san_ip => '127.0.0.3', + :secondary_san_login => 'Foo', + :secondary_san_password => 'Bar', + :secondary_sc_api_port => 333, } end diff --git a/spec/defines/cinder_backend_dellemc_unity_spec.rb b/spec/defines/cinder_backend_dellemc_unity_spec.rb index a61311be..9cf68f17 100644 --- a/spec/defines/cinder_backend_dellemc_unity_spec.rb +++ b/spec/defines/cinder_backend_dellemc_unity_spec.rb @@ -16,19 +16,25 @@ describe 'cinder::backend::dellemc_unity' do let :default_params do { - :backend_availability_zone => '', - :reserved_percentage => '', - :unity_io_ports => '', - :unity_storage_pool_names => '', + :backend_availability_zone => '', + :image_volume_cache_enabled => '', + :image_volume_cache_max_size_gb => '', + :image_volume_cache_max_count => '', + :reserved_percentage => '', + :unity_io_ports => '', + :unity_storage_pool_names => '', } end let :custom_params do { - :backend_availability_zone => 'my_zone', - :reserved_percentage => 10, - :unity_io_ports => '1,42,66', - :unity_storage_pool_names => 'pool_1,pool_2', + :backend_availability_zone => 'my_zone', + :image_volume_cache_enabled => true, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, + :reserved_percentage => 10, + :unity_io_ports => '1,42,66', + :unity_storage_pool_names => 'pool_1,pool_2', } end diff --git a/spec/defines/cinder_backend_dellemc_xtremio_spec.rb b/spec/defines/cinder_backend_dellemc_xtremio_spec.rb index 83d7a40a..a7a41a68 100644 --- a/spec/defines/cinder_backend_dellemc_xtremio_spec.rb +++ b/spec/defines/cinder_backend_dellemc_xtremio_spec.rb @@ -17,6 +17,9 @@ describe 'cinder::backend::dellemc_xtremio' do let :default_params do { :backend_availability_zone => '', + :image_volume_cache_enabled => '', + :image_volume_cache_max_size_gb => '', + :image_volume_cache_max_count => '', :reserved_percentage => '', :xtremio_array_busy_retry_count => '', :xtremio_array_busy_retry_interval => '', @@ -28,6 +31,9 @@ describe 'cinder::backend::dellemc_xtremio' do let :custom_params do { :backend_availability_zone => 'my_zone', + :image_volume_cache_enabled => true, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, :reserved_percentage => 10, :xtremio_array_busy_retry_count => 15, :xtremio_array_busy_retry_interval => 6, diff --git a/spec/defines/cinder_backend_emc_vnx_spec.rb b/spec/defines/cinder_backend_emc_vnx_spec.rb index aebecd94..46584cb9 100644 --- a/spec/defines/cinder_backend_emc_vnx_spec.rb +++ b/spec/defines/cinder_backend_emc_vnx_spec.rb @@ -37,6 +37,9 @@ describe 'cinder::backend::emc_vnx' do is_expected.to contain_cinder_config('emc/storage_vnx_security_file_dir').with_value('') is_expected.to contain_cinder_config('emc/naviseccli_path').with_value('') is_expected.to contain_cinder_config('emc/backend_availability_zone').with_value('') + is_expected.to contain_cinder_config('emc/image_volume_cache_enabled').with_value('') + is_expected.to contain_cinder_config('emc/image_volume_cache_max_size_gb').with_value('') + is_expected.to contain_cinder_config('emc/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('emc/reserved_percentage').with_value('') } end @@ -59,6 +62,9 @@ describe 'cinder::backend::emc_vnx' do :manage_volume_type => true, :storage_protocol => 'fc', :backend_availability_zone => 'my_zone', + :image_volume_cache_enabled => true, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, :reserved_percentage => 10, }) end @@ -78,6 +84,9 @@ describe 'cinder::backend::emc_vnx' do is_expected.to contain_cinder_config('emc/naviseccli_path').with_value(params[:naviseccli_path]) is_expected.to contain_cinder_config('emc/storage_protocol').with_value(params[:storage_protocol]) is_expected.to contain_cinder_config('emc/backend_availability_zone').with_value(params[:backend_availability_zone]) + is_expected.to contain_cinder_config('emc/image_volume_cache_enabled').with_value(params[:image_volume_cache_enabled]) + is_expected.to contain_cinder_config('emc/image_volume_cache_max_size_gb').with_value(params[:image_volume_cache_max_size_gb]) + is_expected.to contain_cinder_config('emc/image_volume_cache_max_count').with_value(params[:image_volume_cache_max_count]) is_expected.to contain_cinder_config('emc/reserved_percentage').with_value(params[:reserved_percentage]) } diff --git a/spec/defines/cinder_backend_gpfs_spec.rb b/spec/defines/cinder_backend_gpfs_spec.rb index b37e1eff..4c5aff57 100644 --- a/spec/defines/cinder_backend_gpfs_spec.rb +++ b/spec/defines/cinder_backend_gpfs_spec.rb @@ -11,31 +11,37 @@ describe 'cinder::backend::gpfs' do let :default_params do { - :backend_availability_zone => '', - :gpfs_max_clone_depth => '', - :gpfs_sparse_volumes => '', - :gpfs_storage_pool => '', - :gpfs_images_dir => '', - :gpfs_images_share_mode => '', - :nas_host => '', - :nas_login => '', - :nas_password => '', - :nas_private_key => '', - :nas_ssh_port => '', + :backend_availability_zone => '', + :image_volume_cache_enabled => '', + :image_volume_cache_max_size_gb => '', + :image_volume_cache_max_count => '', + :gpfs_max_clone_depth => '', + :gpfs_sparse_volumes => '', + :gpfs_storage_pool => '', + :gpfs_images_dir => '', + :gpfs_images_share_mode => '', + :nas_host => '', + :nas_login => '', + :nas_password => '', + :nas_private_key => '', + :nas_ssh_port => '', } end let :custom_params do { - :backend_availability_zone => 'my_zone', - :gpfs_max_clone_depth => 1, - :gpfs_sparse_volumes => false, - :gpfs_storage_pool => 'foo', - :nas_host => 'nas_host', - :nas_login => 'admin', - :nas_password => 'nas_password', - :nas_private_key => '/path/to/private_key', - :nas_ssh_port => '22', + :backend_availability_zone => 'my_zone', + :image_volume_cache_enabled => true, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, + :gpfs_max_clone_depth => 1, + :gpfs_sparse_volumes => false, + :gpfs_storage_pool => 'foo', + :nas_host => 'nas_host', + :nas_login => 'admin', + :nas_password => 'nas_password', + :nas_private_key => '/path/to/private_key', + :nas_ssh_port => '22', } end diff --git a/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb b/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb index 5e920c25..17e0259c 100644 --- a/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb +++ b/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb @@ -24,6 +24,9 @@ describe 'cinder::backend::hpe3par_iscsi' do it { is_expected.to contain_cinder_config('hpe3par_iscsi/volume_driver').with_value('cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver') is_expected.to contain_cinder_config('hpe3par_iscsi/backend_availability_zone').with_value('') + is_expected.to contain_cinder_config('hpe3par_iscsi/image_volume_cache_enabled').with_value('') + is_expected.to contain_cinder_config('hpe3par_iscsi/image_volume_cache_max_size_gb').with_value('') + is_expected.to contain_cinder_config('hpe3par_iscsi/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('hpe3par_iscsi/reserved_percentage').with_value('') is_expected.to contain_cinder_config('hpe3par_iscsi/hpe3par_api_url').with_value('https://172.0.0.2:8080/api/v1') is_expected.to contain_cinder_config('hpe3par_iscsi/hpe3par_username').with_value('3paradm') diff --git a/spec/defines/cinder_backend_ibm_svf_spec.rb b/spec/defines/cinder_backend_ibm_svf_spec.rb index 09241add..44abebb0 100644 --- a/spec/defines/cinder_backend_ibm_svf_spec.rb +++ b/spec/defines/cinder_backend_ibm_svf_spec.rb @@ -30,6 +30,9 @@ describe 'cinder::backend::ibm_svf' do is_expected.to contain_cinder_config("#{title}/storwize_svc_retain_aux_volume").with_value('') is_expected.to contain_cinder_config("#{title}/storwize_portset").with_value('') is_expected.to contain_cinder_config("#{title}/backend_availability_zone").with_value('') + is_expected.to contain_cinder_config("#{title}/image_volume_cache_enabled").with_value('') + is_expected.to contain_cinder_config("#{title}/image_volume_cache_max_size_gb").with_value('') + is_expected.to contain_cinder_config("#{title}/image_volume_cache_max_count").with_value('') is_expected.to contain_cinder_config("#{title}/reserved_percentage").with_value('') end end diff --git a/spec/defines/cinder_backend_iscsi_spec.rb b/spec/defines/cinder_backend_iscsi_spec.rb index 7c89277c..7325095a 100644 --- a/spec/defines/cinder_backend_iscsi_spec.rb +++ b/spec/defines/cinder_backend_iscsi_spec.rb @@ -7,6 +7,9 @@ describe 'cinder::backend::iscsi' do context 'with default params' do it { is_expected.to contain_cinder_config('hippo/volume_backend_name').with_value('hippo') + is_expected.to contain_cinder_config('hippo/image_volume_cache_enabled').with_value('') + is_expected.to contain_cinder_config('hippo/image_volume_cache_max_size_gb').with_value('') + is_expected.to contain_cinder_config('hippo/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('hippo/backend_availability_zone').with_value('') is_expected.to contain_cinder_config('hippo/reserved_percentage').with_value('') is_expected.to contain_cinder_config('hippo/volume_driver').with_value('cinder.volume.drivers.lvm.LVMVolumeDriver') @@ -21,16 +24,22 @@ describe 'cinder::backend::iscsi' do context 'with parameters' do let :params do { - :backend_availability_zone => 'nova', - :reserved_percentage => 10, - :target_ip_address => '192.0.2.1', - :volume_group => 'volumegroup', - :volumes_dir => '/etc/cinder/volumes', - :target_protocol => 'iser' + :backend_availability_zone => 'nova', + :image_volume_cache_enabled => true, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, + :reserved_percentage => 10, + :target_ip_address => '192.0.2.1', + :volume_group => 'volumegroup', + :volumes_dir => '/etc/cinder/volumes', + :target_protocol => 'iser' } end it { is_expected.to contain_cinder_config('hippo/backend_availability_zone').with_value('nova') + is_expected.to contain_cinder_config('hippo/image_volume_cache_enabled').with_value(true) + is_expected.to contain_cinder_config('hippo/image_volume_cache_max_size_gb').with_value(100) + is_expected.to contain_cinder_config('hippo/image_volume_cache_max_count').with_value(101) is_expected.to contain_cinder_config('hippo/reserved_percentage').with_value(10) is_expected.to contain_cinder_config('hippo/target_ip_address').with_value('192.0.2.1') is_expected.to contain_cinder_config('hippo/volume_group').with_value('volumegroup') diff --git a/spec/defines/cinder_backend_netapp_spec.rb b/spec/defines/cinder_backend_netapp_spec.rb index d0d95e93..c3d49dab 100644 --- a/spec/defines/cinder_backend_netapp_spec.rb +++ b/spec/defines/cinder_backend_netapp_spec.rb @@ -16,22 +16,25 @@ describe 'cinder::backend::netapp' do let :default_params do { - :backend_availability_zone => '', - :reserved_percentage => '', - :netapp_server_port => '', - :netapp_size_multiplier => '', - :netapp_storage_family => '', - :netapp_storage_protocol => 'nfs', - :netapp_transport_type => '', - :netapp_vserver => '', - :expiry_thres_minutes => '', - :thres_avl_size_perc_start => '', - :thres_avl_size_perc_stop => '', - :nfs_shares_config => '/etc/cinder/shares.conf', - :netapp_copyoffload_tool_path => '', - :nfs_mount_options => '', - :nas_secure_file_operations => '', - :nas_secure_file_permissions => '', + :backend_availability_zone => '', + :image_volume_cache_enabled => '', + :image_volume_cache_max_size_gb => '', + :image_volume_cache_max_count => '', + :reserved_percentage => '', + :netapp_server_port => '', + :netapp_size_multiplier => '', + :netapp_storage_family => '', + :netapp_storage_protocol => 'nfs', + :netapp_transport_type => '', + :netapp_vserver => '', + :expiry_thres_minutes => '', + :thres_avl_size_perc_start => '', + :thres_avl_size_perc_stop => '', + :nfs_shares_config => '/etc/cinder/shares.conf', + :netapp_copyoffload_tool_path => '', + :nfs_mount_options => '', + :nas_secure_file_operations => '', + :nas_secure_file_permissions => '', } end diff --git a/spec/defines/cinder_backend_nexenta_spec.rb b/spec/defines/cinder_backend_nexenta_spec.rb index d343c488..df39ade2 100644 --- a/spec/defines/cinder_backend_nexenta_spec.rb +++ b/spec/defines/cinder_backend_nexenta_spec.rb @@ -16,15 +16,18 @@ describe 'cinder::backend::nexenta' do let :default_params do { - :nexenta_volume => 'cinder', - :nexenta_target_prefix => 'iqn:', - :nexenta_target_group_prefix => 'cinder/', - :nexenta_blocksize => '8192', - :nexenta_sparse => true, - :nexenta_rest_port => '8457', - :volume_driver => 'cinder.volume.drivers.nexenta.iscsi.NexentaISCSIDriver', - :backend_availability_zone => '', - :reserved_percentage => '', + :nexenta_volume => 'cinder', + :nexenta_target_prefix => 'iqn:', + :nexenta_target_group_prefix => 'cinder/', + :nexenta_blocksize => '8192', + :nexenta_sparse => true, + :nexenta_rest_port => '8457', + :volume_driver => 'cinder.volume.drivers.nexenta.iscsi.NexentaISCSIDriver', + :backend_availability_zone => '', + :image_volume_cache_enabled => '', + :image_volume_cache_max_size_gb => '', + :image_volume_cache_max_count => '', + :reserved_percentage => '', } end diff --git a/spec/defines/cinder_backend_nvmeof_spec.rb b/spec/defines/cinder_backend_nvmeof_spec.rb index 302baad7..dc3678dc 100644 --- a/spec/defines/cinder_backend_nvmeof_spec.rb +++ b/spec/defines/cinder_backend_nvmeof_spec.rb @@ -26,6 +26,9 @@ describe 'cinder::backend::nvmeof' do is_expected.to contain_cinder_config('nvme-backend/nvmet_ns_id').with_value('') is_expected.to contain_cinder_config('nvme-backend/volume_backend_name').with_value('nvme-backend') is_expected.to contain_cinder_config('nvme-backend/backend_availability_zone').with_value('') + is_expected.to contain_cinder_config('nvme-backend/image_volume_cache_enabled').with_value('') + is_expected.to contain_cinder_config('nvme-backend/image_volume_cache_max_size_gb').with_value('') + is_expected.to contain_cinder_config('nvme-backend/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('nvme-backend/volume_driver').with_value('cinder.volume.drivers.lvm.LVMVolumeDriver') is_expected.to contain_cinder_config('nvme-backend/nvmeof_conn_info_version').with_value('') is_expected.to contain_cinder_config('nvme-backend/lvm_share_target').with_value('') diff --git a/spec/defines/cinder_backend_pure_spec.rb b/spec/defines/cinder_backend_pure_spec.rb index 3385d21f..d1a4b46c 100644 --- a/spec/defines/cinder_backend_pure_spec.rb +++ b/spec/defines/cinder_backend_pure_spec.rb @@ -19,12 +19,14 @@ describe 'cinder::backend::pure' do it { is_expected.to contain_cinder_config('pure/volume_driver').with_value('cinder.volume.drivers.pure.PureISCSIDriver') is_expected.to contain_cinder_config('pure/backend_availability_zone').with_value('') + is_expected.to contain_cinder_config('pure/image_volume_cache_enabled').with_value('true') + is_expected.to contain_cinder_config('pure/image_volume_cache_max_size_gb').with_value('') + is_expected.to contain_cinder_config('pure/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('pure/reserved_percentage').with_value('') is_expected.to contain_cinder_config('pure/san_ip').with_value('127.0.0.2') is_expected.to contain_cinder_config('pure/pure_api_token').with_value('abc123def456ghi789') is_expected.to contain_cinder_config('pure/use_multipath_for_image_xfer').with_value('true') is_expected.to contain_cinder_config('pure/use_chap_auth').with_value('false') - is_expected.to contain_cinder_config('pure/image_volume_cache_enabled').with_value('true') is_expected.to contain_cinder_config('pure/pure_eradicate_on_delete').with_value('') is_expected.to contain_cinder_config('pure/pure_iscsi_cidr').with_value('') is_expected.to contain_cinder_config('pure/pure_iscsi_cidr_list').with_value('') @@ -45,6 +47,9 @@ describe 'cinder::backend::pure' do it { is_expected.to contain_cinder_config('pure/volume_driver').with_value('cinder.volume.drivers.pure.PureISCSIDriver') is_expected.to contain_cinder_config('pure/backend_availability_zone').with_value('my_zone') + is_expected.to contain_cinder_config('pure/image_volume_cache_enabled').with_value('true') + is_expected.to contain_cinder_config('pure/image_volume_cache_max_size_gb').with_value('') + is_expected.to contain_cinder_config('pure/image_volume_cache_max_count').with_value('') is_expected.to contain_cinder_config('pure/reserved_percentage').with_value(10) is_expected.to contain_cinder_config('pure/san_ip').with_value('127.0.0.2') is_expected.to contain_cinder_config('pure/pure_api_token').with_value('abc123def456ghi789') @@ -64,6 +69,11 @@ describe 'cinder::backend::pure' do it { is_expected.to contain_cinder_config('pure/volume_driver').with_value('cinder.volume.drivers.pure.PureFCDriver') + is_expected.to contain_cinder_config('pure/backend_availability_zone').with_value('') + is_expected.to contain_cinder_config('pure/image_volume_cache_enabled').with_value('true') + is_expected.to contain_cinder_config('pure/image_volume_cache_max_size_gb').with_value('') + is_expected.to contain_cinder_config('pure/image_volume_cache_max_count').with_value('') + is_expected.to contain_cinder_config('pure/reserved_percentage').with_value('') is_expected.to contain_cinder_config('pure/san_ip').with_value('127.0.0.2') is_expected.to contain_cinder_config('pure/pure_api_token').with_value('abc123def456ghi789') is_expected.to contain_cinder_config('pure/use_multipath_for_image_xfer').with_value('true') @@ -80,6 +90,11 @@ describe 'cinder::backend::pure' do it { is_expected.to contain_cinder_config('pure/volume_driver').with_value('cinder.volume.drivers.pure.PureNVMEDriver') + is_expected.to contain_cinder_config('pure/backend_availability_zone').with_value('') + is_expected.to contain_cinder_config('pure/image_volume_cache_enabled').with_value('true') + is_expected.to contain_cinder_config('pure/image_volume_cache_max_size_gb').with_value('') + is_expected.to contain_cinder_config('pure/image_volume_cache_max_count').with_value('') + is_expected.to contain_cinder_config('pure/reserved_percentage').with_value('') is_expected.to contain_cinder_config('pure/san_ip').with_value('127.0.0.2') is_expected.to contain_cinder_config('pure/pure_api_token').with_value('abc123def456ghi789') is_expected.to contain_cinder_config('pure/use_multipath_for_image_xfer').with_value('true') @@ -112,13 +127,19 @@ describe 'cinder::backend::pure' do )} end - context 'pure volume driver with image_volume_cache_enabled disabled' do + context 'pure volume driver with image volume cache options' do let :params do - req_params.merge({'image_volume_cache_enabled' => false}) + req_params.merge({ + :image_volume_cache_enabled => false, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, + }) end it { - is_expected.to contain_cinder_config('pure/image_volume_cache_enabled').with_value('false') + is_expected.to contain_cinder_config('pure/image_volume_cache_enabled').with_value(false) + is_expected.to contain_cinder_config('pure/image_volume_cache_max_size_gb').with_value(100) + is_expected.to contain_cinder_config('pure/image_volume_cache_max_count').with_value(101) } end diff --git a/spec/defines/cinder_backend_quobyte_spec.rb b/spec/defines/cinder_backend_quobyte_spec.rb index d4e419d9..82b136ce 100644 --- a/spec/defines/cinder_backend_quobyte_spec.rb +++ b/spec/defines/cinder_backend_quobyte_spec.rb @@ -25,6 +25,9 @@ describe 'cinder::backend::quobyte' do is_expected.to contain_cinder_config('myquobyte/quobyte_qcow2_volumes').with_value(false) is_expected.to contain_cinder_config('myquobyte/quobyte_sparsed_volumes').with_value(true) is_expected.to contain_cinder_config('myquobyte/backend_availability_zone').with_value('my_zone') + is_expected.to contain_cinder_config('myquobyte/image_volume_cache_enabled').with_value('') + is_expected.to contain_cinder_config('myquobyte/image_volume_cache_max_size_gb').with_value('') + is_expected.to contain_cinder_config('myquobyte/image_volume_cache_max_count').with_value('') } context 'quobyte backend with cinder type' do diff --git a/spec/defines/cinder_backend_san_spec.rb b/spec/defines/cinder_backend_san_spec.rb index 0e28583d..f3f5b939 100644 --- a/spec/defines/cinder_backend_san_spec.rb +++ b/spec/defines/cinder_backend_san_spec.rb @@ -11,19 +11,22 @@ describe 'cinder::backend::san' do let :default_params do { - :backend_availability_zone => '', - :san_thin_provision => '', - :san_ip => '', - :san_login => '', - :san_password => '', - :san_private_key => '', - :san_clustername => '', - :san_ssh_port => '', - :san_api_port => '', - :san_is_local => '', - :ssh_conn_timeout => '', - :ssh_min_pool_conn => '', - :ssh_max_pool_conn => '', + :backend_availability_zone => '', + :image_volume_cache_enabled => '', + :image_volume_cache_max_size_gb => '', + :image_volume_cache_max_count => '', + :san_thin_provision => '', + :san_ip => '', + :san_login => '', + :san_password => '', + :san_private_key => '', + :san_clustername => '', + :san_ssh_port => '', + :san_api_port => '', + :san_is_local => '', + :ssh_conn_timeout => '', + :ssh_min_pool_conn => '', + :ssh_max_pool_conn => '', } end diff --git a/spec/defines/cinder_backend_solidfire_spec.rb b/spec/defines/cinder_backend_solidfire_spec.rb index 130aeb5e..7a5c5b3c 100644 --- a/spec/defines/cinder_backend_solidfire_spec.rb +++ b/spec/defines/cinder_backend_solidfire_spec.rb @@ -15,41 +15,47 @@ describe 'cinder::backend::solidfire' do let :default_params do { - :backend_availability_zone => '', - :reserved_percentage => '', - :sf_emulate_512 => '', - :sf_allow_tenant_qos => '', - :sf_account_prefix => '', - :sf_api_port => '', - :sf_volume_prefix => '', - :sf_svip => '', - :sf_enable_vag => '', - :sf_provisioning_calc => '', - :sf_cluster_pairing_timeout => '', - :sf_volume_pairing_timeout => '', - :sf_api_request_timeout => '', - :sf_volume_clone_timeout => '', - :sf_volume_create_timeout => '', + :backend_availability_zone => '', + :image_volume_cache_enabled => '', + :image_volume_cache_max_size_gb => '', + :image_volume_cache_max_count => '', + :reserved_percentage => '', + :sf_emulate_512 => '', + :sf_allow_tenant_qos => '', + :sf_account_prefix => '', + :sf_api_port => '', + :sf_volume_prefix => '', + :sf_svip => '', + :sf_enable_vag => '', + :sf_provisioning_calc => '', + :sf_cluster_pairing_timeout => '', + :sf_volume_pairing_timeout => '', + :sf_api_request_timeout => '', + :sf_volume_clone_timeout => '', + :sf_volume_create_timeout => '', } end let :other_params do { - :backend_availability_zone => 'az1', - :reserved_percentage => 10, - :sf_emulate_512 => true, - :sf_allow_tenant_qos => false, - :sf_account_prefix => 'acc_prefix', - :sf_api_port => 443, - :sf_volume_prefix => 'UUID-', - :sf_svip => 'svip', - :sf_enable_vag => false, - :sf_provisioning_calc => 'maxProvisionedSpace', - :sf_cluster_pairing_timeout => 60, - :sf_volume_pairing_timeout => 3600, - :sf_api_request_timeout => 30, - :sf_volume_clone_timeout => 600, - :sf_volume_create_timeout => 60, + :backend_availability_zone => 'az1', + :image_volume_cache_enabled => true, + :image_volume_cache_max_size_gb => 100, + :image_volume_cache_max_count => 101, + :reserved_percentage => 10, + :sf_emulate_512 => true, + :sf_allow_tenant_qos => false, + :sf_account_prefix => 'acc_prefix', + :sf_api_port => 443, + :sf_volume_prefix => 'UUID-', + :sf_svip => 'svip', + :sf_enable_vag => false, + :sf_provisioning_calc => 'maxProvisionedSpace', + :sf_cluster_pairing_timeout => 60, + :sf_volume_pairing_timeout => 3600, + :sf_api_request_timeout => 30, + :sf_volume_clone_timeout => 600, + :sf_volume_create_timeout => 60, } end