diff --git a/manifests/backend/dellemc_powermax.pp b/manifests/backend/dellemc_powermax.pp index 603c45ec..0f6edb46 100644 --- a/manifests/backend/dellemc_powermax.pp +++ b/manifests/backend/dellemc_powermax.pp @@ -40,6 +40,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# 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 @@ -62,6 +66,7 @@ define cinder::backend::dellemc_powermax ( Enum['iSCSI', 'FC'] $powermax_storage_protocol = 'iSCSI', $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], Hash $extra_options = {}, Boolean $manage_volume_type = false, ) { @@ -83,6 +88,7 @@ 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; diff --git a/manifests/backend/dellemc_unity.pp b/manifests/backend/dellemc_unity.pp index c9757dc1..4f941b26 100644 --- a/manifests/backend/dellemc_unity.pp +++ b/manifests/backend/dellemc_unity.pp @@ -26,6 +26,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# Defaults to $facts['os_service_default']. +# # [*unity_io_ports*] # (optional) A list of iSCSI or FC ports to be used. Each port can be # Unix-style glob expressions. The Unity Unisphere API port. @@ -54,6 +58,7 @@ define cinder::backend::dellemc_unity ( $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, @@ -66,6 +71,7 @@ define cinder::backend::dellemc_unity ( 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; diff --git a/manifests/backend/dellemc_xtremio.pp b/manifests/backend/dellemc_xtremio.pp index f7f23ab2..8d901782 100644 --- a/manifests/backend/dellemc_xtremio.pp +++ b/manifests/backend/dellemc_xtremio.pp @@ -26,6 +26,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# Defaults to $facts['os_service_default']. +# # [*xtremio_array_busy_retry_count*] # (optional) Number of retries in case array is busy. # Defaults to $facts['os_service_default'] @@ -69,6 +73,7 @@ define cinder::backend::dellemc_xtremio ( $xtremio_cluster_name, $volume_backend_name = $name, $backend_availability_zone = $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'], $xtremio_volumes_per_glance_cache = $facts['os_service_default'], @@ -88,6 +93,7 @@ define cinder::backend::dellemc_xtremio ( 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; diff --git a/manifests/backend/emc_vnx.pp b/manifests/backend/emc_vnx.pp index d11c4a60..1fba34ac 100644 --- a/manifests/backend/emc_vnx.pp +++ b/manifests/backend/emc_vnx.pp @@ -16,6 +16,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# Defaults to $facts['os_service_default']. +# # [*san_ip*] # (required) IP address of SAN controller. # @@ -121,6 +125,7 @@ define cinder::backend::emc_vnx ( $san_login = 'admin', $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], Hash $extra_options = {}, $volume_driver = 'cinder.volume.drivers.dell_emc.vnx.driver.VNXDriver', $storage_protocol = 'iscsi', @@ -151,6 +156,7 @@ 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}/reserved_percentage": value => $reserved_percentage; "${name}/volume_driver": value => $volume_driver; "${name}/storage_protocol": value => $storage_protocol; "${name}/destroy_empty_storage_group": value => $destroy_empty_storage_group; diff --git a/manifests/backend/hpe3par_iscsi.pp b/manifests/backend/hpe3par_iscsi.pp index 2b20f2dd..55cdd1d7 100644 --- a/manifests/backend/hpe3par_iscsi.pp +++ b/manifests/backend/hpe3par_iscsi.pp @@ -37,6 +37,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# Defaults to $facts['os_service_default']. +# # [*volume_driver*] # (optional) Setup cinder-volume to use HPE 3par volume driver. # Defaults to 'cinder.volume.drivers.hpe.hpe_3par_iscsi.HPE3PARISCSIDriver'. @@ -81,6 +85,7 @@ define cinder::backend::hpe3par_iscsi( $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', @@ -99,6 +104,7 @@ 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; diff --git a/manifests/backend/ibm_svf.pp b/manifests/backend/ibm_svf.pp index d6e1c05f..8b9c3744 100644 --- a/manifests/backend/ibm_svf.pp +++ b/manifests/backend/ibm_svf.pp @@ -53,6 +53,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# 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 @@ -77,6 +81,7 @@ define cinder::backend::ibm_svf ( $storwize_portset = $facts['os_service_default'], $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], Hash $extra_options = {}, Boolean $manage_volume_type = false, ) { @@ -93,6 +98,7 @@ define cinder::backend::ibm_svf ( 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; diff --git a/manifests/backend/iscsi.pp b/manifests/backend/iscsi.pp index b970ba50..3b5e6088 100644 --- a/manifests/backend/iscsi.pp +++ b/manifests/backend/iscsi.pp @@ -17,6 +17,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# Defaults to $facts['os_service_default']. +# # [*volume_driver*] # (Optional) Driver to use for volume creation # Defaults to 'cinder.volume.drivers.lvm.LVMVolumeDriver'. @@ -53,6 +57,7 @@ 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', @@ -82,6 +87,7 @@ 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; diff --git a/manifests/backend/netapp.pp b/manifests/backend/netapp.pp index 712fccfb..21b88fdf 100644 --- a/manifests/backend/netapp.pp +++ b/manifests/backend/netapp.pp @@ -27,6 +27,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# Defaults to $facts['os_service_default']. +# # [*netapp_server_port*] # (optional) The TCP port to use for communication with the storage # system or proxy. If not specified, Data ONTAP drivers will use 80 @@ -172,6 +176,7 @@ define cinder::backend::netapp ( $netapp_server_hostname, $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], $netapp_server_port = $facts['os_service_default'], $netapp_size_multiplier = $facts['os_service_default'], $netapp_storage_family = $facts['os_service_default'], @@ -213,6 +218,7 @@ 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}/reserved_percentage": value => $reserved_percentage; "${name}/volume_driver": value => 'cinder.volume.drivers.netapp.common.NetAppDriver'; "${name}/netapp_login": value => $netapp_login; "${name}/netapp_password": value => $netapp_password, secret => true; diff --git a/manifests/backend/nexenta.pp b/manifests/backend/nexenta.pp index 8370fe0c..19844e07 100644 --- a/manifests/backend/nexenta.pp +++ b/manifests/backend/nexenta.pp @@ -23,6 +23,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# Defaults to $facts['os_service_default']. +# # [*nexenta_volume*] # (optional) Pool on SA that will hold all volumes. # Defaults to 'cinder'. @@ -69,6 +73,7 @@ define cinder::backend::nexenta ( $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/', @@ -85,6 +90,7 @@ define cinder::backend::nexenta ( 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; diff --git a/manifests/backend/pure.pp b/manifests/backend/pure.pp index 10a9a3b8..eddfa32f 100644 --- a/manifests/backend/pure.pp +++ b/manifests/backend/pure.pp @@ -21,6 +21,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# Defaults to $facts['os_service_default']. +# # [*pure_storage_protocol*] # (optional) Must be either 'iSCSI', 'FC' or 'NVMe'. This will determine # which Volume Driver will be configured; PureISCSIDriver, PureFCDriver @@ -97,6 +101,7 @@ define cinder::backend::pure( $pure_api_token, $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], Enum['iSCSI', 'FC', 'NVMe'] $pure_storage_protocol = 'iSCSI', $use_chap_auth = false, $use_multipath_for_image_xfer = true, @@ -123,6 +128,7 @@ 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; diff --git a/manifests/backend/rbd.pp b/manifests/backend/rbd.pp index e20d22cc..80bf7974 100644 --- a/manifests/backend/rbd.pp +++ b/manifests/backend/rbd.pp @@ -27,6 +27,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# Defaults to $facts['os_service_default']. +# # [*rbd_ceph_conf*] # (optional) Path to the ceph configuration file to use # Defaults to '/etc/ceph/ceph.conf' @@ -90,6 +94,7 @@ define cinder::backend::rbd ( $backend_host = undef, $volume_backend_name = $name, $backend_availability_zone = $facts['os_service_default'], + $reserved_percentage = $facts['os_service_default'], $rbd_ceph_conf = '/etc/ceph/ceph.conf', $rbd_flatten_volume_from_snapshot = $facts['os_service_default'], $rbd_secret_uuid = $facts['os_service_default'], @@ -118,6 +123,7 @@ define cinder::backend::rbd ( 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.rbd.RBDDriver'; "${name}/rbd_ceph_conf": value => $rbd_ceph_conf; "${name}/rbd_user": value => $rbd_user; diff --git a/manifests/backend/solidfire.pp b/manifests/backend/solidfire.pp index ab86b6a6..3c7ceeb7 100644 --- a/manifests/backend/solidfire.pp +++ b/manifests/backend/solidfire.pp @@ -15,6 +15,10 @@ # is used as the default for all backends. # Defaults to $facts['os_service_default']. # +# [*reserved_percentage*] +# (Optional) The percentage of backend capacity is reserved. +# Defaults to $facts['os_service_default']. +# # [*volume_driver*] # (optional) Setup cinder-volume to use SolidFire volume driver. # Defaults to 'cinder.volume.drivers.solidfire.SolidFireDriver' @@ -105,6 +109,7 @@ define cinder::backend::solidfire( $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'], @@ -128,6 +133,7 @@ define cinder::backend::solidfire( 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; diff --git a/releasenotes/notes/reserved_percentage-82ea6b1474219ffc.yaml b/releasenotes/notes/reserved_percentage-82ea6b1474219ffc.yaml new file mode 100644 index 00000000..b970bd4c --- /dev/null +++ b/releasenotes/notes/reserved_percentage-82ea6b1474219ffc.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + The ``reserved_percentage`` parameter has been added. Note that + the parameter is available in the defined resource types for the volume + drivers which actually uses the option. diff --git a/spec/defines/cinder_backend_dellemc_powermax_spec.rb b/spec/defines/cinder_backend_dellemc_powermax_spec.rb index 63154b99..648fb0e7 100644 --- a/spec/defines/cinder_backend_dellemc_powermax_spec.rb +++ b/spec/defines/cinder_backend_dellemc_powermax_spec.rb @@ -30,6 +30,7 @@ describe 'cinder::backend::dellemc_powermax' do is_expected.to contain_cinder_config("#{title}/powermax_srp").with_value('SRP_1') 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_package('pywbem').with( :ensure => 'installed', @@ -79,13 +80,17 @@ describe 'cinder::backend::dellemc_powermax' do end end - context 'with custom backend_availability_zone' do + context 'with parameters' do before do - params.merge!(:backend_availability_zone => 'my_zone') + params.merge!({ + :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, + }) end - it 'should configure the backend_availability_zone' do + it 'should configure the customized values' do is_expected.to contain_cinder_config("#{title}/backend_availability_zone").with_value('my_zone') + is_expected.to contain_cinder_config("#{title}/reserved_percentage").with_value(10) end end diff --git a/spec/defines/cinder_backend_dellemc_unity_spec.rb b/spec/defines/cinder_backend_dellemc_unity_spec.rb index ee135039..a61311be 100644 --- a/spec/defines/cinder_backend_dellemc_unity_spec.rb +++ b/spec/defines/cinder_backend_dellemc_unity_spec.rb @@ -17,6 +17,7 @@ describe 'cinder::backend::dellemc_unity' do let :default_params do { :backend_availability_zone => '', + :reserved_percentage => '', :unity_io_ports => '', :unity_storage_pool_names => '', } @@ -25,6 +26,7 @@ describe 'cinder::backend::dellemc_unity' do 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', } diff --git a/spec/defines/cinder_backend_dellemc_xtremio_spec.rb b/spec/defines/cinder_backend_dellemc_xtremio_spec.rb index 745fa2e1..83d7a40a 100644 --- a/spec/defines/cinder_backend_dellemc_xtremio_spec.rb +++ b/spec/defines/cinder_backend_dellemc_xtremio_spec.rb @@ -17,6 +17,7 @@ describe 'cinder::backend::dellemc_xtremio' do let :default_params do { :backend_availability_zone => '', + :reserved_percentage => '', :xtremio_array_busy_retry_count => '', :xtremio_array_busy_retry_interval => '', :xtremio_volumes_per_glance_cache => '', @@ -27,6 +28,7 @@ describe 'cinder::backend::dellemc_xtremio' do let :custom_params do { :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, :xtremio_array_busy_retry_count => 15, :xtremio_array_busy_retry_interval => 6, :xtremio_volumes_per_glance_cache => 100, diff --git a/spec/defines/cinder_backend_emc_vnx_spec.rb b/spec/defines/cinder_backend_emc_vnx_spec.rb index 82adff01..aebecd94 100644 --- a/spec/defines/cinder_backend_emc_vnx_spec.rb +++ b/spec/defines/cinder_backend_emc_vnx_spec.rb @@ -37,6 +37,7 @@ 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/reserved_percentage').with_value('') } end @@ -58,6 +59,7 @@ describe 'cinder::backend::emc_vnx' do :manage_volume_type => true, :storage_protocol => 'fc', :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, }) end @@ -76,6 +78,7 @@ 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/reserved_percentage').with_value(params[:reserved_percentage]) } it { is_expected.to contain_cinder_type('emc').with( diff --git a/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb b/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb index 54cff761..5e920c25 100644 --- a/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb +++ b/spec/defines/cinder_backend_hpe3par_iscsi_spec.rb @@ -5,7 +5,6 @@ describe 'cinder::backend::hpe3par_iscsi' do let :req_params do { - :backend_availability_zone => 'my_zone', :hpe3par_api_url => 'https://172.0.0.2:8080/api/v1', :hpe3par_username => '3paradm', :hpe3par_password => 'password', @@ -21,10 +20,11 @@ describe 'cinder::backend::hpe3par_iscsi' do end shared_examples 'cinder::backend::hpe3par_iscsi' do - context 'hpe3par_iscsi volume driver' do + context 'with default parameters' 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('my_zone') + is_expected.to contain_cinder_config('hpe3par_iscsi/backend_availability_zone').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') is_expected.to contain_cinder_config('hpe3par_iscsi/hpe3par_password').with_value('password') @@ -35,6 +35,19 @@ describe 'cinder::backend::hpe3par_iscsi' do } end + context 'with parameters' do + before :each do + params.merge!({ + :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, + }) + end + it { + is_expected.to contain_cinder_config('hpe3par_iscsi/backend_availability_zone').with_value('my_zone') + is_expected.to contain_cinder_config('hpe3par_iscsi/reserved_percentage').with_value(10) + } + end + context 'hpe3par_iscsi backend with additional configuration' do before :each do params.merge!( :extra_options => {'hpe3par_iscsi/param1' => {'value' => 'value1'}} ) diff --git a/spec/defines/cinder_backend_ibm_svf_spec.rb b/spec/defines/cinder_backend_ibm_svf_spec.rb index 7701537b..09241add 100644 --- a/spec/defines/cinder_backend_ibm_svf_spec.rb +++ b/spec/defines/cinder_backend_ibm_svf_spec.rb @@ -30,6 +30,7 @@ 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}/reserved_percentage").with_value('') end end @@ -55,13 +56,17 @@ describe 'cinder::backend::ibm_svf' do end end - context 'with custom backend_availability_zone' do + context 'with parameters' do before do - params.merge!(:backend_availability_zone => 'my_zone') + params.merge!( + :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, + ) end - it 'should configure the backend_availability_zone' do + it 'should configure the customized values' do is_expected.to contain_cinder_config("#{title}/backend_availability_zone").with_value('my_zone') + is_expected.to contain_cinder_config("#{title}/reserved_percentage").with_value(10) end end diff --git a/spec/defines/cinder_backend_iscsi_spec.rb b/spec/defines/cinder_backend_iscsi_spec.rb index b5a030b8..7c89277c 100644 --- a/spec/defines/cinder_backend_iscsi_spec.rb +++ b/spec/defines/cinder_backend_iscsi_spec.rb @@ -8,6 +8,7 @@ describe 'cinder::backend::iscsi' do it { is_expected.to contain_cinder_config('hippo/volume_backend_name').with_value('hippo') 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') is_expected.to contain_cinder_config('hippo/target_ip_address').with_value('') is_expected.to contain_cinder_config('hippo/target_helper').with_value(platform_params[:target_helper]) @@ -21,6 +22,7 @@ describe 'cinder::backend::iscsi' 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', @@ -29,6 +31,7 @@ describe 'cinder::backend::iscsi' do end it { is_expected.to contain_cinder_config('hippo/backend_availability_zone').with_value('nova') + 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') is_expected.to contain_cinder_config('hippo/volumes_dir').with_value('/etc/cinder/volumes') diff --git a/spec/defines/cinder_backend_netapp_spec.rb b/spec/defines/cinder_backend_netapp_spec.rb index 495128aa..d3000d6f 100644 --- a/spec/defines/cinder_backend_netapp_spec.rb +++ b/spec/defines/cinder_backend_netapp_spec.rb @@ -6,7 +6,6 @@ describe 'cinder::backend::netapp' do let :params do { :volume_backend_name => 'netapp-cdot-nfs', - :backend_availability_zone => 'my_zone', :netapp_login => 'netapp', :netapp_password => 'password', :netapp_server_hostname => '127.0.0.2', @@ -18,6 +17,7 @@ describe 'cinder::backend::netapp' do let :default_params do { :backend_availability_zone => '', + :reserved_percentage => '', :netapp_server_port => '', :netapp_size_multiplier => '', :netapp_storage_family => '', @@ -55,14 +55,6 @@ describe 'cinder::backend::netapp' do shared_examples 'cinder::backend::netapp' do context 'with default parameters' do - before do - params = {} - end - - it_behaves_like 'netapp volume driver' - end - - context 'with provided parameters' do it_behaves_like 'netapp volume driver' end diff --git a/spec/defines/cinder_backend_nexenta_spec.rb b/spec/defines/cinder_backend_nexenta_spec.rb index dba5bd09..d343c488 100644 --- a/spec/defines/cinder_backend_nexenta_spec.rb +++ b/spec/defines/cinder_backend_nexenta_spec.rb @@ -24,6 +24,7 @@ describe 'cinder::backend::nexenta' do :nexenta_rest_port => '8457', :volume_driver => 'cinder.volume.drivers.nexenta.iscsi.NexentaISCSIDriver', :backend_availability_zone => '', + :reserved_percentage => '', } end diff --git a/spec/defines/cinder_backend_pure_spec.rb b/spec/defines/cinder_backend_pure_spec.rb index b16fbc4f..3385d21f 100644 --- a/spec/defines/cinder_backend_pure_spec.rb +++ b/spec/defines/cinder_backend_pure_spec.rb @@ -18,6 +18,8 @@ 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/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') @@ -34,6 +36,7 @@ describe 'cinder::backend::pure' do let :params do req_params.merge({ :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, :pure_storage_protocol => 'iSCSI', :use_chap_auth => 'true', }) @@ -42,6 +45,7 @@ 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/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') is_expected.to contain_cinder_config('pure/use_multipath_for_image_xfer').with_value('true') diff --git a/spec/defines/cinder_backend_rbd_spec.rb b/spec/defines/cinder_backend_rbd_spec.rb index 8af07f44..053cb4b3 100644 --- a/spec/defines/cinder_backend_rbd_spec.rb +++ b/spec/defines/cinder_backend_rbd_spec.rb @@ -30,6 +30,8 @@ describe 'cinder::backend::rbd' do is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rbd_user").with_value(req_params[:rbd_user]) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rbd_secret_uuid").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/backend_host").with_value('rbd:'"#{req_params[:rbd_pool]}") + is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/backend_availability_zone").with_value('') + is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/reserved_percentage").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connect_timeout").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connection_interval").with_value('') is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connection_retries").with_value('') @@ -42,6 +44,9 @@ describe 'cinder::backend::rbd' do context 'with parameters' do let :params do req_params.merge!({ + :backend_host => 'test_host.fqdn.com', + :backend_availability_zone => 'my_zone', + :reserved_percentage => 10, :rbd_ceph_conf => '/opt/ceph.conf', :rbd_flatten_volume_from_snapshot => true, :rbd_secret_uuid => 'b129523a-61a5-4653-86d1-2b055f970801', @@ -65,7 +70,9 @@ describe 'cinder::backend::rbd' do is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rbd_pool").with_value(req_params[:rbd_pool]) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rbd_user").with_value(req_params[:rbd_user]) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rbd_secret_uuid").with_value(params[:rbd_secret_uuid]) - is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/backend_host").with_value('rbd:'"#{req_params[:rbd_pool]}") + is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/backend_host").with_value('test_host.fqdn.com') + is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/backend_availability_zone").with_value('my_zone') + is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/reserved_percentage").with_value(10) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connect_timeout").with_value(params[:rados_connect_timeout]) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connection_interval").with_value(params[:rados_connection_interval]) is_expected.to contain_cinder_config("#{req_params[:volume_backend_name]}/rados_connection_retries").with_value(params[:rados_connection_retries]) @@ -103,18 +110,6 @@ describe 'cinder::backend::rbd' do it { is_expected.to contain_cinder_config('rbd-ssd/param1').with_value('value1') } end - context 'override backend_host and backend_availability_zone parameters' do - before do - params.merge!({ - :backend_host => 'test_host.fqdn.com', - :backend_availability_zone => 'my_zone', - }) - end - - it { is_expected.to contain_cinder_config('rbd-ssd/backend_host').with_value('test_host.fqdn.com') } - it { is_expected.to contain_cinder_config('rbd-ssd/backend_availability_zone').with_value('my_zone') } - end - context 'rbd backend with cinder type' do before do params.merge!( :manage_volume_type => true ) diff --git a/spec/defines/cinder_backend_solidfire_spec.rb b/spec/defines/cinder_backend_solidfire_spec.rb index 32cdc1b7..130aeb5e 100644 --- a/spec/defines/cinder_backend_solidfire_spec.rb +++ b/spec/defines/cinder_backend_solidfire_spec.rb @@ -16,6 +16,7 @@ describe 'cinder::backend::solidfire' do let :default_params do { :backend_availability_zone => '', + :reserved_percentage => '', :sf_emulate_512 => '', :sf_allow_tenant_qos => '', :sf_account_prefix => '', @@ -35,6 +36,7 @@ describe 'cinder::backend::solidfire' do 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',