Release Candidate #1 with 5 backends
This commit is contained in:
parent
25acbac26c
commit
1f69d19eb7
Binary file not shown.
|
@ -3,35 +3,35 @@ notice('MODULAR: nimble-default-volume-type')
|
|||
$config_file = '/etc/cinder/cinder.conf'
|
||||
$cinder_nimble = hiera_hash('cinder_nimble', {})
|
||||
|
||||
if ($cinder_nimble['nimble_grouping']) == true {
|
||||
$nimble_default_type_set = $cinder_nimble['nimble_group_default_backend']
|
||||
$nimble_default_type = $cinder_nimble['nimble_group_backend_type']
|
||||
}
|
||||
else {
|
||||
$nimble_default_type_set = $cinder_nimble['nimble1_default_backend'] or
|
||||
$cinder_nimble['nimble2_default_backend'] or
|
||||
$cinder_nimble['nimble3_default_backend'] or
|
||||
$cinder_nimble['nimble4_default_backend'] or
|
||||
$cinder_nimble['nimble5_default_backend']
|
||||
if ($cinder_nimble['nimble1_default_backend']) == true {
|
||||
$nimble_default_type = $cinder_nimble['nimble1_backend_type']
|
||||
}
|
||||
elsif ($cinder_nimble['nimble2_default_backend']) == true {
|
||||
$nimble_default_type = $cinder_nimble['nimble2_backend_type']
|
||||
}
|
||||
elsif ($cinder_nimble['nimble3_default_backend']) == true {
|
||||
$nimble_default_type = $cinder_nimble['nimble3_backend_type']
|
||||
}
|
||||
elsif ($cinder_nimble['nimble4_default_backend']) == true {
|
||||
$nimble_default_type = $cinder_nimble['nimble4_backend_type']
|
||||
}
|
||||
elsif ($cinder_nimble['nimble5_default_backend']) == true {
|
||||
$nimble_default_type = $cinder_nimble['nimble5_backend_type']
|
||||
define plugin_cinder_nimble::check_if_default_backend_is_enabled (
|
||||
) {
|
||||
if ($cinder_nimble["nimble${name}_default_backend"]) == true {
|
||||
class { 'plugin_cinder_nimble::backend::set_default_type' :
|
||||
config_file => $config_file,
|
||||
nimble_backend_type => $cinder_nimble["nimble${name}_backend_type"],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class { 'plugin_cinder_nimble::backend::set_default_type' :
|
||||
config_file => $config_file,
|
||||
nimble_default_type_set => $nimble_default_type_set,
|
||||
nimble_backend_type => $nimble_default_type,
|
||||
if ($cinder_nimble['nimble_grouping']) == true {
|
||||
if ($cinder_nimble["nimble_group_default_backend"]) == true {
|
||||
class { 'plugin_cinder_nimble::backend::set_default_type' :
|
||||
config_file => $config_file,
|
||||
nimble_backend_type => $cinder_nimble['nimble_group_backend_type'],
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
# Should work from Puppet >= 4.0.0 onwards which has Future parser
|
||||
/*
|
||||
range("1", "$cinder_nimble['no_backends']").each |Integer $index, String $value| {
|
||||
if ($cinder_nimble["nimble${value}_default_backend"]) == true {
|
||||
$nimble_default_type = $cinder_nimble["nimble${value}_backend_type"]
|
||||
$nimble_default_type_set = true
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
$range_array = range("1", $cinder_nimble['no_backends'])
|
||||
plugin_cinder_nimble::check_if_default_backend_is_enabled { $range_array: }
|
||||
}
|
||||
|
|
|
@ -1,7 +1,37 @@
|
|||
notice('MODULAR: nimble-disable-default-volume-type')
|
||||
|
||||
$config_file = '/etc/cinder/cinder.conf'
|
||||
include plugin_cinder_nimble::params
|
||||
include cinder::params
|
||||
|
||||
class { 'plugin_cinder_nimble::backend::disable_default_type' :
|
||||
config_file => $config_file,
|
||||
$config_file = '/etc/cinder/cinder.conf'
|
||||
$cinder_nimble = hiera_hash('cinder_nimble', {})
|
||||
|
||||
define plugin_cinder_nimble::check_if_default_type_is_enabled (
|
||||
) {
|
||||
if ($cinder_nimble["nimble${name}_default_backend"]) == true {
|
||||
class { 'plugin_cinder_nimble::backend::disable_default_type' :
|
||||
config_file => $config_file,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($cinder_nimble['nimble_grouping']) == true {
|
||||
if ($cinder_nimble['nimble_group_default_backend']) == true {
|
||||
class { 'plugin_cinder_nimble::backend::disable_default_type' :
|
||||
config_file => $config_file,
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
# Should work from Puppet >= 4.0.0 onwards which has Future parser
|
||||
/*
|
||||
range("1", "$cinder_nimble['no_backends']").each |Integer $index, String $value| {
|
||||
if ($cinder_nimble["nimble${value}_default_backend"]) == true {
|
||||
$nimble_default_type_set = true
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
$range_array = range("1", $cinder_nimble['no_backends'])
|
||||
plugin_cinder_nimble::check_if_default_type_is_enabled { $range_array: }
|
||||
}
|
||||
|
|
|
@ -3,76 +3,56 @@
|
|||
notice('MODULAR: nimble-hiera-override')
|
||||
|
||||
$cinder_nimble = hiera_hash('cinder_nimble', {})
|
||||
$nimble_group_backend_type = $cinder_nimble['nimble_group_backend_type']
|
||||
$nimble_group_backend_name = $cinder_nimble['nimble_group_backend_name']
|
||||
$no_backends = $cinder_nimble['no_backends']
|
||||
$nimble1_backend_type = $cinder_nimble['nimble1_backend_type']
|
||||
$nimble1_backend_name = $cinder_nimble['nimble1_backend_name']
|
||||
$nimble2_backend_type = $cinder_nimble['nimble2_backend_type']
|
||||
$nimble2_backend_name = $cinder_nimble['nimble2_backend_name']
|
||||
$no_backends = $cinder_nimble['no_backends']
|
||||
|
||||
$hiera_dir = '/etc/hiera/plugins'
|
||||
$plugin_yaml = 'cinder_nimble.yaml'
|
||||
$plugin_name = 'cinder_nimble'
|
||||
|
||||
# extraspecs
|
||||
$nimble_group_encryption = $cinder_nimble['nimble_group_encryption']
|
||||
$nimble_group_perfpol = $cinder_nimble['nimble_group_perfpol']
|
||||
$nimble_group_multi_init = $cinder_nimble['nimble_group_multi_init']
|
||||
$nimble1_encryption = $cinder_nimble['nimble1_encryption']
|
||||
$nimble1_perfpol = $cinder_nimble['nimble1_perfpol']
|
||||
$nimble1_multi_init = $cinder_nimble['nimble1_multi_init']
|
||||
$nimble2_encryption = $cinder_nimble['nimble2_encryption']
|
||||
$nimble2_perfpol = $cinder_nimble['nimble2_perfpol']
|
||||
$nimble2_multi_init = $cinder_nimble['nimble2_multi_init']
|
||||
|
||||
file { $hiera_dir:
|
||||
ensure => directory,
|
||||
}
|
||||
|
||||
$range_array = range("1", $no_backends)
|
||||
|
||||
# Create content based on grouping flag.
|
||||
# This is separated to keep the inline content and conditions tidy.
|
||||
if ($cinder_nimble['nimble_grouping']) == true {
|
||||
$content = inline_template('
|
||||
storage:
|
||||
volume_backend_names:
|
||||
<%= nimble_group_backend_type %>: <%= nimble_group_backend_name %>
|
||||
<%= @cinder_nimble["nimble_group_backend_type"] %>: <%= @cinder_nimble["nimble_group_backend_name"] %>
|
||||
nimble_encryption:
|
||||
<%= nimble_group_backend_type %>: <%= nimble_group_encryption -%>
|
||||
<% if nimble_group_perfpol != "" %>
|
||||
<%= @cinder_nimble["nimble_group_backend_type"] %>: <%= @cinder_nimble["nimble_group_encryption"] -%>
|
||||
<% if @cinder_nimble["nimble_group_perfpol"] != "" %>
|
||||
nimble_perfpol:
|
||||
<%= nimble_group_backend_type %>: <%= nimble_group_perfpol -%>
|
||||
<%= @cinder_nimble["nimble_group_backend_type"] %>: <%= @cinder_nimble["nimble_group_perfpol"] -%>
|
||||
<% end %>
|
||||
nimble_multi_init:
|
||||
<%= nimble_group_backend_type %>: <%= nimble_group_multi_init %>
|
||||
<%= @cinder_nimble["nimble_group_backend_type"] %>: <%= @cinder_nimble["nimble_group_multi_init"] %>
|
||||
')
|
||||
}
|
||||
else {
|
||||
$content = inline_template('
|
||||
storage:
|
||||
volume_backend_names:
|
||||
<%= nimble1_backend_type %>: <%= nimble1_backend_name -%>
|
||||
<% if no_backends != "1" %>
|
||||
<%= nimble2_backend_type %>: <%= nimble2_backend_name -%>
|
||||
<% @range_array.each do |i| -%>
|
||||
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_backend_name"] %>
|
||||
<% end %>
|
||||
nimble_encryption:
|
||||
<%= nimble1_backend_type %>: <%= nimble1_encryption -%>
|
||||
<% if no_backends != "1" %>
|
||||
<%= nimble2_backend_type %>: <%= nimble2_encryption -%>
|
||||
<% end -%>
|
||||
<% if nimble1_perfpol != "" or nimble2_perfpol != "" %>
|
||||
nimble_perfpol:
|
||||
<% if nimble1_perfpol != "" -%>
|
||||
<%= nimble1_backend_type %>: <%= nimble1_perfpol -%>
|
||||
<% @range_array.each do |i| -%>
|
||||
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_encryption"] %>
|
||||
<% end %>
|
||||
<% if no_backends != "1" and nimble2_perfpol != "" -%>
|
||||
<%= nimble2_backend_type %>: <%= nimble2_perfpol -%>
|
||||
nimble_perfpol:
|
||||
__dummy__: __dummy__
|
||||
<% @range_array.each do |i| -%>
|
||||
<% if @cinder_nimble["nimble#{i}_perfpol"] != "" -%>
|
||||
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_perfpol"] -%>
|
||||
<% end %>
|
||||
<% end %>
|
||||
nimble_multi_init:
|
||||
<%= nimble1_backend_type %>: <%= nimble1_multi_init -%>
|
||||
<% if no_backends != "1" %>
|
||||
<%= nimble2_backend_type %>: <%= nimble2_multi_init -%>
|
||||
<% @range_array.each do |i| -%>
|
||||
<%= @cinder_nimble["nimble#{i}_backend_type"] %>: <%= @cinder_nimble["nimble#{i}_multi_init"] %>
|
||||
<% end %>
|
||||
')
|
||||
}
|
||||
|
|
|
@ -5,35 +5,20 @@ class plugin_cinder_nimble::backend::disable_default_type (
|
|||
include plugin_cinder_nimble::params
|
||||
include cinder::params
|
||||
|
||||
$cinder_nimble = hiera_hash('cinder_nimble', {})
|
||||
|
||||
if ($cinder_nimble['nimble_grouping']) == true {
|
||||
$nimble_default_type_set = $cinder_nimble['nimble_group_default_backend']
|
||||
}
|
||||
else {
|
||||
$nimble_default_type_set = $cinder_nimble['nimble1_default_backend'] or
|
||||
$cinder_nimble['nimble2_default_backend'] or
|
||||
$cinder_nimble['nimble3_default_backend'] or
|
||||
$cinder_nimble['nimble4_default_backend'] or
|
||||
$cinder_nimble['nimble5_default_backend']
|
||||
ini_setting {"disable_default_type_${nimble_backend_type}":
|
||||
ensure => absent,
|
||||
section => 'DEFAULT',
|
||||
path => $config_file,
|
||||
setting => 'default_volume_type',
|
||||
}
|
||||
|
||||
if ($nimble_default_type_set) == true {
|
||||
ini_setting {"disable_default_type_${nimble_backend_type}":
|
||||
ensure => absent,
|
||||
section => 'DEFAULT',
|
||||
path => $config_file,
|
||||
setting => 'default_volume_type',
|
||||
}
|
||||
Cinder_config<||> ~> Service['cinder-api']
|
||||
|
||||
Cinder_config<||> ~> Service['cinder-api']
|
||||
|
||||
service { 'cinder-api':
|
||||
ensure => stopped,
|
||||
name => $::cinder::params::api_service,
|
||||
enable => true,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
}
|
||||
service { 'cinder-api':
|
||||
ensure => stopped,
|
||||
name => $::cinder::params::api_service,
|
||||
enable => true,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,91 +2,41 @@ class plugin_cinder_nimble::backend::nimble (
|
|||
$cinder_nimble = $plugin_cinder_nimble::params::cinder_nimble
|
||||
) {
|
||||
|
||||
include plugin_cinder_nimble::params
|
||||
include cinder::params
|
||||
|
||||
# Get the group backend name as configured by the user
|
||||
$nimble_group_backend_name = $cinder_nimble['nimble_group_backend_name']
|
||||
define plugin_cinder_nimble::add_backend (
|
||||
$array, # pass the original $name
|
||||
) {
|
||||
#notice(inline_template('NAME: <%= name.inspect %>'))
|
||||
|
||||
# Sets correct driver depending on backend protocol
|
||||
if ($cinder_nimble['nimble1_backend_protocol']) == 'iSCSI' {
|
||||
if ! defined(Package['open-iscsi']) {
|
||||
# We need following packages to create a root volume during an instance spawning
|
||||
package { 'open-iscsi': }
|
||||
# build a unique name...
|
||||
$length = inline_template('<%= array.length %>')
|
||||
$ulength = inline_template('<%= array.uniq.length %>')
|
||||
if ( "${length}" != '0' ) and ( "${length}" != "${ulength}" ) {
|
||||
fail('Array must not have duplicates.')
|
||||
}
|
||||
# if array had duplicates, this wouldn't be a unique index
|
||||
$index = inline_template('<%= array.index(name) %>')
|
||||
|
||||
plugin_cinder_nimble::backend::set_nimble_backend { "$index" :
|
||||
backend_id => $name,
|
||||
index => "$index",
|
||||
}
|
||||
$nimble1_cinder_driver = 'cinder.volume.drivers.nimble.NimbleISCSIDriver'
|
||||
}
|
||||
elsif ($cinder_nimble['nimble1_backend_protocol']) == 'FC' {
|
||||
$nimble1_cinder_driver = 'cinder.volume.drivers.nimble.NimbleFCDriver'
|
||||
}
|
||||
|
||||
# To be ensure that $ symbol is correctly escaped in cinder password
|
||||
$nimble1_password = regsubst($cinder_nimble['nimble1_password'],'\$','$$','G')
|
||||
|
||||
# Check whether grouping is enabled and adjust volume_backend_name accordingly
|
||||
if ($cinder_nimble['nimble_grouping']) == true {
|
||||
$nimble1_backend_name = "${nimble_group_backend_name}_1"
|
||||
$nimble1_volume_backend_name = "${nimble_group_backend_name}"
|
||||
# Should work from Puppet >= 4.0.0 onwards which has Future parser
|
||||
/*
|
||||
range("1", "$cinder_nimble['no_backends']").each |$id| {
|
||||
# Set backend details
|
||||
class { 'plugin_cinder_nimble::backend::set_nimble_backend' :
|
||||
$backend_id => $id,
|
||||
}
|
||||
}
|
||||
else {
|
||||
$nimble1_backend_name = "${cinder_nimble['nimble1_backend_name']}"
|
||||
$nimble1_volume_backend_name = "${cinder_nimble['nimble1_backend_name']}"
|
||||
*/
|
||||
|
||||
$range_array = range("1", $cinder_nimble['no_backends'])
|
||||
plugin_cinder_nimble::add_backend { $range_array:
|
||||
array => $range_array,
|
||||
}
|
||||
|
||||
Cinder_config <||> -> Plugin_cinder_nimble::Backend::Enable_backend[$nimble1_backend_name] ~> Service <||>
|
||||
Cinder_config <||> ~> Service <||>
|
||||
|
||||
cinder_config {
|
||||
"$nimble1_backend_name/volume_backend_name": value => $nimble1_volume_backend_name;
|
||||
"$nimble1_backend_name/volume_driver": value => $nimble1_cinder_driver;
|
||||
"$nimble1_backend_name/san_ip": value => $cinder_nimble['nimble1_san_ip'];
|
||||
"$nimble1_backend_name/san_login": value => $cinder_nimble['nimble1_login'];
|
||||
"$nimble1_backend_name/san_password": value => $nimble1_password;
|
||||
}
|
||||
|
||||
# Adds the backend in <enabled_backends> parameter
|
||||
plugin_cinder_nimble::backend::enable_backend { $nimble1_backend_name: }
|
||||
|
||||
if ($cinder_nimble['no_backends']) >= '2' {
|
||||
# Sets correct driver depending on backend protocol
|
||||
if ($cinder_nimble['nimble2_backend_protocol']) == 'iSCSI' {
|
||||
if ! defined(Package['open-iscsi']) {
|
||||
# We need following packages to create a root volume during an instance spawning
|
||||
package { 'open-iscsi': }
|
||||
}
|
||||
$nimble2_cinder_driver = 'cinder.volume.drivers.nimble.NimbleISCSIDriver'
|
||||
}
|
||||
elsif ($cinder_nimble['nimble2_backend_protocol']) == 'FC' {
|
||||
$nimble2_cinder_driver = 'cinder.volume.drivers.nimble.NimbleFCDriver'
|
||||
}
|
||||
|
||||
# To be ensure that $ symbol is correctly escaped in cinder password
|
||||
$nimble2_password = regsubst($cinder_nimble['nimble2_password'],'\$','$$','G')
|
||||
|
||||
# Check whether grouping is enabled and adjust volume_backend_name accordingly
|
||||
if ($cinder_nimble['nimble_grouping']) == true {
|
||||
$nimble2_backend_name = "${nimble_group_backend_name}_2"
|
||||
$nimble2_volume_backend_name = "${nimble_group_backend_name}"
|
||||
}
|
||||
else {
|
||||
$nimble2_backend_name = "${cinder_nimble['nimble2_backend_name']}"
|
||||
$nimble2_volume_backend_name = "${cinder_nimble['nimble2_backend_name']}"
|
||||
}
|
||||
|
||||
Cinder_config <||> -> Plugin_cinder_nimble::Backend::Enable_backend[$nimble2_backend_name] ~> Service <||>
|
||||
Cinder_config <||> ~> Service <||>
|
||||
|
||||
cinder_config {
|
||||
"$nimble2_backend_name/volume_backend_name": value => $nimble2_volume_backend_name;
|
||||
"$nimble2_backend_name/volume_driver": value => $nimble2_cinder_driver;
|
||||
"$nimble2_backend_name/san_ip": value => $cinder_nimble['nimble2_san_ip'];
|
||||
"$nimble2_backend_name/san_login": value => $cinder_nimble['nimble2_login'];
|
||||
"$nimble2_backend_name/san_password": value => $nimble2_password;
|
||||
}
|
||||
|
||||
# Adds the backend in <enabled_backends> parameter
|
||||
plugin_cinder_nimble::backend::enable_backend { $nimble2_backend_name: }
|
||||
}
|
||||
|
||||
service { $cinder::params::volume_service: }
|
||||
}
|
||||
|
|
|
@ -1,30 +1,27 @@
|
|||
class plugin_cinder_nimble::backend::set_default_type (
|
||||
$config_file,
|
||||
$nimble_default_type_set,
|
||||
$nimble_backend_type
|
||||
) {
|
||||
|
||||
include plugin_cinder_nimble::params
|
||||
include cinder::params
|
||||
|
||||
if ($nimble_default_type_set) == true {
|
||||
ini_subsetting {"set_default_type_${nimble_backend_type}":
|
||||
ensure => present,
|
||||
section => 'DEFAULT',
|
||||
key_val_separator => '=',
|
||||
path => $config_file,
|
||||
setting => 'default_volume_type',
|
||||
subsetting => $nimble_backend_type,
|
||||
}
|
||||
ini_subsetting {"set_default_type_${nimble_backend_type}":
|
||||
ensure => present,
|
||||
section => 'DEFAULT',
|
||||
key_val_separator => '=',
|
||||
path => $config_file,
|
||||
setting => 'default_volume_type',
|
||||
subsetting => $nimble_backend_type,
|
||||
}
|
||||
|
||||
Cinder_config<||> ~> Service['cinder-api']
|
||||
Cinder_config<||> ~> Service['cinder-api']
|
||||
|
||||
service { 'cinder-api':
|
||||
ensure => running,
|
||||
name => $::cinder::params::api_service,
|
||||
enable => true,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
}
|
||||
service { 'cinder-api':
|
||||
ensure => running,
|
||||
name => $::cinder::params::api_service,
|
||||
enable => true,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,10 +3,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_backend_names = keys($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 => $nimble_perfpol,
|
||||
volume_backend_names => $available_backends,
|
||||
key => 'nimble:perfpol-name'
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue