diff --git a/manifests/backend/netapp.pp b/manifests/backend/netapp.pp index 2a5b0168..4c714134 100644 --- a/manifests/backend/netapp.pp +++ b/manifests/backend/netapp.pp @@ -11,17 +11,17 @@ # # [*netapp_password*] # (required) Password for the administrative user account specified in the -# netapp_login parameter. +# netapp_login option. # # [*netapp_server_hostname*] # (required) The hostname (or IP address) for the storage system or proxy # server. # # [*netapp_server_port*] -# (optional) The TCP port to use for communication with ONTAPI on the -# storage system. Traditionally, port 80 is used for HTTP and port 443 is -# used for HTTPS; however, this value should be changed if an alternate -# port has been configured on the storage system or proxy server. +# (optional) The TCP port to use for communication with the storage +# system or proxy. If not specified, Data ONTAP drivers will use 80 +# for HTTP and 443 for HTTPS; E-Series will use 8080 for HTTP and +# 8443 for HTTPS. # Defaults to 80 # # [*netapp_size_multiplier*] @@ -32,46 +32,48 @@ # # [*netapp_storage_family*] # (optional) The storage family type used on the storage system; valid values -# are ontap_7mode for using Data ONTAP operating in 7-Mode or ontap_cluster +# are ontap_7mode for using Data ONTAP operating in 7-Mode, ontap_cluster # for using clustered Data ONTAP, or eseries for NetApp E-Series. # Defaults to ontap_cluster # # [*netapp_storage_protocol*] # (optional) The storage protocol to be used on the data path with the storage -# system; valid values are iscsi or nfs. +# system. Valid values are iscsi, fc, nfs. # Defaults to nfs # # [*netapp_transport_type*] -# (optional) The transport protocol used when communicating with ONTAPI on the -# storage system or proxy server. Valid values are http or https. +# (optional) The transport protocol used when communicating with the storage +# system or proxy server. Valid values are http or https. # Defaults to http # # [*netapp_vfiler*] # (optional) The vFiler unit on which provisioning of block storage volumes # will be done. This parameter is only used by the driver when connecting to -# an instance with a storage family of Data ONTAP operating in 7-Mode and the -# storage protocol selected is iSCSI. Only use this parameter when utilizing -# the MultiStore feature on the NetApp storage system. -# Defaults to '' +# an instance with a storage family of Data ONTAP operating in 7-Mode. Only +# use this parameter when utilizing the MultiStore feature on the NetApp +# storage system. +# Defaults to undef # # [*netapp_volume_list*] # (optional) This parameter is only utilized when the storage protocol is -# configured to use iSCSI. This parameter is used to restrict provisioning to -# the specified controller volumes. Specify the value of this parameter to be -# a comma separated list of NetApp controller volume names to be used for -# provisioning. -# Defaults to '' +# configured to use iSCSI or FC. This parameter is used to restrict +# provisioning to the specified controller volumes. Specify the value of +# this parameter to be a comma separated list of NetApp controller volume +# names to be used for provisioning. +# Defaults to undef # # [*netapp_vserver*] -# (optional) This parameter specifies the virtual storage server (Vserver) +# (optional) This option specifies the virtual storage server (Vserver) # name on the storage cluster on which provisioning of block storage volumes -# should occur. If using the NFS storage protocol, this parameter is mandatory -# for storage service catalog support (utilized by Cinder volume type -# extra_specs support). If this parameter is specified, the exports belonging -# to the Vserver will only be used for provisioning in the future. Block -# storage volumes on exports not belonging to the Vserver specified by -# this parameter will continue to function normally. -# Defaults to '' +# should occur. +# Defaults to undef +# +# [*netapp_partner_backend_name*] +# (optional) The name of the config.conf stanza for a Data ONTAP (7-mode) +# HA partner. This option is only used by the driver when connecting to an +# instance with a storage family of Data ONTAP operating in 7-Mode, and it is +# required if the storage protocol selected is FC. +# Defaults to undef # # [*expiry_thres_minutes*] # (optional) This parameter specifies the threshold for last access time for @@ -107,7 +109,7 @@ # (optional) This option specifies the path of the NetApp Copy Offload tool # binary. Ensure that the binary has execute permissions set which allow the # effective user of the cinder-volume process to execute the file. -# Defaults to '' +# Defaults to undef # # [*netapp_controller_ips*] # (optional) This option is only utilized when the storage family is @@ -115,18 +117,24 @@ # specified controllers. Specify the value of this option to be a comma # separated list of controller hostnames or IP addresses to be used for # provisioning. -# Defaults to '' +# Defaults to undef # # [*netapp_sa_password*] # (optional) Password for the NetApp E-Series storage array. -# Defaults to '' +# Defaults to undef # # [*netapp_storage_pools*] # (optional) This option is used to restrict provisioning to the specified # storage pools. Only dynamic disk pools are currently supported. Specify the # value of this option to be a comma separated list of disk pool names to be # used for provisioning. -# Defaults to '' +# Defaults to undef +# +# [*netapp_eseries_host_type*] +# (optional) This option is used to define how the controllers in the +# E-Series storage array will work with the particular operating system on +# the hosts that are connected to it. +# Defaults to 'linux_dm_mp' # # [*netapp_webservice_path*] # (optional) This option is used to specify the path to the E-Series proxy @@ -171,18 +179,20 @@ define cinder::backend::netapp ( $netapp_storage_family = 'ontap_cluster', $netapp_storage_protocol = 'nfs', $netapp_transport_type = 'http', - $netapp_vfiler = '', - $netapp_volume_list = '', - $netapp_vserver = '', + $netapp_vfiler = undef, + $netapp_volume_list = undef, + $netapp_vserver = undef, + $netapp_partner_backend_name = undef, $expiry_thres_minutes = '720', $thres_avl_size_perc_start = '20', $thres_avl_size_perc_stop = '60', $nfs_shares = undef, $nfs_shares_config = '/etc/cinder/shares.conf', - $netapp_copyoffload_tool_path = '', - $netapp_controller_ips = '', - $netapp_sa_password = '', - $netapp_storage_pools = '', + $netapp_copyoffload_tool_path = undef, + $netapp_controller_ips = undef, + $netapp_sa_password = undef, + $netapp_storage_pools = undef, + $netapp_eseries_host_type = 'linux_dm_mp', $netapp_webservice_path = '/devmgr/v2', $extra_options = {}, ) { @@ -210,6 +220,7 @@ define cinder::backend::netapp ( "${volume_backend_name}/netapp_vfiler": value => $netapp_vfiler; "${volume_backend_name}/netapp_volume_list": value => $netapp_volume_list; "${volume_backend_name}/netapp_vserver": value => $netapp_vserver; + "${volume_backend_name}/netapp_partner_backend_name": value => $netapp_partner_backend_name; "${volume_backend_name}/expiry_thres_minutes": value => $expiry_thres_minutes; "${volume_backend_name}/thres_avl_size_perc_start": value => $thres_avl_size_perc_start; "${volume_backend_name}/thres_avl_size_perc_stop": value => $thres_avl_size_perc_stop; @@ -218,6 +229,7 @@ define cinder::backend::netapp ( "${volume_backend_name}/netapp_controller_ips": value => $netapp_controller_ips; "${volume_backend_name}/netapp_sa_password": value => $netapp_sa_password, secret => true; "${volume_backend_name}/netapp_storage_pools": value => $netapp_storage_pools; + "${volume_backend_name}/netapp_eseries_host_type": value => $netapp_eseries_host_type; "${volume_backend_name}/netapp_webservice_path": value => $netapp_webservice_path; } diff --git a/manifests/volume/netapp.pp b/manifests/volume/netapp.pp index 5dd8ef9f..4fc3066d 100644 --- a/manifests/volume/netapp.pp +++ b/manifests/volume/netapp.pp @@ -6,20 +6,21 @@ # # [*netapp_login*] # (required) Administrative user account name used to access the storage -# system. +# system or proxy server. # # [*netapp_password*] # (required) Password for the administrative user account specified in the -# netapp_login parameter. +# netapp_login option. # # [*netapp_server_hostname*] -# (required) The hostname (or IP address) for the storage system. +# (required) The hostname (or IP address) for the storage system or proxy +# server. # # [*netapp_server_port*] -# (optional) The TCP port to use for communication with ONTAPI on the -# storage system. Traditionally, port 80 is used for HTTP and port 443 is -# used for HTTPS; however, this value should be changed if an alternate -# port has been configured on the storage system. +# (optional) The TCP port to use for communication with the storage +# system or proxy. If not specified, Data ONTAP drivers will use 80 +# for HTTP and 443 for HTTPS; E-Series will use 8080 for HTTP and +# 8443 for HTTPS. # Defaults to 80 # # [*netapp_size_multiplier*] @@ -30,46 +31,48 @@ # # [*netapp_storage_family*] # (optional) The storage family type used on the storage system; valid values -# are ontap_7mode for using Data ONTAP operating in 7-Mode or ontap_cluster -# for using clustered Data ONTAP. +# are ontap_7mode for using Data ONTAP operating in 7-Mode, ontap_cluster +# for using clustered Data ONTAP, or eseries for NetApp E-Series. # Defaults to ontap_cluster # # [*netapp_storage_protocol*] # (optional) The storage protocol to be used on the data path with the storage -# system; valid values are iscsi or nfs. +# system. Valid values are iscsi, fc, nfs. # Defaults to nfs # # [*netapp_transport_type*] -# (optional) The transport protocol used when communicating with ONTAPI on the -# storage system. Valid values are http or https. +# (optional) The transport protocol used when communicating with the storage +# system or proxy server. Valid values are http or https. # Defaults to http # # [*netapp_vfiler*] # (optional) The vFiler unit on which provisioning of block storage volumes # will be done. This parameter is only used by the driver when connecting to -# an instance with a storage family of Data ONTAP operating in 7-Mode and the -# storage protocol selected is iSCSI. Only use this parameter when utilizing -# the MultiStore feature on the NetApp storage system. -# Defaults to '' +# an instance with a storage family of Data ONTAP operating in 7-Mode. Only +# use this parameter when utilizing the MultiStore feature on the NetApp +# storage system. +# Defaults to undef # # [*netapp_volume_list*] # (optional) This parameter is only utilized when the storage protocol is -# configured to use iSCSI. This parameter is used to restrict provisioning to -# the specified controller volumes. Specify the value of this parameter to be -# a comma separated list of NetApp controller volume names to be used for -# provisioning. -# Defaults to '' +# configured to use iSCSI or FC. This parameter is used to restrict +# provisioning to the specified controller volumes. Specify the value of +# this parameter to be a comma separated list of NetApp controller volume +# names to be used for provisioning. +# Defaults to undef # # [*netapp_vserver*] -# (optional) This parameter specifies the virtual storage server (Vserver) +# (optional) This option specifies the virtual storage server (Vserver) # name on the storage cluster on which provisioning of block storage volumes -# should occur. If using the NFS storage protocol, this parameter is mandatory -# for storage service catalog support (utilized by Cinder volume type -# extra_specs support). If this parameter is specified, the exports belonging -# to the Vserver will only be used for provisioning in the future. Block -# storage volumes on exports not belonging to the Vserver specified by -# this parameter will continue to function normally. -# Defaults to '' +# should occur. +# Defaults to undef +# +# [*netapp_partner_backend_name*] +# (optional) The name of the config.conf stanza for a Data ONTAP (7-mode) +# HA partner. This option is only used by the driver when connecting to an +# instance with a storage family of Data ONTAP operating in 7-Mode, and it is +# required if the storage protocol selected is FC. +# Defaults to undef # # [*expiry_thres_minutes*] # (optional) This parameter specifies the threshold for last access time for @@ -86,10 +89,10 @@ # Defaults to 20 # # [*thres_avl_size_perc_stop*] -# (optional) When the percentage of available space on an NFS share has reached the -# percentage specified by this parameter, the driver will stop clearing files -# from the NFS image cache that have not been accessed in the last M -# 'minutes, where M is the value of the expiry_thres_minutes parameter. +# (optional) When the percentage of available space on an NFS share has +# reached the percentage specified by this parameter, the driver will stop +# clearing files from the NFS image cache that have not been accessed in the +# last M minutes, where M is the value of the expiry_thres_minutes parameter. # Defaults to 60 # # [*nfs_shares*] @@ -105,7 +108,7 @@ # (optional) This option specifies the path of the NetApp Copy Offload tool # binary. Ensure that the binary has execute permissions set which allow the # effective user of the cinder-volume process to execute the file. -# Defaults to '' +# Defaults to undef # # [*netapp_controller_ips*] # (optional) This option is only utilized when the storage family is @@ -113,18 +116,24 @@ # specified controllers. Specify the value of this option to be a comma # separated list of controller hostnames or IP addresses to be used for # provisioning. -# Defaults to '' +# Defaults to undef # # [*netapp_sa_password*] # (optional) Password for the NetApp E-Series storage array. -# Defaults to '' +# Defaults to undef # # [*netapp_storage_pools*] # (optional) This option is used to restrict provisioning to the specified # storage pools. Only dynamic disk pools are currently supported. Specify the # value of this option to be a comma separated list of disk pool names to be # used for provisioning. -# Defaults to '' +# Defaults to undef +# +# [*netapp_eseries_host_type*] +# (optional) This option is used to define how the controllers in the +# E-Series storage array will work with the particular operating system on +# the hosts that are connected to it. +# Defaults to 'linux_dm_mp' # # [*netapp_webservice_path*] # (optional) This option is used to specify the path to the E-Series proxy @@ -168,18 +177,20 @@ class cinder::volume::netapp ( $netapp_storage_family = 'ontap_cluster', $netapp_storage_protocol = 'nfs', $netapp_transport_type = 'http', - $netapp_vfiler = '', - $netapp_volume_list = '', - $netapp_vserver = '', + $netapp_vfiler = undef, + $netapp_volume_list = undef, + $netapp_vserver = undef, + $netapp_partner_backend_name = undef, $expiry_thres_minutes = '720', $thres_avl_size_perc_start = '20', $thres_avl_size_perc_stop = '60', $nfs_shares = undef, $nfs_shares_config = '/etc/cinder/shares.conf', - $netapp_copyoffload_tool_path = '', - $netapp_controller_ips = '', - $netapp_sa_password = '', - $netapp_storage_pools = '', + $netapp_copyoffload_tool_path = undef, + $netapp_controller_ips = undef, + $netapp_sa_password = undef, + $netapp_storage_pools = undef, + $netapp_eseries_host_type = 'linux_dm_mp', $netapp_webservice_path = '/devmgr/v2', $extra_options = {}, ) { @@ -196,6 +207,7 @@ class cinder::volume::netapp ( netapp_vfiler => $netapp_vfiler, netapp_volume_list => $netapp_volume_list, netapp_vserver => $netapp_vserver, + netapp_partner_backend_name => $netapp_partner_backend_name, expiry_thres_minutes => $expiry_thres_minutes, thres_avl_size_perc_start => $thres_avl_size_perc_start, thres_avl_size_perc_stop => $thres_avl_size_perc_stop, @@ -205,6 +217,7 @@ class cinder::volume::netapp ( netapp_controller_ips => $netapp_controller_ips, netapp_sa_password => $netapp_sa_password, netapp_storage_pools => $netapp_storage_pools, + netapp_eseries_host_type => $netapp_eseries_host_type, netapp_webservice_path => $netapp_webservice_path, extra_options => $extra_options, } diff --git a/spec/classes/cinder_volume_netapp_spec.rb b/spec/classes/cinder_volume_netapp_spec.rb index e22c25f5..b2ce5c20 100644 --- a/spec/classes/cinder_volume_netapp_spec.rb +++ b/spec/classes/cinder_volume_netapp_spec.rb @@ -4,9 +4,17 @@ describe 'cinder::volume::netapp' do let :params do { - :netapp_login => 'netapp', - :netapp_password => 'password', - :netapp_server_hostname => '127.0.0.2', + :netapp_login => 'netapp', + :netapp_password => 'password', + :netapp_server_hostname => '127.0.0.2', + :netapp_vfiler => 'netapp_vfiler', + :netapp_volume_list => 'vol1,vol2', + :netapp_vserver => 'netapp_vserver', + :netapp_partner_backend_name => 'fc2', + :netapp_copyoffload_tool_path => '/tmp/na_copyoffload_64', + :netapp_controller_ips => '10.0.0.2,10.0.0.3', + :netapp_sa_password => 'password', + :netapp_storage_pools => 'pool1,pool2', } end @@ -17,17 +25,11 @@ describe 'cinder::volume::netapp' do :netapp_storage_family => 'ontap_cluster', :netapp_storage_protocol => 'nfs', :netapp_transport_type => 'http', - :netapp_vfiler => '', - :netapp_volume_list => '', - :netapp_vserver => '', :expiry_thres_minutes => '720', :thres_avl_size_perc_start => '20', :thres_avl_size_perc_stop => '60', :nfs_shares_config => '/etc/cinder/shares.conf', - :netapp_copyoffload_tool_path => '', - :netapp_controller_ips => '', - :netapp_sa_password => '', - :netapp_storage_pools => '', + :netapp_eseries_host_type => 'linux_dm_mp', :netapp_webservice_path => '/devmgr/v2', } end diff --git a/spec/defines/cinder_backend_netapp_spec.rb b/spec/defines/cinder_backend_netapp_spec.rb index 082d86b2..2bdc0efa 100644 --- a/spec/defines/cinder_backend_netapp_spec.rb +++ b/spec/defines/cinder_backend_netapp_spec.rb @@ -6,10 +6,18 @@ describe 'cinder::backend::netapp' do let :params do { - :volume_backend_name => 'netapp-cdot-nfs', - :netapp_login => 'netapp', - :netapp_password => 'password', - :netapp_server_hostname => '127.0.0.2', + :volume_backend_name => 'netapp-cdot-nfs', + :netapp_login => 'netapp', + :netapp_password => 'password', + :netapp_server_hostname => '127.0.0.2', + :netapp_vfiler => 'netapp_vfiler', + :netapp_volume_list => 'vol1,vol2', + :netapp_vserver => 'netapp_vserver', + :netapp_partner_backend_name => 'fc2', + :netapp_copyoffload_tool_path => '/tmp/na_copyoffload_64', + :netapp_controller_ips => '10.0.0.2,10.0.0.3', + :netapp_sa_password => 'password', + :netapp_storage_pools => 'pool1,pool2', } end @@ -20,17 +28,11 @@ describe 'cinder::backend::netapp' do :netapp_storage_family => 'ontap_cluster', :netapp_storage_protocol => 'nfs', :netapp_transport_type => 'http', - :netapp_vfiler => '', - :netapp_volume_list => '', - :netapp_vserver => '', :expiry_thres_minutes => '720', :thres_avl_size_perc_start => '20', :thres_avl_size_perc_stop => '60', :nfs_shares_config => '/etc/cinder/shares.conf', - :netapp_copyoffload_tool_path => '', - :netapp_controller_ips => '', - :netapp_sa_password => '', - :netapp_storage_pools => '', + :netapp_eseries_host_type => 'linux_dm_mp', :netapp_webservice_path => '/devmgr/v2', } end