Merge "Add support for copy offload, E-Series driver"

This commit is contained in:
Jenkins 2014-03-14 22:14:16 +00:00 committed by Gerrit Code Review
commit 4d4017cb63
4 changed files with 188 additions and 84 deletions

View File

@ -7,20 +7,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_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.
# port has been configured on the storage system or proxy server.
# Defaults to 80
#
# [*netapp_size_multiplier*]
@ -32,7 +33,7 @@
# [*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.
# for using clustered Data ONTAP, or eseries for NetApp E-Series.
# Defaults to ontap_cluster
#
# [*netapp_storage_protocol*]
@ -42,7 +43,7 @@
#
# [*netapp_transport_type*]
# (optional) The transport protocol used when communicating with ONTAPI on the
# storage system. Valid values are http or https.
# storage system or proxy server. Valid values are http or https.
# Defaults to http
#
# [*netapp_vfiler*]
@ -97,6 +98,39 @@
# (optional) File with the list of available NFS shares
# Defaults to ''
#
# [*netapp_copyoffload_tool_path*]
# (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 ''
#
# [*netapp_controller_ips*]
# (optional) This option is only utilized when the storage family is
# configured to eseries. This option is used to restrict provisioning to the
# 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 ''
#
# [*netapp_sa_password*]
# (optional) Password for the NetApp E-Series storage array.
# Defaults to ''
#
# [*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 ''
#
# [*netapp_webservice_path*]
# (optional) This option is used to specify the path to the E-Series proxy
# application on a proxy server. The value is combined with the value of the
# netapp_transport_type, netapp_server_hostname, and netapp_server_port
# options to create the URL used by the driver to connect to the proxy
# application.
# Defaults to '/devmgr/v2'
#
# === Examples
#
# cinder::backend::netapp { 'myBackend':
@ -120,38 +154,48 @@ define cinder::backend::netapp (
$netapp_login,
$netapp_password,
$netapp_server_hostname,
$volume_backend_name = $name,
$netapp_server_port = '80',
$netapp_size_multiplier = '1.2',
$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 = '',
$volume_backend_name = $name,
$netapp_server_port = '80',
$netapp_size_multiplier = '1.2',
$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 = '',
$netapp_copyoffload_tool_path = '',
$netapp_controller_ips = '',
$netapp_sa_password = '',
$netapp_storage_pools = '',
$netapp_webservice_path = '/devmgr/v2',
) {
cinder_config {
"${volume_backend_name}/volume_backend_name": value => $volume_backend_name;
"${volume_backend_name}/volume_driver": value => 'cinder.volume.drivers.netapp.common.NetAppDriver';
"${volume_backend_name}/netapp_login": value => $netapp_login;
"${volume_backend_name}/netapp_password": value => $netapp_password, secret => true;
"${volume_backend_name}/netapp_server_hostname": value => $netapp_server_hostname;
"${volume_backend_name}/netapp_server_port": value => $netapp_server_port;
"${volume_backend_name}/netapp_size_multiplier": value => $netapp_size_multiplier;
"${volume_backend_name}/netapp_storage_family": value => $netapp_storage_family;
"${volume_backend_name}/netapp_storage_protocol": value => $netapp_storage_protocol;
"${volume_backend_name}/netapp_transport_type": value => $netapp_transport_type;
"${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}/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;
"${volume_backend_name}/nfs_shares_config": value => $nfs_shares_config;
"${volume_backend_name}/volume_backend_name": value => $volume_backend_name;
"${volume_backend_name}/volume_driver": value => 'cinder.volume.drivers.netapp.common.NetAppDriver';
"${volume_backend_name}/netapp_login": value => $netapp_login;
"${volume_backend_name}/netapp_password": value => $netapp_password, secret => true;
"${volume_backend_name}/netapp_server_hostname": value => $netapp_server_hostname;
"${volume_backend_name}/netapp_server_port": value => $netapp_server_port;
"${volume_backend_name}/netapp_size_multiplier": value => $netapp_size_multiplier;
"${volume_backend_name}/netapp_storage_family": value => $netapp_storage_family;
"${volume_backend_name}/netapp_storage_protocol": value => $netapp_storage_protocol;
"${volume_backend_name}/netapp_transport_type": value => $netapp_transport_type;
"${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}/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;
"${volume_backend_name}/nfs_shares_config": value => $nfs_shares_config;
"${volume_backend_name}/netapp_copyoffload_tool_path": value => $netapp_copyoffload_tool_path;
"${volume_backend_name}/netapp_controller_ips": value => $netapp_controller_ips;
"${volume_backend_name}/netapp_sa_password": value => $netapp_sa_password;
"${volume_backend_name}/netapp_storage_pools": value => $netapp_storage_pools;
"${volume_backend_name}/netapp_webservice_path": value => $netapp_webservice_path;
}
}

View File

@ -92,6 +92,43 @@
# 'minutes, where M is the value of the expiry_thres_minutes parameter.
# Defaults to 60
#
# [*nfs_shares_config*]
# (optional) File with the list of available NFS shares
# Defaults to ''
#
# [*netapp_copyoffload_tool_path*]
# (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 ''
#
# [*netapp_controller_ips*]
# (optional) This option is only utilized when the storage family is
# configured to eseries. This option is used to restrict provisioning to the
# 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 ''
#
# [*netapp_sa_password*]
# (optional) Password for the NetApp E-Series storage array.
# Defaults to ''
#
# [*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 ''
#
# [*netapp_webservice_path*]
# (optional) This option is used to specify the path to the E-Series proxy
# application on a proxy server. The value is combined with the value of the
# netapp_transport_type, netapp_server_hostname, and netapp_server_port
# options to create the URL used by the driver to connect to the proxy
# application.
# Defaults to '/devmgr/v2'
#
# === Examples
#
# class { 'cinder::volume::netapp':
@ -115,35 +152,47 @@ class cinder::volume::netapp (
$netapp_login,
$netapp_password,
$netapp_server_hostname,
$netapp_server_port = '80',
$netapp_size_multiplier = '1.2',
$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'
$netapp_server_port = '80',
$netapp_size_multiplier = '1.2',
$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 = '',
$netapp_copyoffload_tool_path = '',
$netapp_controller_ips = '',
$netapp_sa_password = '',
$netapp_storage_pools = '',
$netapp_webservice_path = '/devmgr/v2',
) {
cinder_config {
'DEFAULT/volume_driver': value => 'cinder.volume.drivers.netapp.common.NetAppDriver';
'DEFAULT/netapp_login': value => $netapp_login;
'DEFAULT/netapp_password': value => $netapp_password, secret => true;
'DEFAULT/netapp_server_hostname': value => $netapp_server_hostname;
'DEFAULT/netapp_server_port': value => $netapp_server_port;
'DEFAULT/netapp_size_multiplier': value => $netapp_size_multiplier;
'DEFAULT/netapp_storage_family': value => $netapp_storage_family;
'DEFAULT/netapp_storage_protocol': value => $netapp_storage_protocol;
'DEFAULT/netapp_transport_type': value => $netapp_transport_type;
'DEFAULT/netapp_vfiler': value => $netapp_vfiler;
'DEFAULT/netapp_volume_list': value => $netapp_volume_list;
'DEFAULT/netapp_vserver': value => $netapp_vserver;
'DEFAULT/expiry_thres_minutes': value => $expiry_thres_minutes;
'DEFAULT/thres_avl_size_perc_start': value => $thres_avl_size_perc_start;
'DEFAULT/thres_avl_size_perc_stop': value => $thres_avl_size_perc_stop;
'DEFAULT/volume_driver': value => 'cinder.volume.drivers.netapp.common.NetAppDriver';
'DEFAULT/netapp_login': value => $netapp_login;
'DEFAULT/netapp_password': value => $netapp_password, secret => true;
'DEFAULT/netapp_server_hostname': value => $netapp_server_hostname;
'DEFAULT/netapp_server_port': value => $netapp_server_port;
'DEFAULT/netapp_size_multiplier': value => $netapp_size_multiplier;
'DEFAULT/netapp_storage_family': value => $netapp_storage_family;
'DEFAULT/netapp_storage_protocol': value => $netapp_storage_protocol;
'DEFAULT/netapp_transport_type': value => $netapp_transport_type;
'DEFAULT/netapp_vfiler': value => $netapp_vfiler;
'DEFAULT/netapp_volume_list': value => $netapp_volume_list;
'DEFAULT/netapp_vserver': value => $netapp_vserver;
'DEFAULT/expiry_thres_minutes': value => $expiry_thres_minutes;
'DEFAULT/thres_avl_size_perc_start': value => $thres_avl_size_perc_start;
'DEFAULT/thres_avl_size_perc_stop': value => $thres_avl_size_perc_stop;
'DEFAULT/nfs_shares_config': value => $nfs_shares_config;
'DEFAULT/netapp_copyoffload_tool_path': value => $netapp_copyoffload_tool_path;
'DEFAULT/netapp_controller_ips': value => $netapp_controller_ips;
'DEFAULT/netapp_sa_password': value => $netapp_sa_password;
'DEFAULT/netapp_storage_pools': value => $netapp_storage_pools;
'DEFAULT/netapp_webservice_path': value => $netapp_webservice_path;
}
}

View File

@ -12,17 +12,23 @@ describe 'cinder::volume::netapp' do
let :default_params do
{
:netapp_server_port => '80',
:netapp_size_multiplier => '1.2',
: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',
:netapp_server_port => '80',
:netapp_size_multiplier => '1.2',
: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 => '',
:netapp_copyoffload_tool_path => '',
:netapp_controller_ips => '',
:netapp_sa_password => '',
:netapp_storage_pools => '',
:netapp_webservice_path => '/devmgr/v2',
}
end

View File

@ -15,18 +15,23 @@ describe 'cinder::backend::netapp' do
let :default_params do
{
:netapp_server_port => '80',
:netapp_size_multiplier => '1.2',
: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 => '',
:netapp_server_port => '80',
:netapp_size_multiplier => '1.2',
: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 => '',
:netapp_copyoffload_tool_path => '',
:netapp_controller_ips => '',
:netapp_sa_password => '',
:netapp_storage_pools => '',
:netapp_webservice_path => '/devmgr/v2',
}
end