Introduce public_url, internal_url and admin_url
This change deprecates the following parameters: - public_protocol (replaced by public_url) - public_address (replaced by public_url) - public_port (replaced by public_url) - internal_address (replaced by internal_url) - internal_port (replaced by internal_url) - admin_address (replaced by admin_url) - admin_port (replaced by admin_url) Add deprecation warnings if any of those values are provided while maintaining full backward compatibility. Closes-bug: #1274979 Change-Id: If5b0ae003726c5a99b3a2e22b2aafe1a178bb170
This commit is contained in:
@@ -1,72 +1,158 @@
|
||||
# == Class: keystone::endpoint
|
||||
#
|
||||
# Creates the auth endpoints for keystone
|
||||
#
|
||||
# == Parameters
|
||||
# === Parameters
|
||||
#
|
||||
# * public_address - public address for keystone endpoint. Optional. Defaults to 127.0.0.1.
|
||||
# * admin_address - admin address for keystone endpoint. Optional. Defaults to 127.0.0.1.
|
||||
# * internal_address - internal address for keystone endpoint. Optional. Defaults to 127.0.0.1.
|
||||
# * public_port - Port for non-admin access to keystone endpoint. Optional. Defaults to 5000.
|
||||
# * admin_port - Port for admin access to keystone endpoint. Optional. Defaults to 35357.
|
||||
# * internal_port - Port for internal access to keystone endpoint. Optional. Defaults to 35357.
|
||||
# * region - Region for endpoint. Optional. Defaults to RegionOne.
|
||||
# * version - API version for endpoint. Optional. Defaults to v2.0.
|
||||
# * public_url - public url for keystone endpoint. Optional. Defaults to undef. Overrides & will deprecate other public_ parameters.
|
||||
# * internal_url - internal url for keystone endpoint. Optional. Defaults to $public_url if undef. Overrides & will deprecate other internal_ parameters.
|
||||
# * admin_url - admin url for keystone endpoint. Optional. Defaults to undef. Overrides & will deprecate other admin_ parameters.
|
||||
# [*public_url*]
|
||||
# (optional) Public url for keystone endpoint. (Defaults to 'http://127.0.0.1:5000')
|
||||
#
|
||||
# == Sample Usage
|
||||
# [*internal_url*]
|
||||
# (optional) Internal url for keystone endpoint. (Defaults to $public_url)
|
||||
#
|
||||
# class { 'keystone::endpoint':
|
||||
# :public_address => '154.10.10.23',
|
||||
# :admin_address => '10.0.0.7',
|
||||
# :internal_address => '11.0.1.7',
|
||||
# }
|
||||
# [*admin_url*]
|
||||
# (optional) Admin url for keystone endpoint. (Defaults to 'http://127.0.0.1:35357')
|
||||
#
|
||||
# [*region*]
|
||||
# (optional) Region for endpoint. (Defaults to 'RegionOne')
|
||||
#
|
||||
class keystone::endpoint(
|
||||
$public_address = '127.0.0.1',
|
||||
$admin_address = '127.0.0.1',
|
||||
$internal_address = '127.0.0.1',
|
||||
$public_port = '5000',
|
||||
$admin_port = '35357',
|
||||
$internal_port = undef,
|
||||
$region = 'RegionOne',
|
||||
$version = 'v2.0',
|
||||
$public_protocol = 'http',
|
||||
$public_url = undef,
|
||||
# [*version*]
|
||||
# (optional) API version for endpoint. Appended to all endpoint urls. (Defaults to 'v2.0')
|
||||
#
|
||||
# [*public_url*]
|
||||
# (optional) The endpoint's public url. (Defaults to 'http://127.0.0.1:5000')
|
||||
# This url should *not* contain any version or trailing '/'.
|
||||
#
|
||||
# [*admin_url*]
|
||||
# (optional) The endpoint's admin url. (Defaults to 'http://127.0.0.1:5000')
|
||||
# This url should *not* contain any version or trailing '/'.
|
||||
#
|
||||
# [*internal_url*]
|
||||
# (optional) The endpoint's internal url. (Defaults to 'http://127.0.0.1:35357')
|
||||
# This url should *not* contain any version or trailing '/'.
|
||||
#
|
||||
# [*public_protocol*]
|
||||
# (optional) DEPRECATED: Use public_url instead.
|
||||
# Protocol for public access to keystone endpoint. (Defaults to 'http')
|
||||
# Setting this parameter overrides public_url parameter.
|
||||
#
|
||||
# [*public_address*]
|
||||
# (optional) DEPRECATED: Use public_url instead.
|
||||
# Public address for keystone endpoint. (Defaults to '127.0.0.1')
|
||||
# Setting this parameter overrides public_url parameter.
|
||||
#
|
||||
# [*public_port*]
|
||||
# (optional) DEPRECATED: Use public_url instead.
|
||||
# Port for non-admin access to keystone endpoint. (Defaults to 5000)
|
||||
# Setting this parameter overrides public_url parameter.
|
||||
#
|
||||
# [*internal_address*]
|
||||
# (optional) DEPRECATED: Use internal_url instead.
|
||||
# Internal address for keystone endpoint. (Defaults to '127.0.0.1')
|
||||
# Setting this parameter overrides internal_url parameter.
|
||||
#
|
||||
# [*internal_port*]
|
||||
# (optional) DEPRECATED: Use internal_url instead.
|
||||
# Port for internal access to keystone endpoint. (Defaults to $public_port)
|
||||
# Setting this parameter overrides internal_url parameter.
|
||||
#
|
||||
# [*admin_address*]
|
||||
# (optional) DEPRECATED: Use admin_url instead.
|
||||
# Admin address for keystone endpoint. (Defaults to '127.0.0.1')
|
||||
# Setting this parameter overrides admin_url parameter.
|
||||
#
|
||||
# [*admin_port*]
|
||||
# (optional) DEPRECATED: Use admin_url instead.
|
||||
# Port for admin access to keystone endpoint. (Defaults to 35357)
|
||||
# Setting this parameter overrides admin_url parameter.
|
||||
#
|
||||
# === Deprecation notes
|
||||
#
|
||||
# If any value is provided for public_protocol, public_address or public_port parameters,
|
||||
# public_url will be completely ignored. The same applies for internal and admin parameters.
|
||||
#
|
||||
# === Examples
|
||||
#
|
||||
# class { 'keystone::endpoint':
|
||||
# public_url => 'https://154.10.10.23:5000',
|
||||
# internal_url => 'https://11.0.1.7:5000',
|
||||
# admin_url => 'https://10.0.1.7:35357',
|
||||
# }
|
||||
#
|
||||
class keystone::endpoint (
|
||||
$public_url = 'http://127.0.0.1:5000',
|
||||
$internal_url = undef,
|
||||
$admin_url = undef,
|
||||
$admin_url = 'http://127.0.0.1:35357',
|
||||
$version = 'v2.0',
|
||||
$region = 'RegionOne',
|
||||
# DEPRECATED PARAMETERS
|
||||
$public_protocol = undef,
|
||||
$public_address = undef,
|
||||
$public_port = undef,
|
||||
$internal_address = undef,
|
||||
$internal_port = undef,
|
||||
$admin_address = undef,
|
||||
$admin_port = undef,
|
||||
) {
|
||||
|
||||
if $internal_port == undef {
|
||||
$internal_port_real = $public_port
|
||||
} else {
|
||||
$internal_port_real = $internal_port
|
||||
if $public_port {
|
||||
warning('The public_port parameter is deprecated, use public_url instead.')
|
||||
}
|
||||
|
||||
if $public_url {
|
||||
$public_url_real = "${public_url}/${version}"
|
||||
} else {
|
||||
$public_url_real = "${public_protocol}://${public_address}:${public_port}/${version}"
|
||||
if $public_protocol {
|
||||
warning('The public_protocol parameter is deprecated, use public_url instead.')
|
||||
}
|
||||
|
||||
if $internal_url {
|
||||
$internal_url_real = "${internal_url}/${version}"
|
||||
} else {
|
||||
if $public_url {
|
||||
$internal_url_real = $public_url_real
|
||||
} else {
|
||||
$internal_url_real = "http://${internal_address}:${internal_port_real}/${version}"
|
||||
}
|
||||
if $public_address {
|
||||
warning('The public_address parameter is deprecated, use public_url instead.')
|
||||
}
|
||||
|
||||
if $admin_url {
|
||||
$admin_url_real = "${admin_url}/${version}"
|
||||
} else {
|
||||
$admin_url_real = "http://${admin_address}:${admin_port}/${version}"
|
||||
if $internal_address {
|
||||
warning('The internal_address parameter is deprecated, use internal_url instead.')
|
||||
}
|
||||
|
||||
if $internal_port {
|
||||
warning('The internal_port parameter is deprecated, use internal_url instead.')
|
||||
}
|
||||
|
||||
if $admin_address {
|
||||
warning('The admin_address parameter is deprecated, use admin_url instead.')
|
||||
}
|
||||
|
||||
if $admin_port {
|
||||
warning('The admin_port parameter is deprecated, use admin_url instead.')
|
||||
}
|
||||
|
||||
$public_url_real = inline_template('<%=
|
||||
if (!@public_protocol.nil?) || (!@public_address.nil?) || (!@public_port.nil?)
|
||||
@public_protocol ||= "http"
|
||||
@public_address ||= "127.0.0.1"
|
||||
@public_port ||= "5000"
|
||||
"#{@public_protocol}://#{@public_address}:#{@public_port}/#{@version}"
|
||||
else
|
||||
"#{@public_url}/#{@version}"
|
||||
end %>')
|
||||
|
||||
$internal_url_real = inline_template('<%=
|
||||
if (!@internal_address.nil?) || (!@internal_port.nil?) || (!@public_port.nil?)
|
||||
@internal_address ||= @public_address ||= "127.0.0.1"
|
||||
@internal_port ||= @public_port ||= "5000"
|
||||
"http://#{@internal_address}:#{@internal_port}/#{@version}"
|
||||
elsif (!@internal_url.nil?)
|
||||
"#{@internal_url}/#{@version}"
|
||||
else
|
||||
"#{@public_url}/#{@version}"
|
||||
end %>')
|
||||
|
||||
$admin_url_real = inline_template('<%=
|
||||
if (!@admin_address.nil?) || (!@admin_port.nil?)
|
||||
@admin_address ||= "127.0.0.1"
|
||||
@admin_port ||= "35357"
|
||||
"http://#{@admin_address}:#{@admin_port}/#{@version}"
|
||||
else
|
||||
"#{@admin_url}/#{@version}"
|
||||
end %>')
|
||||
|
||||
keystone_service { 'keystone':
|
||||
ensure => present,
|
||||
type => 'identity',
|
||||
|
||||
@@ -10,7 +10,7 @@ describe 'keystone::endpoint' do
|
||||
|
||||
describe 'with default parameters' do
|
||||
it { should contain_keystone_endpoint('RegionOne/keystone').with(
|
||||
:ensure => 'present',
|
||||
:ensure => 'present',
|
||||
:public_url => 'http://127.0.0.1:5000/v2.0',
|
||||
:admin_url => 'http://127.0.0.1:35357/v2.0',
|
||||
:internal_url => 'http://127.0.0.1:5000/v2.0'
|
||||
@@ -20,70 +20,10 @@ describe 'keystone::endpoint' do
|
||||
describe 'with overridden parameters' do
|
||||
|
||||
let :params do
|
||||
{
|
||||
:public_address => '10.0.0.1',
|
||||
:admin_address => '10.0.0.2',
|
||||
:internal_address => '10.0.0.3',
|
||||
:public_port => '23456',
|
||||
:admin_port => '12345',
|
||||
:region => 'RegionTwo',
|
||||
:version => 'v3.0',
|
||||
}
|
||||
end
|
||||
|
||||
it { should contain_keystone_endpoint('RegionTwo/keystone').with(
|
||||
:ensure => 'present',
|
||||
:public_url => 'http://10.0.0.1:23456/v3.0',
|
||||
:admin_url => 'http://10.0.0.2:12345/v3.0',
|
||||
:internal_url => 'http://10.0.0.3:23456/v3.0'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overridden internal port' do
|
||||
|
||||
let :params do
|
||||
{
|
||||
:internal_port => '12345'
|
||||
}
|
||||
end
|
||||
|
||||
it { should contain_keystone_endpoint('RegionOne/keystone').with(
|
||||
:ensure => 'present',
|
||||
:public_url => 'http://127.0.0.1:5000/v2.0',
|
||||
:admin_url => 'http://127.0.0.1:35357/v2.0',
|
||||
:internal_url => 'http://127.0.0.1:12345/v2.0'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overriden public and private paths' do
|
||||
|
||||
let :params do
|
||||
{
|
||||
:public_url => 'https://identity.some.tld/the/main/endpoint',
|
||||
:admin_url => 'https://identity-int.some.tld/some/admin/endpoint',
|
||||
}
|
||||
end
|
||||
|
||||
it { should contain_keystone_endpoint('RegionOne/keystone').with(
|
||||
:ensure => 'present',
|
||||
:public_url => 'https://identity.some.tld/the/main/endpoint/v2.0',
|
||||
:admin_url => 'https://identity-int.some.tld/some/admin/endpoint/v2.0',
|
||||
:internal_url => 'https://identity.some.tld/the/main/endpoint/v2.0'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'with overriden public, private and internal paths and version' do
|
||||
|
||||
let :params do
|
||||
{
|
||||
:version => 'v42.6',
|
||||
{ :version => 'v42.6',
|
||||
:public_url => 'https://identity.some.tld/the/main/endpoint',
|
||||
:admin_url => 'https://identity-int.some.tld/some/admin/endpoint',
|
||||
:internal_url => 'https://identity-int.some.tld/some/internal/endpoint'
|
||||
}
|
||||
:internal_url => 'https://identity-int.some.tld/some/internal/endpoint' }
|
||||
end
|
||||
|
||||
it { should contain_keystone_endpoint('RegionOne/keystone').with(
|
||||
@@ -92,8 +32,68 @@ describe 'keystone::endpoint' do
|
||||
:admin_url => 'https://identity-int.some.tld/some/admin/endpoint/v42.6',
|
||||
:internal_url => 'https://identity-int.some.tld/some/internal/endpoint/v42.6'
|
||||
)}
|
||||
|
||||
end
|
||||
|
||||
describe 'without internal_url parameter' do
|
||||
|
||||
let :params do
|
||||
{ :public_url => 'https://identity.some.tld/the/main/endpoint' }
|
||||
end
|
||||
|
||||
it 'internal_url should default to public_url' do
|
||||
should contain_keystone_endpoint('RegionOne/keystone').with(
|
||||
:ensure => 'present',
|
||||
:public_url => 'https://identity.some.tld/the/main/endpoint/v2.0',
|
||||
:internal_url => 'https://identity.some.tld/the/main/endpoint/v2.0'
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'with deprecated parameters' do
|
||||
|
||||
let :params do
|
||||
{ :public_address => '10.0.0.1',
|
||||
:admin_address => '10.0.0.2',
|
||||
:internal_address => '10.0.0.3',
|
||||
:public_port => '23456',
|
||||
:admin_port => '12345',
|
||||
:region => 'RegionTwo',
|
||||
:version => 'v3.0' }
|
||||
end
|
||||
|
||||
it { should contain_keystone_endpoint('RegionTwo/keystone').with(
|
||||
:ensure => 'present',
|
||||
:public_url => 'http://10.0.0.1:23456/v3.0',
|
||||
:admin_url => 'http://10.0.0.2:12345/v3.0',
|
||||
:internal_url => 'http://10.0.0.3:23456/v3.0'
|
||||
)}
|
||||
|
||||
describe 'public_address overrides public_url' do
|
||||
let :params do
|
||||
{ :public_address => '10.0.0.1',
|
||||
:public_port => '12345',
|
||||
:public_url => 'http://10.10.10.10:23456/v3.0' }
|
||||
end
|
||||
|
||||
it { should contain_keystone_endpoint('RegionOne/keystone').with(
|
||||
:ensure => 'present',
|
||||
:public_url => 'http://10.0.0.1:12345/v2.0'
|
||||
)}
|
||||
end
|
||||
end
|
||||
|
||||
describe 'with overridden deprecated internal_port' do
|
||||
|
||||
let :params do
|
||||
{ :internal_port => '12345' }
|
||||
end
|
||||
|
||||
it { should contain_keystone_endpoint('RegionOne/keystone').with(
|
||||
:ensure => 'present',
|
||||
:public_url => 'http://127.0.0.1:5000/v2.0',
|
||||
:admin_url => 'http://127.0.0.1:35357/v2.0',
|
||||
:internal_url => 'http://127.0.0.1:12345/v2.0'
|
||||
)}
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user