Release Candidate #4 -- Additional requirements as per mail on 09-Dec-16 adding cinder service name, non-mandatory volume_type, addition of use_multipath_for_image_xfer, nimble_subnet_label, and nimble_pool_name.

This commit is contained in:
sreesiv 2016-12-12 20:06:44 +05:30
parent fda70cb19e
commit c8e8c39221
13 changed files with 539 additions and 166 deletions

Binary file not shown.

View File

@ -5,7 +5,8 @@ $cinder_nimble = hiera_hash('cinder_nimble', {})
define plugin_cinder_nimble::check_if_default_backend_is_enabled (
) {
if ($cinder_nimble["nimble${name}_default_backend"]) == true {
if (($cinder_nimble["nimble${name}_default_backend"]) == true) and
(($cinder_nimble["nimble${name}_backend_type"]) != '') {
class { 'plugin_cinder_nimble::backend::set_default_type' :
config_file => $config_file,
nimble_backend_type => $cinder_nimble["nimble${name}_backend_type"],
@ -14,7 +15,8 @@ define plugin_cinder_nimble::check_if_default_backend_is_enabled (
}
if ($cinder_nimble['nimble_grouping']) == true {
if ($cinder_nimble["nimble_group_default_backend"]) == true {
if (($cinder_nimble['nimble_group_default_backend']) == true) and
(($cinder_nimble["nimble_group_backend_type"]) != '') {
class { 'plugin_cinder_nimble::backend::set_default_type' :
config_file => $config_file,
nimble_backend_type => $cinder_nimble['nimble_group_backend_type'],

View File

@ -8,7 +8,8 @@ $cinder_nimble = hiera_hash('cinder_nimble', {})
define plugin_cinder_nimble::check_if_default_type_is_enabled (
) {
if ($cinder_nimble["nimble${name}_default_backend"]) == true {
if (($cinder_nimble["nimble${name}_default_backend"]) == true) and
(($cinder_nimble["nimble${name}_backend_type"]) != '') {
class { 'plugin_cinder_nimble::backend::disable_default_type' :
config_file => $config_file,
}
@ -16,7 +17,8 @@ define plugin_cinder_nimble::check_if_default_type_is_enabled (
}
if ($cinder_nimble['nimble_grouping']) == true {
if ($cinder_nimble['nimble_group_default_backend']) == true {
if (($cinder_nimble['nimble_group_default_backend']) == true) and
(($cinder_nimble["nimble_group_backend_type"]) != '') {
class { 'plugin_cinder_nimble::backend::disable_default_type' :
config_file => $config_file,
}

View File

@ -21,38 +21,57 @@ if ($cinder_nimble['nimble_grouping']) == true {
$content = inline_template('
storage:
volume_backend_names:
__dummy__: false
<% if @cinder_nimble["nimble_group_backend_type"] != "" -%>
<%= @cinder_nimble["nimble_group_backend_type"] %>: <%= @cinder_nimble["nimble_group_backend_name"] %>
<% end %>
nimble_encryption:
<%= @cinder_nimble["nimble_group_backend_type"] %>: <%= @cinder_nimble["nimble_group_encryption"] -%>
<% if @cinder_nimble["nimble_group_perfpol"] != "" %>
__dummy__: __dummy__
<% if @cinder_nimble["nimble_group_backend_type"] != "" -%>
<%= @cinder_nimble["nimble_group_backend_type"] %>: <%= @cinder_nimble["nimble_group_encryption"] %>
<% end %>
nimble_perfpol:
<%= @cinder_nimble["nimble_group_backend_type"] %>: <%= @cinder_nimble["nimble_group_perfpol"] -%>
__dummy__: __dummy__
<% if (@cinder_nimble["nimble_group_perfpol"] != "") and (@cinder_nimble["nimble_group_backend_type"] != "") -%>
<%= @cinder_nimble["nimble_group_backend_type"] %>: <%= @cinder_nimble["nimble_group_perfpol"] %>
<% end %>
nimble_multi_init:
__dummy__: __dummy__
<% if @cinder_nimble["nimble_group_backend_type"] != "" -%>
<%= @cinder_nimble["nimble_group_backend_type"] %>: <%= @cinder_nimble["nimble_group_multi_init"] %>
<% end %>
')
}
else {
$content = inline_template('
storage:
volume_backend_names:
__dummy__: false
<% @range_array.each do |i| -%>
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_backend_name"] %>
<% if @cinder_nimble["nimble#{i}_backend_type"] != "" -%>
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_backend_name"] -%>
<% end %>
<% end %>
nimble_encryption:
__dummy__: __dummy__
<% @range_array.each do |i| -%>
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_encryption"] %>
<% if @cinder_nimble["nimble#{i}_backend_type"] != "" -%>
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_encryption"] -%>
<% end %>
<% end %>
nimble_perfpol:
__dummy__: __dummy__
<% @range_array.each do |i| -%>
<% if @cinder_nimble["nimble#{i}_perfpol"] != "" -%>
<% if (@cinder_nimble["nimble#{i}_perfpol"] != "") and (@cinder_nimble["nimble#{i}_backend_type"] != "") -%>
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_perfpol"] -%>
<% end %>
<% end %>
nimble_multi_init:
__dummy__: __dummy__
<% @range_array.each do |i| -%>
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_multi_init"] %>
<% if @cinder_nimble["nimble#{i}_backend_type"] != "" -%>
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_multi_init"] -%>
<% end %>
<% end %>
')
}

View File

@ -12,6 +12,6 @@ define plugin_cinder_nimble::backend::enable_backend (
setting => 'enabled_backends',
subsetting => $name,
subsetting_separator => ',',
use_exact_match => true,
use_exact_match => true,
}
}

View File

@ -2,10 +2,11 @@ class plugin_cinder_nimble::backend::set_extraspecs_encryption (
) {
$storage_hash = hiera_hash('storage', {})
$nimble_encryption = $storage_hash['nimble_encryption']
$available_backend_names = keys($nimble_encryption)
$available_backends = delete_values($nimble_encryption, '__dummy__')
$available_backend_names = keys($available_backends)
::osnailyfacter::openstack::manage_cinder_types { $available_backend_names:
ensure => 'present',
volume_backend_names => $nimble_encryption,
volume_backend_names => $available_backends,
key => 'nimble:encryption'
}
}

View File

@ -2,10 +2,11 @@ class plugin_cinder_nimble::backend::set_extraspecs_multi_init (
) {
$storage_hash = hiera_hash('storage', {})
$nimble_multi_init = $storage_hash['nimble_multi_init']
$available_backend_names = keys($nimble_multi_init)
$available_backends = delete_values($nimble_multi_init, '__dummy__')
$available_backend_names = keys($available_backends)
::osnailyfacter::openstack::manage_cinder_types { $available_backend_names:
ensure => 'present',
volume_backend_names => $nimble_multi_init,
volume_backend_names => $available_backends,
key => 'nimble:multi-initiator'
}
}

View File

@ -2,13 +2,11 @@ class plugin_cinder_nimble::backend::set_extraspecs_perfpol (
) {
$storage_hash = hiera_hash('storage', {})
$nimble_perfpol = $storage_hash['nimble_perfpol']
if ! empty($nimble_perfpol) {
$available_backends = delete_values($nimble_perfpol, '__dummy__')
$available_backend_names = keys($available_backends)
::osnailyfacter::openstack::manage_cinder_types { $available_backend_names:
ensure => 'present',
volume_backend_names => $available_backends,
key => 'nimble:perfpol-name'
}
$available_backends = delete_values($nimble_perfpol, '__dummy__')
$available_backend_names = keys($available_backends)
::osnailyfacter::openstack::manage_cinder_types { $available_backend_names:
ensure => 'present',
volume_backend_names => $available_backends,
key => 'nimble:perfpol-name'
}
}

View File

@ -1,7 +1,8 @@
define plugin_cinder_nimble::backend::set_nimble_backend (
$backend_id,
$index,
$cinder_nimble = $plugin_cinder_nimble::params::cinder_nimble
$cinder_nimble = $plugin_cinder_nimble::params::cinder_nimble,
$config_file = $plugin_cinder_nimble::params::config_file
) {
include plugin_cinder_nimble::params
@ -28,13 +29,30 @@ define plugin_cinder_nimble::backend::set_nimble_backend (
# Check whether grouping is enabled and adjust volume_backend_name accordingly
if ($cinder_nimble['nimble_grouping']) == true {
$nimble_backend_name = "${nimble_group_backend_name}_${backend_id}"
if ($cinder_nimble["nimble${backend_id}_cinder_service_name"]) != '' {
$nimble_backend_name = $cinder_nimble["nimble${backend_id}_cinder_service_name"]
}
else {
$nimble_backend_name = "${nimble_group_backend_name}_${backend_id}"
}
$nimble_volume_backend_name = "${nimble_group_backend_name}"
}
else {
$nimble_backend_name = "${cinder_nimble["nimble${backend_id}_backend_name"]}"
if ($cinder_nimble["nimble${backend_id}_cinder_service_name"]) != '' {
$nimble_backend_name = $cinder_nimble["nimble${backend_id}_cinder_service_name"]
}
else {
$nimble_backend_name = "${cinder_nimble["nimble${backend_id}_backend_name"]}"
}
$nimble_volume_backend_name = "${cinder_nimble["nimble${backend_id}_backend_name"]}"
}
# Pool name selection
if ($cinder_nimble["nimble${backend_id}_pool_name"]) != '' {
$nimble_pool_name = $cinder_nimble["nimble${backend_id}_pool_name"]
}
else {
$nimble_pool_name = 'default'
}
Cinder_config <||> -> Plugin_cinder_nimble::Backend::Enable_backend[$nimble_backend_name] ~> Service <||>
Cinder_config <||> ~> Service <||>
@ -45,6 +63,20 @@ define plugin_cinder_nimble::backend::set_nimble_backend (
"$nimble_backend_name/san_ip": value => $cinder_nimble["nimble${backend_id}_san_ip"];
"$nimble_backend_name/san_login": value => $cinder_nimble["nimble${backend_id}_login"];
"$nimble_backend_name/san_password": value => $nimble_password;
"$nimble_backend_name/nimble_pool_name": value => $nimble_pool_name;
"$nimble_backend_name/use_multipath_for_image_xfer": value => $cinder_nimble["nimble${backend_id}_mp_img_xfer"];
}
# nimble_subnet_label enabled only when iSCSI and non-nil!
if (($cinder_nimble["nimble${backend_id}_subnet_label"]) != '') and (($cinder_nimble["nimble${backend_id}_backend_protocol"]) == 'iSCSI'){
cinder_config { "$nimble_backend_name/nimble_subnet_label":
value => $cinder_nimble["nimble${backend_id}_subnet_label"],
}
}
else {
cinder_config { "$nimble_backend_name/nimble_subnet_label":
ensure => absent,
}
}
# Adds the backend in <enabled_backends> parameter

View File

@ -2,10 +2,8 @@ class plugin_cinder_nimble::backend::set_nimble_cinder_type (
) {
$storage_hash = hiera_hash('storage', {})
$backends = $storage_hash['volume_backend_names']
$available_backends = delete_values($backends, false)
$available_backend_names = keys($available_backends)
::osnailyfacter::openstack::manage_cinder_types { $available_backend_names:
ensure => 'present',
volume_backend_names => $available_backends,

View File

@ -86,13 +86,13 @@
# Post Deployment tasks
# Set the default volume type to the nimble type in <default_volume_type> parameter
- id: disable_default_type
- id: disable_default_type
role: [primary-controller, controller]
required_for: [post_deployment_end]
requires: [post_deployment_start]
type: puppet
parameters:
puppet_manifest: puppet/manifests/disable_default_type.pp
puppet_manifest: puppet/manifests/disable_default_type.pp
puppet_modules: "puppet/modules/:/etc/puppet/modules/"
timeout: 360

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
# Plugin name
name: cinder_nimble
name: cinder_nimble
# Human-readable name for your plugin
title: Cinder plugin for Nimble Storage
# Plugin version
@ -22,7 +22,7 @@ homepage: 'https://github.com/openstack/fuel-plugin-cinder-nimble'
groups: ['storage::cinder']
# Change `false` to `true` if the plugin can be installed in the environment
# after the deployment.
is_hotpluggable: true
is_hotpluggable: true
# The plugin is compatible with releases in the list
releases: