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*] # [*excluded_domain_ip*]
# (optional) Domain IP to be excluded from iSCSI returns of Storage Center. # (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 # Defaults to $::os_service_default
# #
# [*extra_options*] # [*extra_options*]
@ -65,15 +80,19 @@ define cinder::backend::dellsc_iscsi (
$san_password, $san_password,
$iscsi_ip_address, $iscsi_ip_address,
$dell_sc_ssn, $dell_sc_ssn,
$volume_backend_name = $name, $volume_backend_name = $name,
$dell_sc_api_port = $::os_service_default, $dell_sc_api_port = $::os_service_default,
$dell_sc_server_folder = 'srv', $dell_sc_server_folder = 'srv',
$dell_sc_verify_cert = $::os_service_default, $dell_sc_verify_cert = $::os_service_default,
$dell_sc_volume_folder = 'vol', $dell_sc_volume_folder = 'vol',
$iscsi_port = $::os_service_default, $iscsi_port = $::os_service_default,
$excluded_domain_ip = $::os_service_default, $excluded_domain_ip = $::os_service_default,
$manage_volume_type = false, $secondary_san_ip = $::os_service_default,
$extra_options = {}, $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 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' $driver = 'dell.dell_storagecenter_iscsi.DellStorageCenterISCSIDriver'
cinder_config { cinder_config {
"${name}/volume_backend_name": value => $volume_backend_name; "${name}/volume_backend_name": value => $volume_backend_name;
"${name}/volume_driver": value => "cinder.volume.drivers.${driver}"; "${name}/volume_driver": value => "cinder.volume.drivers.${driver}";
"${name}/san_ip": value => $san_ip; "${name}/san_ip": value => $san_ip;
"${name}/san_login": value => $san_login; "${name}/san_login": value => $san_login;
"${name}/san_password": value => $san_password, secret => true; "${name}/san_password": value => $san_password, secret => true;
"${name}/iscsi_ip_address": value => $iscsi_ip_address; "${name}/iscsi_ip_address": value => $iscsi_ip_address;
"${name}/dell_sc_ssn": value => $dell_sc_ssn; "${name}/dell_sc_ssn": value => $dell_sc_ssn;
"${name}/dell_sc_api_port": value => $dell_sc_api_port; "${name}/dell_sc_api_port": value => $dell_sc_api_port;
"${name}/dell_sc_server_folder": value => $dell_sc_server_folder; "${name}/dell_sc_server_folder": value => $dell_sc_server_folder;
"${name}/dell_sc_verify_cert": value => $dell_sc_verify_cert; "${name}/dell_sc_verify_cert": value => $dell_sc_verify_cert;
"${name}/dell_sc_volume_folder": value => $dell_sc_volume_folder; "${name}/dell_sc_volume_folder": value => $dell_sc_volume_folder;
"${name}/iscsi_port": value => $iscsi_port; "${name}/iscsi_port": value => $iscsi_port;
"${name}/excluded_domain_ip": value => $excluded_domain_ip; "${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 { if $manage_volume_type {

View File

@ -43,6 +43,22 @@
# (optional) Domain IP to be excluded from iSCSI returns of Storage Center. # (optional) Domain IP to be excluded from iSCSI returns of Storage Center.
# Defaults to $::os_service_default # 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*] # [*extra_options*]
# (optional) Hash of extra options to pass to the backend stanza. # (optional) Hash of extra options to pass to the backend stanza.
# Defaults to: {} # Defaults to: {}
@ -55,13 +71,17 @@ class cinder::volume::dellsc_iscsi (
$san_password, $san_password,
$iscsi_ip_address, $iscsi_ip_address,
$dell_sc_ssn, $dell_sc_ssn,
$dell_sc_api_port = $::os_service_default, $dell_sc_api_port = $::os_service_default,
$dell_sc_server_folder = 'srv', $dell_sc_server_folder = 'srv',
$dell_sc_verify_cert = $::os_service_default, $dell_sc_verify_cert = $::os_service_default,
$dell_sc_volume_folder = 'vol', $dell_sc_volume_folder = 'vol',
$iscsi_port = $::os_service_default, $iscsi_port = $::os_service_default,
$excluded_domain_ip = $::os_service_default, $excluded_domain_ip = $::os_service_default,
$extra_options = {}, $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 include ::cinder::deps
@ -70,17 +90,21 @@ class cinder::volume::dellsc_iscsi (
cinder::backend::dellsc_iscsi instead.') cinder::backend::dellsc_iscsi instead.')
cinder::backend::dellsc_iscsi { 'DEFAULT': cinder::backend::dellsc_iscsi { 'DEFAULT':
san_ip => $san_ip, san_ip => $san_ip,
san_login => $san_login, san_login => $san_login,
san_password => $san_password, san_password => $san_password,
iscsi_ip_address => $iscsi_ip_address, iscsi_ip_address => $iscsi_ip_address,
dell_sc_ssn => $dell_sc_ssn, dell_sc_ssn => $dell_sc_ssn,
dell_sc_api_port => $dell_sc_api_port, dell_sc_api_port => $dell_sc_api_port,
dell_sc_server_folder => $dell_sc_server_folder, dell_sc_server_folder => $dell_sc_server_folder,
dell_sc_verify_cert => $dell_sc_verify_cert, dell_sc_verify_cert => $dell_sc_verify_cert,
dell_sc_volume_folder => $dell_sc_volume_folder, dell_sc_volume_folder => $dell_sc_volume_folder,
iscsi_port => $iscsi_port, iscsi_port => $iscsi_port,
excluded_domain_ip => $excluded_domain_ip, excluded_domain_ip => $excluded_domain_ip,
extra_options => $extra_options, 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 let :default_params do
{ {
:dell_sc_api_port => '<SERVICE DEFAULT>', :dell_sc_api_port => '<SERVICE DEFAULT>',
:dell_sc_server_folder => 'srv', :dell_sc_server_folder => 'srv',
:dell_sc_verify_cert => '<SERVICE DEFAULT>', :dell_sc_verify_cert => '<SERVICE DEFAULT>',
:dell_sc_volume_folder => 'vol', :dell_sc_volume_folder => 'vol',
:iscsi_port => '<SERVICE DEFAULT>', :iscsi_port => '<SERVICE DEFAULT>',
:excluded_domain_ip => '<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 end

View File

@ -18,12 +18,16 @@ describe 'cinder::backend::dellsc_iscsi' do
let :default_params do let :default_params do
{ {
:dell_sc_api_port => '<SERVICE DEFAULT>', :dell_sc_api_port => '<SERVICE DEFAULT>',
:dell_sc_server_folder => 'srv', :dell_sc_server_folder => 'srv',
:dell_sc_verify_cert => '<SERVICE DEFAULT>', :dell_sc_verify_cert => '<SERVICE DEFAULT>',
:dell_sc_volume_folder => 'vol', :dell_sc_volume_folder => 'vol',
:iscsi_port => '<SERVICE DEFAULT>', :iscsi_port => '<SERVICE DEFAULT>',
:excluded_domain_ip => '<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 end