Remove Dell EMC PS Series Driver aka Eqlx

The Dell EMC PS Series aka Eqlx driver is not supported anymore.
Removing it. It was marked as deprecated in the Train release.
See https://review.opendev.org/#/c/703839/

Change-Id: I701c93fd1c87b016b6ffaacccee765070850ca8a
This commit is contained in:
rajinir 2020-03-30 12:14:19 -05:00
parent 1bd55c4868
commit 7083e88a69
8 changed files with 6 additions and 267 deletions

View File

@ -151,7 +151,6 @@ This is a feature and bugfix release in the Juno series.
This is a backwards-incompatible major release for OpenStack Juno.
####Backwards-incompatible changes
- Change the default value of the san_thin_provision parameter for eqlx
- Migrate the mysql backend to use openstacklib::db::mysql, adding dependency
on puppet-openstacklib

View File

@ -1,136 +0,0 @@
# == define: cinder::backend::eqlx
#
# Configure the Dell EqualLogic driver for cinder.
#
# === Parameters
#
# [*san_ip*]
# (required) The IP address of the Dell EqualLogic array.
#
# [*san_login*]
# (required) The account to use for issuing SSH commands.
#
# [*san_password*]
# (required) The password for the specified SSH account.
#
# [*san_private_key*]
# (optional) Filename of private key to use for SSH authentication.
# Defaults to $::os_service_default
#
# [*san_thin_provision*]
# (optional) Boolean. Whether or not to use thin provisioning for volumes. The
# default value in OpenStack is true.
# Defaults to $::os_service_default
#
# [*volume_backend_name*]
# (optional) The backend name.
# Defaults to the name of the resource
#
# [*backend_availability_zone*]
# (Optional) Availability zone for this volume backend.
# If not set, the storage_availability_zone option value
# is used as the default for all backends.
# Defaults to $::os_service_default.
#
# [*eqlx_group_name*]
# (optional) The CLI prompt message without '>'.
# Defaults to $::os_service_default
#
# [*eqlx_pool*]
# (optional) The pool in which volumes will be created.
# Defaults to $::os_service_default
#
# [*eqlx_cli_max_retries*]
# (optional) The maximum retry count for reconnection.
# Defaults to $::os_service_default
#
# [*extra_options*]
# (optional) Hash of extra options to pass to the backend stanza
# Defaults to: {}
# Example :
# { 'eqlx_backend/param1' => { 'value' => value1 } }
#
# [*chap_username*]
# (required) (String) CHAP user name.
#
# [*chap_password*]
# (required) (String) Password for specified CHAP account name.
#
# [*use_chap_auth*]
# (optional) (Boolean) Option to enable/disable CHAP authentication for
# targets.
# Defaults to $::os_service_default
#
# [*ssh_conn_timeout*]
# (optional) The timeout for the Group Manager cli command execution.
# Defaults to $::os_service_default
#
# [*manage_volume_type*]
# (Optional) Whether or not manage Cinder Volume type.
# If set to true, a Cinder Volume type will be created
# with volume_backend_name=$volume_backend_name key/value.
# Defaults to false.
#
define cinder::backend::eqlx (
$san_ip,
$san_login,
$san_password,
$san_private_key = $::os_service_default,
$san_thin_provision = $::os_service_default,
$volume_backend_name = $name,
$backend_availability_zone = $::os_service_default,
$eqlx_group_name = $::os_service_default,
$eqlx_pool = $::os_service_default,
$eqlx_cli_max_retries = $::os_service_default,
$extra_options = {},
$chap_username = $::os_service_default,
$chap_password = $::os_service_default,
$use_chap_auth = $::os_service_default,
$ssh_conn_timeout = $::os_service_default,
$manage_volume_type = false,
) {
include cinder::deps
if is_service_default($chap_username) {
fail('chap_username need to be set.')
}
if is_service_default($chap_password) {
fail('chap_password need to be set.')
}
cinder_config {
"${name}/volume_backend_name": value => $volume_backend_name;
"${name}/backend_availability_zone": value => $backend_availability_zone;
"${name}/volume_driver": value => 'cinder.volume.drivers.dell_emc.ps.PSSeriesISCSIDriver';
"${name}/san_ip": value => $san_ip;
"${name}/san_login": value => $san_login;
"${name}/san_password": value => $san_password, secret => true;
"${name}/san_private_key": value => $san_private_key;
"${name}/san_thin_provision": value => $san_thin_provision;
"${name}/eqlx_group_name": value => $eqlx_group_name;
"${name}/use_chap_auth": value => $use_chap_auth;
"${name}/ssh_conn_timeout": value => $ssh_conn_timeout;
"${name}/eqlx_cli_max_retries": value => $eqlx_cli_max_retries;
"${name}/eqlx_pool": value => $eqlx_pool;
}
if $manage_volume_type {
cinder_type { $name:
ensure => present,
properties => ["volume_backend_name=${name}"],
}
}
# the default for this is false
if !is_service_default($use_chap_auth) and $use_chap_auth == true {
cinder_config {
"${name}/chap_username": value => $chap_username;
"${name}/chap_password": value => $chap_password, secret => true;
}
}
create_resources('cinder_config', $extra_options)
}

View File

@ -1,7 +0,0 @@
---
upgrade:
- add new parameters (chap_username, chap_password, use_chap_auth,
ssh_conn_timeout) to subistitute deprecated ones
deprecations:
- eqlx_chap_login, eqlx_chap_password, eqlx_use_chap and eqlx_cli_timeout
are deprecated and will be removed after Newton

View File

@ -1,4 +0,0 @@
---
upgrade:
- add new parameter san_private_key to configure SSH Private Key
for Eqlx Cinder Backend

View File

@ -0,0 +1,6 @@
---
deprecations:
- Remove eqlx define and class.
- Remove all eqlx parameters in define and class.
- Remove all tests related to eqlx.
- Remove all references to eqlx in docs

View File

@ -1,15 +0,0 @@
---
upgrade:
- |
Removing the Dell EqualLogic driver's deprecated configuration options.
Please replace old options in your cinder.conf with the new one.
* Removed - eqlx_cli_timeout
* Replaced with - ssh_conn_timeout
* Removed - eqlx_use_chap
* Replaced with - use_chap_auth
* Removed - eqlx_chap_login
* Replaced with - chap_username
* Removed - eqlx_chap_password
* Replaced with - chap_password

View File

@ -7,7 +7,6 @@ upgrade:
* Removed cinder::volume::dellsc_iscsi, use cinder::backend::dellsc_iscsi
* Removed cinder::volume::emc_vnx, use cinder::backend::emc_vnc
* Removed cinder::volume::eqlx, use cinder::backend::eqlx
* Removed cinder::volume::glusterfs, use cinder::backend::glusterfs
* Removed cinder::volume::gpfs, use cinder::backend::gpfs
* Removed cinder::volume::hpe3par_iscsi, use cinder::backend::hpe3par_iscsi

View File

@ -1,103 +0,0 @@
require 'spec_helper'
describe 'cinder::backend::eqlx' do
let (:config_group_name) { 'eqlx-1' }
let (:title) { config_group_name }
let :params do
{
:backend_availability_zone => 'my_zone',
:san_ip => '192.168.100.10',
:san_login => 'grpadmin',
:san_password => '12345',
:san_private_key => '',
:volume_backend_name => 'Dell_EQLX',
:san_thin_provision => '<SERVICE DEFAULT>',
:eqlx_group_name => '<SERVICE DEFAULT>',
:eqlx_pool => 'apool',
:use_chap_auth => true,
:chap_username => 'chapadm',
:chap_password => '56789',
:ssh_conn_timeout => 31,
:eqlx_cli_max_retries => 6,
}
end
shared_examples 'eqlx volume driver' do
it { is_expected.to contain_cinder__backend__eqlx(config_group_name) }
it { is_expected.to contain_cinder_config("#{config_group_name}/volume_driver").with(
:value => 'cinder.volume.drivers.dell_emc.ps.PSSeriesISCSIDriver'
)}
it {
params.each_pair do |config,value|
is_expected.to contain_cinder_config("#{config_group_name}/#{config}").with_value(value)
end
}
end
shared_examples 'cinder::backend::eqlx' do
context 'eqlx backend with additional configuration' do
before :each do
params.merge!( :extra_options => {'eqlx-1/param1' => {'value' => 'value1'}} )
end
it { is_expected.to contain_cinder_config('eqlx-1/param1').with_value('value1') }
end
context 'eqlx backend with cinder type' do
before :each do
params.merge!({:manage_volume_type => true})
end
it { is_expected.to contain_cinder_type('eqlx-1').with(
:ensure => 'present',
:properties => ['volume_backend_name=eqlx-1']
)}
end
context 'eqlx backend with chap' do
before :each do
params.merge!({
:use_chap_auth => true,
:chap_username => 'myuser',
:chap_password => 'mypass'
})
end
it_behaves_like 'eqlx volume driver'
end
context 'eqlx with invalid values' do
context 'with invalid chap_username' do
before do
params.merge!( :chap_username => '<SERVICE DEFAULT>' )
end
it { is_expected.to raise_error(Puppet::Error, /chap_username need to be set./) }
end
context 'with invalid chap_password' do
before do
params.merge!( :chap_password => '<SERVICE DEFAULT>' )
end
it { is_expected.to raise_error(Puppet::Error, /chap_password need to be set./) }
end
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end
it_behaves_like 'cinder::backend::eqlx'
end
end
end