aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrajinir <rajini_ram@dell.com>2017-07-31 15:56:28 -0500
committerrajinir <rajini_ram@dell.com>2017-08-14 10:06:49 -0500
commitfd363513b68d8e19bf24be4824d11c618ea550c7 (patch)
treec99908cac7933f338dcd6e595863d3778045b39e
parentf41922902eb2649ba6eee0c43fb32d623f76c7ec (diff)
Support for Dell EMC VMAX ISCSI Cinder Driver
This changes adds Dell EMC VMAX ISCSI backend as composable service and matches the tripleo-heat-templates. Change-Id: Ifc169c60994856e382b76b72e020624ca64eef9f Implements: blueprint dellemc-vmax-isci
-rw-r--r--manifests/profile/base/cinder/volume.pp40
-rw-r--r--manifests/profile/base/cinder/volume/dellemc_vmax_iscsi.pp42
-rw-r--r--spec/classes/tripleo_profile_base_cinder_vmax_spec.rb57
3 files changed, 126 insertions, 13 deletions
diff --git a/manifests/profile/base/cinder/volume.pp b/manifests/profile/base/cinder/volume.pp
index 252bae1..b9cee83 100644
--- a/manifests/profile/base/cinder/volume.pp
+++ b/manifests/profile/base/cinder/volume.pp
@@ -30,6 +30,10 @@
# (Optional) Whether to enable the unity backend
# Defaults to false
#
+# [*cinder_enable_dellemc_vmax_iscsi_backend*]
+# (Optional) Whether to enable the vmax iscsi backend
+# Defaults to false
+#
# [*cinder_enable_hpelefthand_backend*]
# (Optional) Whether to enable the hpelefthand backend
# Defaults to false
@@ -72,19 +76,20 @@
# Defaults to hiera('step')
#
class tripleo::profile::base::cinder::volume (
- $cinder_enable_pure_backend = false,
- $cinder_enable_dellsc_backend = false,
- $cinder_enable_dellemc_unity_backend = false,
- $cinder_enable_hpelefthand_backend = false,
- $cinder_enable_dellps_backend = false,
- $cinder_enable_iscsi_backend = true,
- $cinder_enable_netapp_backend = false,
- $cinder_enable_nfs_backend = false,
- $cinder_enable_rbd_backend = false,
- $cinder_enable_scaleio_backend = false,
- $cinder_enable_vrts_hs_backend = false,
- $cinder_user_enabled_backends = hiera('cinder_user_enabled_backends', undef),
- $step = Integer(hiera('step')),
+ $cinder_enable_pure_backend = false,
+ $cinder_enable_dellsc_backend = false,
+ $cinder_enable_dellemc_unity_backend = false,
+ $cinder_enable_dellemc_vmax_iscsi_backend = false,
+ $cinder_enable_hpelefthand_backend = false,
+ $cinder_enable_dellps_backend = false,
+ $cinder_enable_iscsi_backend = true,
+ $cinder_enable_netapp_backend = false,
+ $cinder_enable_nfs_backend = false,
+ $cinder_enable_rbd_backend = false,
+ $cinder_enable_scaleio_backend = false,
+ $cinder_enable_vrts_hs_backend = false,
+ $cinder_user_enabled_backends = hiera('cinder_user_enabled_backends', undef),
+ $step = Integer(hiera('step')),
) {
include ::tripleo::profile::base::cinder
@@ -112,6 +117,14 @@ class tripleo::profile::base::cinder::volume (
$cinder_dellemc_unity_backend_name = undef
}
+ if $cinder_enable_dellemc_vmax_iscsi_backend {
+ include ::tripleo::profile::base::cinder::volume::dellemc_vmax_iscsi
+ $cinder_dellemc_vmax_iscsi_backend_name = hiera('cinder::backend::dellemc_vmax_iscsi::volume_backend_name',
+ 'tripleo_dellemc_vmax_iscsi')
+ } else {
+ $cinder_dellemc_vmax_iscsi_backend_name = undef
+ }
+
if $cinder_enable_hpelefthand_backend {
include ::tripleo::profile::base::cinder::volume::hpelefthand
$cinder_hpelefthand_backend_name = hiera('cinder::backend::hpelefthand_iscsi::volume_backend_name', 'tripleo_hpelefthand')
@@ -174,6 +187,7 @@ class tripleo::profile::base::cinder::volume (
$cinder_dellps_backend_name,
$cinder_dellsc_backend_name,
$cinder_dellemc_unity_backend_name,
+ $cinder_dellemc_vmax_iscsi_backend_name,
$cinder_hpelefthand_backend_name,
$cinder_netapp_backend_name,
$cinder_nfs_backend_name,
diff --git a/manifests/profile/base/cinder/volume/dellemc_vmax_iscsi.pp b/manifests/profile/base/cinder/volume/dellemc_vmax_iscsi.pp
new file mode 100644
index 0000000..d09481f
--- /dev/null
+++ b/manifests/profile/base/cinder/volume/dellemc_vmax_iscsi.pp
@@ -0,0 +1,42 @@
+# Copyright (c) 2016-2017 Dell Inc, or its subsidiaries.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::cinder::volume::dellemc_vmax_iscsi
+#
+# Cinder Volume dellemc_vmax_iscsi profile for tripleo
+#
+# === Parameters
+#
+# [*backend_name*]
+# (Optional) Name given to the Cinder backend stanza
+# Defaults to 'tripleo_dellemc_vmax_iscsi'
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::cinder::volume::dellemc_vmax_iscsi (
+ $backend_name = hiera('cinder::backend::dellemc_vmax_iscsi::volume_backend_name', 'tripleo_dellemc_vmax_iscsi'),
+ $step = Integer(hiera('step')),
+) {
+ include ::tripleo::profile::base::cinder::volume
+
+ if $step >= 4 {
+ cinder::backend::dellemc_vmax_iscsi { $backend_name :
+ cinder_emc_config_file => hiera('cinder::backend::dellemc_vmax_iscsi::cinder_emc_config_file', undef),
+ }
+ }
+
+}
diff --git a/spec/classes/tripleo_profile_base_cinder_vmax_spec.rb b/spec/classes/tripleo_profile_base_cinder_vmax_spec.rb
new file mode 100644
index 0000000..bcb40c5
--- /dev/null
+++ b/spec/classes/tripleo_profile_base_cinder_vmax_spec.rb
@@ -0,0 +1,57 @@
+# Copyright (c) 2016-2017 Dell Inc, or its subsidiaries
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+require 'spec_helper'
+
+describe 'tripleo::profile::base::cinder::volume::dellemc_vmax_iscsi' do
+ shared_examples_for 'tripleo::profile::base::cinder::volume::dellemc_vmax_iscsi' do
+ before :each do
+ facts.merge!({ :step => params[:step] })
+ end
+
+ context 'with step less than 4' do
+ let(:params) { { :step => 3 } }
+
+ it 'should do nothing' do
+ is_expected.to contain_class('tripleo::profile::base::cinder::volume::dellemc_vmax_iscsi')
+ is_expected.to contain_class('tripleo::profile::base::cinder::volume')
+ is_expected.to contain_class('tripleo::profile::base::cinder')
+ is_expected.to_not contain_cinder__backend__dellemc_vmax_iscsi('tripleo_dellemc_vmax_iscsi')
+ end
+ end
+
+ context 'with step 4' do
+ let(:params) { {
+ :step => 4,
+ } }
+
+ it 'should trigger complete configuration' do
+ # TODO(aschultz): check hiera parameters
+ is_expected.to contain_cinder__backend__dellemc_vmax_iscsi('tripleo_dellemc_vmax_iscsi')
+ end
+ end
+ end
+
+
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({ :hostname => 'node.example.com' })
+ end
+
+ it_behaves_like 'tripleo::profile::base::cinder::volume::dellemc_vmax_iscsi'
+ end
+ end
+end