aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorabhishek.kane <abhishek.kane@veritas.com>2017-06-20 17:53:53 +0530
committerabhishek.kane <abhishek.kane@veritas.com>2017-07-14 12:45:59 +0530
commita87fb1282327f7c67542cff006d5a83c87afb75c (patch)
tree57e1584383dbc8fe4e200aee16addc9bc92bf2ce
parent3fcafacc1e3de1c3fad756135889f2f4a3c4fbe2 (diff)
Add new profile for the Veritas HyperScale's cinder backend.
Add new hook in the keystone profile for Veritas HyperScale. Add new hook in the rabbitmq profile for Veritas HyperScale. Add new hook in the mysql profile for Veritas HyperScale. Change-Id: I9168bffa5c73a205d1bb84b831b06081c40af549 Depends-On: I316b22f4f7f9f68fe5c46075dc348a70e437fb1d Depends-On: Id188af5e2f7bf628a97a70b8f20bef28e42b372d Signed-off-by: abhishek.kane <abhishek.kane@veritas.com> Signed-off-by: Dnyaneshwar Pawar <dnyaneshwar.pawar@veritas.com>
-rw-r--r--manifests/profile/base/cinder/volume.pp27
-rw-r--r--manifests/profile/base/cinder/volume/veritas_hyperscale.pp44
-rw-r--r--manifests/profile/base/database/mysql.pp3
-rw-r--r--manifests/profile/base/keystone.pp3
-rw-r--r--manifests/profile/base/rabbitmq.pp3
-rw-r--r--releasenotes/notes/veritas-hyperscale-driver-profile-970b5cb72f9fdcba.yaml3
-rw-r--r--spec/classes/tripleo_profile_base_cinder_veritas_hyperscale_spec.rb57
-rw-r--r--spec/classes/tripleo_profile_base_cinder_volume_spec.rb38
8 files changed, 163 insertions, 15 deletions
diff --git a/manifests/profile/base/cinder/volume.pp b/manifests/profile/base/cinder/volume.pp
index 3581540..bdfdd17 100644
--- a/manifests/profile/base/cinder/volume.pp
+++ b/manifests/profile/base/cinder/volume.pp
@@ -20,11 +20,11 @@
#
# [*cinder_enable_pure_backend*]
# (Optional) Whether to enable the pure backend
-# Defaults to true
+# Defaults to false
#
# [*cinder_enable_dellsc_backend*]
# (Optional) Whether to enable the delsc backend
-# Defaults to true
+# Defaults to false
#
# [*cinder_enable_hpelefthand_backend*]
# (Optional) Whether to enable the hpelefthand backend
@@ -32,7 +32,7 @@
#
# [*cinder_enable_dellps_backend*]
# (Optional) Whether to enable the dellps backend
-# Defaults to true
+# Defaults to false
#
# [*cinder_enable_iscsi_backend*]
# (Optional) Whether to enable the iscsi backend
@@ -40,19 +40,23 @@
#
# [*cinder_enable_netapp_backend*]
# (Optional) Whether to enable the netapp backend
-# Defaults to true
+# Defaults to false
#
# [*cinder_enable_nfs_backend*]
# (Optional) Whether to enable the nfs backend
-# Defaults to true
+# Defaults to false
#
# [*cinder_enable_rbd_backend*]
# (Optional) Whether to enable the rbd backend
-# Defaults to true
+# Defaults to false
#
# [*cinder_enable_scaleio_backend*]
# (Optional) Whether to enable the scaleio backend
-# Defaults to true
+# Defaults to false
+#
+#[*cinder_enable_vrts_hs_backend*]
+# (Optional) Whether to enable the Veritas HyperScale backend
+# Defaults to false
#
# [*cinder_user_enabled_backends*]
# (Optional) List of additional backend stanzas to activate
@@ -73,6 +77,7 @@ class tripleo::profile::base::cinder::volume (
$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')),
) {
@@ -144,6 +149,13 @@ class tripleo::profile::base::cinder::volume (
$cinder_scaleio_backend_name = undef
}
+ if $cinder_enable_vrts_hs_backend {
+ include ::tripleo::profile::base::cinder::volume::veritas_hyperscale
+ $cinder_veritas_hyperscale_backend_name = 'Veritas_HyperScale'
+ } else {
+ $cinder_veritas_hyperscale_backend_name = undef
+ }
+
$backends = delete_undef_values([$cinder_iscsi_backend_name,
$cinder_rbd_backend_name,
$cinder_pure_backend_name,
@@ -153,6 +165,7 @@ class tripleo::profile::base::cinder::volume (
$cinder_netapp_backend_name,
$cinder_nfs_backend_name,
$cinder_scaleio_backend_name,
+ $cinder_veritas_hyperscale_backend_name,
$cinder_user_enabled_backends])
# NOTE(aschultz): during testing it was found that puppet 3 may incorrectly
# include a "" in the previous array which is not removed by the
diff --git a/manifests/profile/base/cinder/volume/veritas_hyperscale.pp b/manifests/profile/base/cinder/volume/veritas_hyperscale.pp
new file mode 100644
index 0000000..4516d01
--- /dev/null
+++ b/manifests/profile/base/cinder/volume/veritas_hyperscale.pp
@@ -0,0 +1,44 @@
+# Copyright (c) 2017 Veritas Technologies LLC.
+#
+# 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::veritas_hyperscale
+#
+# Cinder Volume Veritas HyperScale profile for tripleo
+#
+# === Parameters
+#
+# [*backend_name*]
+# (Optional) The name of Veritas HyperScale cinder backend.
+# Currently the backend name is hard-coded in the driver, and it won't
+# function if other value is set in hiera.
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::cinder::volume::veritas_hyperscale (
+ # Note: Currently the backend name is hard-coded in the driver, and it won't
+ # function if other value is set in hiera.
+ $backend_name = hiera('cinder::backend::veritas_hyperscale::volume_backend_name', 'Veritas_HyperScale'),
+ $step = Integer(hiera('step')),
+) {
+ include ::tripleo::profile::base::cinder::volume
+
+ if $step >= 4 {
+ cinder::backend::veritas_hyperscale { $backend_name :
+ }
+ }
+
+}
diff --git a/manifests/profile/base/database/mysql.pp b/manifests/profile/base/database/mysql.pp
index fbb8b11..3bf41cf 100644
--- a/manifests/profile/base/database/mysql.pp
+++ b/manifests/profile/base/database/mysql.pp
@@ -224,6 +224,9 @@ class tripleo::profile::base::database::mysql (
# NOTE: by default zaqar uses mongodb
include ::zaqar::db::mysql
}
+ if hiera('veritas_hyperscale_controller_enabled', false) {
+ include ::veritas_hyperscale::db::mysql
+ }
}
}
diff --git a/manifests/profile/base/keystone.pp b/manifests/profile/base/keystone.pp
index 91a660c..47b5276 100644
--- a/manifests/profile/base/keystone.pp
+++ b/manifests/profile/base/keystone.pp
@@ -347,5 +347,8 @@ class tripleo::profile::base::keystone (
if hiera('novajoin_enabled', false) {
include ::nova::metadata::novajoin::auth
}
+ if hiera('veritas_hyperscale_controller_enabled', false) {
+ include ::veritas_hyperscale::hs_keystone
+ }
}
}
diff --git a/manifests/profile/base/rabbitmq.pp b/manifests/profile/base/rabbitmq.pp
index 8ab6049..d0b4a05 100644
--- a/manifests/profile/base/rabbitmq.pp
+++ b/manifests/profile/base/rabbitmq.pp
@@ -166,4 +166,7 @@ class tripleo::profile::base::rabbitmq (
}
}
+ if $step >= 1 and hiera('veritas_hyperscale_controller_enabled', false) {
+ include ::veritas_hyperscale::hs_rabbitmq
+ }
}
diff --git a/releasenotes/notes/veritas-hyperscale-driver-profile-970b5cb72f9fdcba.yaml b/releasenotes/notes/veritas-hyperscale-driver-profile-970b5cb72f9fdcba.yaml
new file mode 100644
index 0000000..0f98d44
--- /dev/null
+++ b/releasenotes/notes/veritas-hyperscale-driver-profile-970b5cb72f9fdcba.yaml
@@ -0,0 +1,3 @@
+---
+features:
+ - New profile for Veritas HyperScale Cinder backend.
diff --git a/spec/classes/tripleo_profile_base_cinder_veritas_hyperscale_spec.rb b/spec/classes/tripleo_profile_base_cinder_veritas_hyperscale_spec.rb
new file mode 100644
index 0000000..63c1147
--- /dev/null
+++ b/spec/classes/tripleo_profile_base_cinder_veritas_hyperscale_spec.rb
@@ -0,0 +1,57 @@
+#
+# Copyright (c) 2017 Veritas Technologies LLC.
+#
+# 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::veritas_hyperscale' do
+ shared_examples_for 'tripleo::profile::base::cinder::volume::veritas_hyperscale' 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::veritas_hyperscale')
+ 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__veritas_hyperscale('Veritas_HyperScale')
+ end
+ end
+
+ context 'with step 4' do
+ let(:params) { {
+ :step => 4,
+ } }
+
+ it 'should trigger complete configuration' do
+ is_expected.to contain_cinder__backend__veritas_hyperscale('Veritas_HyperScale')
+ 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::veritas_hyperscale'
+ end
+ end
+end
diff --git a/spec/classes/tripleo_profile_base_cinder_volume_spec.rb b/spec/classes/tripleo_profile_base_cinder_volume_spec.rb
index aa3dd89..03f5325 100644
--- a/spec/classes/tripleo_profile_base_cinder_volume_spec.rb
+++ b/spec/classes/tripleo_profile_base_cinder_volume_spec.rb
@@ -132,6 +132,25 @@ describe 'tripleo::profile::base::cinder::volume' do
end
end
+ context 'with only veritas hyperscale' do
+ before :each do
+ params.merge!({
+ :cinder_enable_vrts_hs_backend => true,
+ :cinder_enable_iscsi_backend => false,
+ })
+ end
+ it 'should configure only veritas hyperscale' do
+ is_expected.to contain_class('tripleo::profile::base::cinder::volume::veritas_hyperscale')
+ is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::iscsi')
+ is_expected.to contain_class('tripleo::profile::base::cinder::volume')
+ is_expected.to contain_class('tripleo::profile::base::cinder')
+ is_expected.to contain_class('cinder::volume')
+ is_expected.to contain_class('cinder::backends').with(
+ :enabled_backends => ['Veritas_HyperScale']
+ )
+ end
+ end
+
context 'with only nfs' do
before :each do
params.merge!({
@@ -183,6 +202,7 @@ describe 'tripleo::profile::base::cinder::volume' do
is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::dellsc')
is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::dellps')
is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::netapp')
+ is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::veritas_hyperscale')
is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::nfs')
is_expected.to_not contain_class('tripleo::profile::base::cinder::volume::rbd')
is_expected.to contain_class('tripleo::profile::base::cinder::volume')
@@ -197,13 +217,14 @@ describe 'tripleo::profile::base::cinder::volume' do
context 'with all tripleo backends' do
before :each do
params.merge!({
- :cinder_enable_nfs_backend => true,
- :cinder_enable_rbd_backend => true,
- :cinder_enable_iscsi_backend => true,
- :cinder_enable_pure_backend => true,
- :cinder_enable_dellsc_backend => true,
- :cinder_enable_dellps_backend => true,
- :cinder_enable_netapp_backend => true,
+ :cinder_enable_nfs_backend => true,
+ :cinder_enable_rbd_backend => true,
+ :cinder_enable_iscsi_backend => true,
+ :cinder_enable_pure_backend => true,
+ :cinder_enable_dellsc_backend => true,
+ :cinder_enable_dellps_backend => true,
+ :cinder_enable_netapp_backend => true,
+ :cinder_enable_vrts_hs_backend => true,
})
end
it 'should configure all backends' do
@@ -212,6 +233,7 @@ describe 'tripleo::profile::base::cinder::volume' do
is_expected.to contain_class('tripleo::profile::base::cinder::volume::dellsc')
is_expected.to contain_class('tripleo::profile::base::cinder::volume::dellps')
is_expected.to contain_class('tripleo::profile::base::cinder::volume::netapp')
+ is_expected.to contain_class('tripleo::profile::base::cinder::volume::veritas_hyperscale')
is_expected.to contain_class('tripleo::profile::base::cinder::volume::nfs')
is_expected.to contain_class('tripleo::profile::base::cinder::volume::rbd')
is_expected.to contain_class('tripleo::profile::base::cinder::volume')
@@ -219,7 +241,7 @@ describe 'tripleo::profile::base::cinder::volume' do
is_expected.to contain_class('cinder::volume')
is_expected.to contain_class('cinder::backends').with(
:enabled_backends => ['tripleo_iscsi', 'tripleo_ceph', 'tripleo_pure', 'tripleo_dellps',
- 'tripleo_dellsc', 'tripleo_netapp','tripleo_nfs']
+ 'tripleo_dellsc', 'tripleo_netapp','tripleo_nfs','Veritas_HyperScale']
)
end
end