Dell SC: Add secondary DSM support

Adds support for a secondary DSM in case the primary becomes
unavailable.

Closes-Bug: #1681491
Change-Id: I331466e4f254b2b8ff7891b796e78cd30c2c87f7
This commit is contained in:
rajinir 2017-04-10 11:14:24 -05:00
parent a57b3d7474
commit 541ecbed32
4 changed files with 108 additions and 53 deletions

View File

@ -45,6 +45,21 @@
#
# [*excluded_domain_ip*]
# (optional) Domain IP to be excluded from iSCSI returns of Storage Center.
#
# [*secondary_san_ip*]
# (optional) IP address of secondary DSM controller.
# Defaults to $::os_service_default
#
# [*secondary_san_login*]
# (optional) Secondary DSM user name.
# Defaults to $::os_service_default
#
# [*secondary_san_password*]
# (optional) Secondary DSM user password.
# Defaults to $::os_service_default
#
# [*secondary_sc_api_port*]
# (optional) Secondary Dell API port.
# Defaults to $::os_service_default
#
# [*extra_options*]
@ -65,15 +80,19 @@ define cinder::backend::dellsc_iscsi (
$san_password,
$iscsi_ip_address,
$dell_sc_ssn,
$volume_backend_name = $name,
$dell_sc_api_port = $::os_service_default,
$dell_sc_server_folder = 'srv',
$dell_sc_verify_cert = $::os_service_default,
$dell_sc_volume_folder = 'vol',
$iscsi_port = $::os_service_default,
$excluded_domain_ip = $::os_service_default,
$manage_volume_type = false,
$extra_options = {},
$volume_backend_name = $name,
$dell_sc_api_port = $::os_service_default,
$dell_sc_server_folder = 'srv',
$dell_sc_verify_cert = $::os_service_default,
$dell_sc_volume_folder = 'vol',
$iscsi_port = $::os_service_default,
$excluded_domain_ip = $::os_service_default,
$secondary_san_ip = $::os_service_default,
$secondary_san_login = $::os_service_default,
$secondary_san_password = $::os_service_default,
$secondary_sc_api_port = $::os_service_default,
$manage_volume_type = false,
$extra_options = {},
) {
include ::cinder::deps
@ -90,19 +109,23 @@ default of \"vol\" and will be changed to the upstream OpenStack default in N-re
$driver = 'dell.dell_storagecenter_iscsi.DellStorageCenterISCSIDriver'
cinder_config {
"${name}/volume_backend_name": value => $volume_backend_name;
"${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}/iscsi_ip_address": value => $iscsi_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}/iscsi_port": value => $iscsi_port;
"${name}/excluded_domain_ip": value => $excluded_domain_ip;
"${name}/volume_backend_name": value => $volume_backend_name;
"${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}/iscsi_ip_address": value => $iscsi_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}/iscsi_port": value => $iscsi_port;
"${name}/excluded_domain_ip": value => $excluded_domain_ip;
"${name}/secondary_san_ip": value => $secondary_san_ip;
"${name}/secondary_san_login": value => $secondary_san_login;
"${name}/secondary_san_password": value => $secondary_san_password;
"${name}/secondary_sc_api_port": value => $secondary_sc_api_port;
}
if $manage_volume_type {

View File

@ -43,6 +43,22 @@
# (optional) Domain IP to be excluded from iSCSI returns of Storage Center.
# Defaults to $::os_service_default
#
# [*secondary_san_ip*]
# (optional) IP address of secondary DSM controller.
# Defaults to $::os_service_default
#
# [*secondary_san_login*]
# (optional) Secondary DSM user name.
# Defaults to $::os_service_default
#
# [*secondary_san_password*]
# (optional) Secondary DSM user password.
# Defaults to $::os_service_default
#
# [*secondary_sc_api_port*]
# (optional) Secondary Dell API port.
# Defaults to os_service_default
#
# [*extra_options*]
# (optional) Hash of extra options to pass to the backend stanza.
# Defaults to: {}
@ -55,13 +71,17 @@ class cinder::volume::dellsc_iscsi (
$san_password,
$iscsi_ip_address,
$dell_sc_ssn,
$dell_sc_api_port = $::os_service_default,
$dell_sc_server_folder = 'srv',
$dell_sc_verify_cert = $::os_service_default,
$dell_sc_volume_folder = 'vol',
$iscsi_port = $::os_service_default,
$excluded_domain_ip = $::os_service_default,
$extra_options = {},
$dell_sc_api_port = $::os_service_default,
$dell_sc_server_folder = 'srv',
$dell_sc_verify_cert = $::os_service_default,
$dell_sc_volume_folder = 'vol',
$iscsi_port = $::os_service_default,
$excluded_domain_ip = $::os_service_default,
$secondary_san_ip = $::os_service_default,
$secondary_san_login = $::os_service_default,
$secondary_san_password = $::os_service_default,
$secondary_sc_api_port = $::os_service_default,
$extra_options = {},
) {
include ::cinder::deps
@ -70,17 +90,21 @@ class cinder::volume::dellsc_iscsi (
cinder::backend::dellsc_iscsi instead.')
cinder::backend::dellsc_iscsi { 'DEFAULT':
san_ip => $san_ip,
san_login => $san_login,
san_password => $san_password,
iscsi_ip_address => $iscsi_ip_address,
dell_sc_ssn => $dell_sc_ssn,
dell_sc_api_port => $dell_sc_api_port,
dell_sc_server_folder => $dell_sc_server_folder,
dell_sc_verify_cert => $dell_sc_verify_cert,
dell_sc_volume_folder => $dell_sc_volume_folder,
iscsi_port => $iscsi_port,
excluded_domain_ip => $excluded_domain_ip,
extra_options => $extra_options,
san_ip => $san_ip,
san_login => $san_login,
san_password => $san_password,
iscsi_ip_address => $iscsi_ip_address,
dell_sc_ssn => $dell_sc_ssn,
dell_sc_api_port => $dell_sc_api_port,
dell_sc_server_folder => $dell_sc_server_folder,
dell_sc_verify_cert => $dell_sc_verify_cert,
dell_sc_volume_folder => $dell_sc_volume_folder,
iscsi_port => $iscsi_port,
excluded_domain_ip => $excluded_domain_ip,
secondary_san_ip => $secondary_san_ip,
secondary_san_login => $secondary_san_login,
secondary_san_password => $secondary_san_password,
secondary_sc_api_port => $secondary_sc_api_port,
extra_options => $extra_options,
}
}

View File

@ -14,12 +14,16 @@ describe 'cinder::volume::dellsc_iscsi' do
let :default_params do
{
:dell_sc_api_port => '<SERVICE DEFAULT>',
:dell_sc_server_folder => 'srv',
:dell_sc_verify_cert => '<SERVICE DEFAULT>',
:dell_sc_volume_folder => 'vol',
:iscsi_port => '<SERVICE DEFAULT>',
:excluded_domain_ip => '<SERVICE DEFAULT>',
:dell_sc_api_port => '<SERVICE DEFAULT>',
:dell_sc_server_folder => 'srv',
:dell_sc_verify_cert => '<SERVICE DEFAULT>',
:dell_sc_volume_folder => 'vol',
:iscsi_port => '<SERVICE DEFAULT>',
:excluded_domain_ip => '<SERVICE DEFAULT>',
:secondary_san_ip => '<SERVICE DEFAULT>',
:secondary_san_login => '<SERVICE DEFAULT>',
:secondary_san_password => '<SERVICE DEFAULT>',
:secondary_sc_api_port => '<SERVICE DEFAULT>',
}
end

View File

@ -18,12 +18,16 @@ describe 'cinder::backend::dellsc_iscsi' do
let :default_params do
{
:dell_sc_api_port => '<SERVICE DEFAULT>',
:dell_sc_server_folder => 'srv',
:dell_sc_verify_cert => '<SERVICE DEFAULT>',
:dell_sc_volume_folder => 'vol',
:iscsi_port => '<SERVICE DEFAULT>',
:excluded_domain_ip => '<SERVICE DEFAULT>',
:dell_sc_api_port => '<SERVICE DEFAULT>',
:dell_sc_server_folder => 'srv',
:dell_sc_verify_cert => '<SERVICE DEFAULT>',
:dell_sc_volume_folder => 'vol',
:iscsi_port => '<SERVICE DEFAULT>',
:excluded_domain_ip => '<SERVICE DEFAULT>',
:secondary_san_ip => '<SERVICE DEFAULT>',
:secondary_san_login => '<SERVICE DEFAULT>',
:secondary_san_password => '<SERVICE DEFAULT>',
:secondary_sc_api_port => '<SERVICE DEFAULT>',
}
end