cinder: Remove credential parameters if password is not set
The admin credential in [cinder] section is only required in compute nodes while some parameters in the same section like catalog_info is used by both controller nodes and compute nodes. This change makes all credential parameters unset unless the password is given. If the parameters are intentionally set the provided values are honored. Change-Id: I08d787817257d8b2e4a5c1ebf9c6763f6276a7e9
This commit is contained in:
@@ -5,19 +5,19 @@
|
||||
# === Parameters:
|
||||
#
|
||||
# [*password*]
|
||||
# (required) Password for connecting to Cinder services in
|
||||
# (optional) Password for connecting to Cinder services in
|
||||
# admin context through the OpenStack Identity service.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*auth_type*]
|
||||
# (optional) Name of the auth type to load (string value)
|
||||
# Defaults to 'password'
|
||||
# Defaults to 'password' if password is set
|
||||
#
|
||||
# [*auth_url*]
|
||||
# (optional) Points to the OpenStack Identity server IP and port.
|
||||
# This is the Identity (keystone) admin API server IP and port value,
|
||||
# and not the Identity service API IP and port.
|
||||
# Defaults to $::os_service_default
|
||||
# Defaults to 'http://127.0.0.1:5000' if password is set
|
||||
#
|
||||
# [*timeout*]
|
||||
# (optional) Timeout value for connecting to cinder in seconds.
|
||||
@@ -31,22 +31,22 @@
|
||||
# [*project_name*]
|
||||
# (optional) Project name for connecting to Cinder services in
|
||||
# admin context through the OpenStack Identity service.
|
||||
# Defaults to 'services'
|
||||
# Defaults to 'services' if password is set
|
||||
#
|
||||
# [*project_domain_name*]
|
||||
# (optional) Project Domain name for connecting to Cinder services in
|
||||
# admin context through the OpenStack Identity service.
|
||||
# Defaults to 'Default'
|
||||
# Defaults to 'Default' if password is set
|
||||
#
|
||||
# [*username*]
|
||||
# (optional) Username for connecting to Cinder services in admin context
|
||||
# through the OpenStack Identity service.
|
||||
# Defaults to 'cinder'
|
||||
# Defaults to 'cinder' if password is set
|
||||
#
|
||||
# [*user_domain_name*]
|
||||
# (optional) User Domain name for connecting to Cinder services in
|
||||
# admin context through the OpenStack Identity service.
|
||||
# Defaults to 'Default'
|
||||
# Defaults to 'Default' if password is set
|
||||
#
|
||||
# [*os_region_name*]
|
||||
# (optional) Sets the os_region_name flag. For environments with
|
||||
@@ -69,14 +69,14 @@
|
||||
#
|
||||
class nova::cinder (
|
||||
$password = $::os_service_default,
|
||||
$auth_type = 'password',
|
||||
$auth_url = $::os_service_default,
|
||||
$auth_type = undef,
|
||||
$auth_url = undef,
|
||||
$timeout = $::os_service_default,
|
||||
$region_name = $::os_service_default,
|
||||
$project_name = 'services',
|
||||
$project_domain_name = 'Default',
|
||||
$username = 'cinder',
|
||||
$user_domain_name = 'Default',
|
||||
$project_name = undef,
|
||||
$project_domain_name = undef,
|
||||
$username = undef,
|
||||
$user_domain_name = undef,
|
||||
$os_region_name = $::os_service_default,
|
||||
$catalog_info = $::os_service_default,
|
||||
$http_retries = $::os_service_default,
|
||||
@@ -87,16 +87,32 @@ class nova::cinder (
|
||||
$os_region_name_real = pick($::nova::os_region_name, $os_region_name)
|
||||
$catalog_info_real = pick($::nova::cinder_catalog_info, $catalog_info)
|
||||
|
||||
if is_service_default($password) {
|
||||
$auth_type_real = pick($auth_type, $::os_service_default)
|
||||
$auth_url_real = pick($auth_url, $::os_service_default)
|
||||
$project_name_real = pick($project_name, $::os_service_default)
|
||||
$project_domain_name_real = pick($project_domain_name, $::os_service_default)
|
||||
$username_real = pick($username, $::os_service_default)
|
||||
$user_domain_name_real = pick($user_domain_name, $::os_service_default)
|
||||
} else {
|
||||
$auth_type_real = pick($auth_type, 'password')
|
||||
$auth_url_real = pick($auth_url, 'http://127.0.0.1:5000/')
|
||||
$project_name_real = pick($project_name, 'services')
|
||||
$project_domain_name_real = pick($project_domain_name, 'Default')
|
||||
$username_real = pick($username, 'cinder')
|
||||
$user_domain_name_real = pick($user_domain_name, 'Default')
|
||||
}
|
||||
|
||||
nova_config {
|
||||
'cinder/password': value => $password, secret => true;
|
||||
'cinder/auth_type': value => $auth_type;
|
||||
'cinder/auth_url': value => $auth_url;
|
||||
'cinder/auth_type': value => $auth_type_real;
|
||||
'cinder/auth_url': value => $auth_url_real;
|
||||
'cinder/region_name': value => $region_name;
|
||||
'cinder/timeout': value => $timeout;
|
||||
'cinder/project_name': value => $project_name;
|
||||
'cinder/project_domain_name': value => $project_domain_name;
|
||||
'cinder/username': value => $username;
|
||||
'cinder/user_domain_name': value => $user_domain_name;
|
||||
'cinder/project_name': value => $project_name_real;
|
||||
'cinder/project_domain_name': value => $project_domain_name_real;
|
||||
'cinder/username': value => $username_real;
|
||||
'cinder/user_domain_name': value => $user_domain_name_real;
|
||||
'cinder/os_region_name': value => $os_region_name_real;
|
||||
'cinder/catalog_info': value => $catalog_info_real;
|
||||
'cinder/http_retries': value => $http_retries;
|
||||
|
@@ -3,14 +3,36 @@ require 'spec_helper'
|
||||
describe 'nova::cinder' do
|
||||
|
||||
shared_examples 'nova::cinder' do
|
||||
context 'with required parameters' do
|
||||
|
||||
context 'with defaults' do
|
||||
it 'configures cinder in nova.conf' do
|
||||
should contain_nova_config('cinder/password').with_value('<SERVICE DEFAULT>').with_secret(true)
|
||||
should contain_nova_config('cinder/auth_type').with_value('password')
|
||||
should contain_nova_config('cinder/auth_type').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/auth_url').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/timeout').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/region_name').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/project_name').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/project_domain_name').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/username').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/user_domain_name').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/os_region_name').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/catalog_info').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/http_retries').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with password' do
|
||||
let :params do
|
||||
{
|
||||
:password => 's3cr3t',
|
||||
}
|
||||
end
|
||||
|
||||
it 'configures cinder in nova.conf' do
|
||||
should contain_nova_config('cinder/password').with_value('s3cr3t').with_secret(true)
|
||||
should contain_nova_config('cinder/auth_type').with_value('password')
|
||||
should contain_nova_config('cinder/auth_url').with_value('http://127.0.0.1:5000/')
|
||||
should contain_nova_config('cinder/timeout').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/region_name').with_value('<SERVICE DEFAULT>')
|
||||
should contain_nova_config('cinder/project_name').with_value('services')
|
||||
should contain_nova_config('cinder/project_domain_name').with_value('Default')
|
||||
should contain_nova_config('cinder/username').with_value('cinder')
|
||||
@@ -21,18 +43,17 @@ describe 'nova::cinder' do
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'when specified parameters' do
|
||||
let :params do
|
||||
{
|
||||
:password => 's3cr3t',
|
||||
:auth_type => 'v3password',
|
||||
:auth_url => 'http://10.0.0.10:5000/v3',
|
||||
:timeout => 60,
|
||||
:region_name => 'RegionOne',
|
||||
:os_region_name => 'RegionOne',
|
||||
:catalog_info => 'volumev3:cinderv3:publicURL',
|
||||
:http_retries => 3,
|
||||
:password => 's3cr3t',
|
||||
:auth_type => 'v3password',
|
||||
:auth_url => 'http://10.0.0.10:5000/v3',
|
||||
:timeout => 60,
|
||||
:region_name => 'RegionOne',
|
||||
:os_region_name => 'RegionOne',
|
||||
:catalog_info => 'volumev3:cinderv3:publicURL',
|
||||
:http_retries => 3,
|
||||
}
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user