From 541ecbed32a596a1829d48173c0fb76682a6d642 Mon Sep 17 00:00:00 2001 From: rajinir Date: Mon, 10 Apr 2017 11:14:24 -0500 Subject: [PATCH] Dell SC: Add secondary DSM support Adds support for a secondary DSM in case the primary becomes unavailable. Closes-Bug: #1681491 Change-Id: I331466e4f254b2b8ff7891b796e78cd30c2c87f7 --- manifests/backend/dellsc_iscsi.pp | 67 +++++++++++++------ manifests/volume/dellsc_iscsi.pp | 62 +++++++++++------ .../cinder_volume_dellsc_iscsi_spec.rb | 16 +++-- .../cinder_backend_dellsc_iscsi_spec.rb | 16 +++-- 4 files changed, 108 insertions(+), 53 deletions(-) diff --git a/manifests/backend/dellsc_iscsi.pp b/manifests/backend/dellsc_iscsi.pp index 74bba44e..6f264574 100644 --- a/manifests/backend/dellsc_iscsi.pp +++ b/manifests/backend/dellsc_iscsi.pp @@ -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 { diff --git a/manifests/volume/dellsc_iscsi.pp b/manifests/volume/dellsc_iscsi.pp index fecce834..82330163 100644 --- a/manifests/volume/dellsc_iscsi.pp +++ b/manifests/volume/dellsc_iscsi.pp @@ -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, } } diff --git a/spec/classes/cinder_volume_dellsc_iscsi_spec.rb b/spec/classes/cinder_volume_dellsc_iscsi_spec.rb index c4860eaf..cd282592 100644 --- a/spec/classes/cinder_volume_dellsc_iscsi_spec.rb +++ b/spec/classes/cinder_volume_dellsc_iscsi_spec.rb @@ -14,12 +14,16 @@ describe 'cinder::volume::dellsc_iscsi' do let :default_params do { - :dell_sc_api_port => '', - :dell_sc_server_folder => 'srv', - :dell_sc_verify_cert => '', - :dell_sc_volume_folder => 'vol', - :iscsi_port => '', - :excluded_domain_ip => '', + :dell_sc_api_port => '', + :dell_sc_server_folder => 'srv', + :dell_sc_verify_cert => '', + :dell_sc_volume_folder => 'vol', + :iscsi_port => '', + :excluded_domain_ip => '', + :secondary_san_ip => '', + :secondary_san_login => '', + :secondary_san_password => '', + :secondary_sc_api_port => '', } end diff --git a/spec/defines/cinder_backend_dellsc_iscsi_spec.rb b/spec/defines/cinder_backend_dellsc_iscsi_spec.rb index 7e712c50..1371ca96 100644 --- a/spec/defines/cinder_backend_dellsc_iscsi_spec.rb +++ b/spec/defines/cinder_backend_dellsc_iscsi_spec.rb @@ -18,12 +18,16 @@ describe 'cinder::backend::dellsc_iscsi' do let :default_params do { - :dell_sc_api_port => '', - :dell_sc_server_folder => 'srv', - :dell_sc_verify_cert => '', - :dell_sc_volume_folder => 'vol', - :iscsi_port => '', - :excluded_domain_ip => '', + :dell_sc_api_port => '', + :dell_sc_server_folder => 'srv', + :dell_sc_verify_cert => '', + :dell_sc_volume_folder => 'vol', + :iscsi_port => '', + :excluded_domain_ip => '', + :secondary_san_ip => '', + :secondary_san_login => '', + :secondary_san_password => '', + :secondary_sc_api_port => '', } end