Merge "Add glance options"

This commit is contained in:
Zuul 2020-08-26 00:21:47 +00:00 committed by Gerrit Code Review
commit b6e64cb355
3 changed files with 176 additions and 0 deletions

100
manifests/image/glance.pp Normal file
View File

@ -0,0 +1,100 @@
# == Class: manila::image::glance
#
# Setup and configure Glance communication
#
# === Parameters
#
# [*api_microversion*]
# (optional) Version of Glance API to be used
# Defaults to $::os_service_default
#
# [*insecure*]
# (optional) Verify HTTPS connections
# Defaults to $::os_service_default
#
# [*auth_url*]
# (optional) Authentication URL
# Defaults to $::os_service_default
#
# [*auth_type*]
# (optional) Authentication type to load
# Defaults to $::os_service_default
#
# [*cafile*]
# (optional) Path to PEM encoded Certificate Authority to use when verifying
# HTTPS connections.
# Defaults to $::os_service_default
#
# [*certfile*]
# (optional) Path to PEM encoded client certificate cert file.
# Defaults to $::os_service_default
#
# [*keyfile*]
# (optional) Path to PEM encoded client certificate key file.
# Defaults to $::os_service_default
#
# [*user_domain_name*]
# (optional) User's domain name
# Defaults to 'Default'
#
# [*project_domain_name*]
# (optional) Domain name containing project
# Defaults to 'Default'
#
# [*project_name*]
# (optional) Project name to scope to
# Defaults to 'services'
#
# [*region_name*]
# (optional) Region name for connecting to cinder
# Defaults to $::os_service_default
#
# [*endpoint_type*]
# (optional) The type of cinder endpoint to use when
# looking up in the keystone catalog.
# Defaults to $::os_service_default
#
# [*username*]
# (optional) Username
# Defaults to 'cinder'
#
# [*password*]
# (optional) User's password
# Defaults to $::os_service_default,
#
class manila::image::glance (
$api_microversion = $::os_service_default,
$insecure = $::os_service_default,
$auth_url = $::os_service_default,
$auth_type = $::os_service_default,
$cafile = $::os_service_default,
$certfile = $::os_service_default,
$keyfile = $::os_service_default,
$user_domain_name = 'Default',
$project_domain_name = 'Default',
$project_name = 'services',
$region_name = $::os_service_default,
$endpoint_type = $::os_service_default,
$username = 'glance',
$password = $::os_service_default,
) {
include manila::deps
manila_config {
'glance/api_microversion': value => $api_microversion;
'glance/insecure': value => $insecure;
'glance/auth_url': value => $auth_url;
'glance/auth_type': value => $auth_type;
'glance/cafile': value => $cafile;
'glance/certfile': value => $certfile;
'glance/keyfile': value => $keyfile;
'glance/user_domain_name': value => $user_domain_name;
'glance/project_domain_name': value => $project_domain_name;
'glance/project_name': value => $project_name;
'glance/region_name': value => $region_name;
'glance/endpoint_type': value => $endpoint_type;
'glance/username': value => $username;
'glance/password': value => $password, secret => true;
}
}

View File

@ -0,0 +1,7 @@
---
features:
- |
A new class has been introduced ("manila::image::glance") to allow
configuration parameters necessary for the usage of glanceclient
within Manila's service instance module. See `Launchpad bug 1741425
<https://launchpad.net/bugs/1741425>`_ for more details.

View File

@ -0,0 +1,69 @@
require 'spec_helper'
describe 'manila::image::glance' do
shared_examples 'manila::glance' do
context 'with default parameters' do
it 'configures manila image glance' do
is_expected.to contain_manila_config('glance/api_microversion').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/insecure').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/auth_url').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/auth_type').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/cafile').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/certfile').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/keyfile').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/user_domain_name').with_value('Default')
is_expected.to contain_manila_config('glance/project_domain_name').with_value('Default')
is_expected.to contain_manila_config('glance/project_name').with_value('services')
is_expected.to contain_manila_config('glance/region_name').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/endpoint_type').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/username').with_value('glance')
is_expected.to contain_manila_config('glance/password').with_value('<SERVICE DEFAULT>').with_secret(true)
end
end
context 'with overridden parameters' do
let :params do
{
:api_microversion => '2',
:insecure => true,
:auth_url => 'http://127.0.0.2:5000/',
:auth_type => 'password',
:cafile => '/etc/ssl/certs/ca.crt',
:region_name => 'RegionOne',
:endpoint_type => 'publicURL',
:username => 'glancev1',
:password => '123123',
}
end
it 'configures manila glance with overridden parameters' do
is_expected.to contain_manila_config('glance/api_microversion').with_value('2')
is_expected.to contain_manila_config('glance/insecure').with_value(true)
is_expected.to contain_manila_config('glance/auth_url').with_value('http://127.0.0.2:5000/')
is_expected.to contain_manila_config('glance/auth_type').with_value('password')
is_expected.to contain_manila_config('glance/cafile').with_value('/etc/ssl/certs/ca.crt')
is_expected.to contain_manila_config('glance/certfile').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/keyfile').with_value('<SERVICE DEFAULT>')
is_expected.to contain_manila_config('glance/user_domain_name').with_value('Default')
is_expected.to contain_manila_config('glance/project_domain_name').with_value('Default')
is_expected.to contain_manila_config('glance/project_name').with_value('services')
is_expected.to contain_manila_config('glance/region_name').with_value('RegionOne')
is_expected.to contain_manila_config('glance/endpoint_type').with_value('publicURL')
is_expected.to contain_manila_config('glance/username').with_value('glancev1')
is_expected.to contain_manila_config('glance/password').with_value('123123').with_secret(true)
end
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end
it_behaves_like 'manila::glance'
end
end
end