replace validate_legacy with proper data types

the validate_legacy function is marked for deprecation in
v9.0.0 from puppetlabs-stdlib.

Note that this change looses validation about pool ids. Alternatively
we can define a new data type to keep the validation, but these defined
types for pool-manager were already deprecated and useless and will be
removed in a near future release so we avoid that redundant step.

Change-Id: I85d7058bf379c6aa0e787b2f806f14aebf0693d3
This commit is contained in:
Takashi Kajinami 2023-06-19 14:00:11 +09:00
parent 8f4986cea4
commit 8ed0bcb867
17 changed files with 96 additions and 152 deletions

View File

@ -38,21 +38,18 @@
# Defaults to $facts['os_service_default']
#
class designate::agent (
$package_ensure = present,
$agent_package_name = $::designate::params::agent_package_name,
$enabled = true,
$manage_service = true,
$backend_driver = 'bind9',
$workers = $facts['os_workers'],
$threads = $facts['os_service_default'],
$listen = $facts['os_service_default'],
$package_ensure = present,
$agent_package_name = $::designate::params::agent_package_name,
Boolean $enabled = true,
Boolean $manage_service = true,
$backend_driver = 'bind9',
$workers = $facts['os_workers'],
$threads = $facts['os_service_default'],
$listen = $facts['os_service_default'],
) inherits designate::params {
include designate::deps
validate_legacy(Boolean, 'validate_bool', $manage_service)
validate_legacy(Boolean, 'validate_bool', $enabled)
warning('The agent framework has been deprecated.')
designate_config {

View File

@ -104,8 +104,8 @@
class designate::api (
$package_ensure = present,
$api_package_name = $::designate::params::api_package_name,
$enabled = true,
$manage_service = true,
Boolean $enabled = true,
Boolean $manage_service = true,
$auth_strategy = $facts['os_service_default'],
$enable_api_v2 = $facts['os_service_default'],
$enable_api_admin = $facts['os_service_default'],
@ -130,9 +130,6 @@ class designate::api (
include designate::deps
include designate::policy
validate_legacy(Boolean, 'validate_bool', $manage_service)
validate_legacy(Boolean, 'validate_bool', $enabled)
# API Service
designate_config {
'service:api/listen' : value => $listen;

View File

@ -26,11 +26,11 @@
# Defaults to true
#
class designate::backend::agent (
$agent_hosts = ['127.0.0.1'],
$agent_port = 5358,
$mdns_hosts = ['127.0.0.1'],
$mdns_port = 5354,
$manage_pool = true,
$agent_hosts = ['127.0.0.1'],
$agent_port = 5358,
$mdns_hosts = ['127.0.0.1'],
$mdns_port = 5354,
Boolean $manage_pool = true,
) {
include designate::deps
@ -38,8 +38,6 @@ class designate::backend::agent (
warning('The agent framework has been deprecated.')
validate_legacy(Boolean, 'validate_bool', $manage_pool)
if $manage_pool {
file { '/etc/designate/pools.yaml':
ensure => present,

View File

@ -55,30 +55,23 @@
# Defaults to true
#
class designate::backend::bind9 (
$rndc_config_file = '/etc/rndc.conf',
$rndc_key_file = '/etc/rndc.key',
$rndc_controls = undef,
$rndc_port = 953,
$ns_records = {1 => 'ns1.example.org.'},
$nameservers = ['127.0.0.1'],
$bind9_hosts = ['127.0.0.1'],
$dns_port = 53,
$mdns_hosts = ['127.0.0.1'],
$mdns_port = 5354,
$configure_bind = true,
$manage_pool = true,
$rndc_config_file = '/etc/rndc.conf',
$rndc_key_file = '/etc/rndc.key',
$rndc_controls = undef,
$rndc_port = 953,
Hash[Integer, String] $ns_records = {1 => 'ns1.example.org.'},
Array[String[1]] $nameservers = ['127.0.0.1'],
Array[String[1]] $bind9_hosts = ['127.0.0.1'],
$dns_port = 53,
Array[String[1]] $mdns_hosts = ['127.0.0.1'],
$mdns_port = 5354,
Boolean $configure_bind = true,
Boolean $manage_pool = true,
) {
include designate::deps
include designate::params
validate_legacy(Hash, 'validate_hash', $ns_records)
validate_legacy(Array, 'validate_array', $nameservers)
validate_legacy(Array, 'validate_array', $bind9_hosts)
validate_legacy(Array, 'validate_array', $mdns_hosts)
validate_legacy(Boolean, 'validate_bool', $configure_bind)
validate_legacy(Boolean, 'validate_bool', $manage_pool)
if $configure_bind {
if $rndc_controls {
class { 'dns':

View File

@ -38,20 +38,18 @@
#
class designate::backend::pdns4 (
$api_token,
$pdns4_hosts = ['127.0.0.1'],
$pdns4_port = 53,
$mdns_hosts = ['127.0.0.1'],
$mdns_port = 5354,
$api_endpoint = 'http://127.0.0.1:8081',
$tsigkey_name = undef,
$manage_pool = true,
$pdns4_hosts = ['127.0.0.1'],
$pdns4_port = 53,
$mdns_hosts = ['127.0.0.1'],
$mdns_port = 5354,
$api_endpoint = 'http://127.0.0.1:8081',
$tsigkey_name = undef,
Boolean $manage_pool = true,
) {
include designate::deps
include designate::params
validate_legacy(Boolean, 'validate_bool', $manage_pool)
if $manage_pool {
file { '/etc/designate/pools.yaml':
ensure => present,

View File

@ -60,8 +60,8 @@
class designate::central (
$package_ensure = present,
$central_package_name = $::designate::params::central_package_name,
$enabled = true,
$manage_service = true,
Boolean $enabled = true,
Boolean $manage_service = true,
$managed_resource_email = 'hostmaster@example.com',
$managed_resource_tenant_id = $facts['os_service_default'],
$max_zone_name_len = $facts['os_service_default'],
@ -76,9 +76,6 @@ class designate::central (
include designate::deps
include designate::db
validate_legacy(Boolean, 'validate_bool', $manage_service)
validate_legacy(Boolean, 'validate_bool', $enabled)
designate_config {
'service:central/managed_resource_email' : value => $managed_resource_email;
'service:central/managed_resource_tenant_id' : value => $managed_resource_tenant_id;

View File

@ -31,17 +31,13 @@
# (optional) Allow configuration of /etc/designate/rootwrap.conf.
#
class designate::config (
$designate_config = {},
$api_paste_ini_config = {},
$rootwrap_config = {},
Hash $designate_config = {},
Hash $api_paste_ini_config = {},
Hash $rootwrap_config = {},
) {
include designate::deps
validate_legacy(Hash, 'validate_hash', $designate_config)
validate_legacy(Hash, 'validate_hash', $api_paste_ini_config)
validate_legacy(Hash, 'validate_hash', $rootwrap_config)
create_resources('designate_config', $designate_config)
create_resources('designate_api_paste_ini', $api_paste_ini_config)
create_resources('designate_rootwrap_config', $rootwrap_config)

View File

@ -60,11 +60,10 @@ class designate::db (
$database_max_overflow = $facts['os_service_default'],
$database_pool_timeout = $facts['os_service_default'],
$mysql_enable_ndb = $facts['os_service_default'],
$sync_db = true,
Boolean $sync_db = true,
) {
include designate::deps
validate_legacy(Boolean, 'validate_bool', $sync_db)
oslo::db { 'designate_config':
config_group => 'storage:sqlalchemy',

View File

@ -34,17 +34,14 @@
define designate::generic_service(
$package_name,
$service_name,
$enabled = false,
$manage_service = true,
$package_ensure = 'present',
Boolean $enabled = false,
Boolean $manage_service = true,
$package_ensure = 'present',
) {
include designate::deps
include designate::params
validate_legacy(Boolean, 'validate_bool', $manage_service)
validate_legacy(Boolean, 'validate_bool', $enabled)
$designate_title = "designate-${name}"
if ($package_name) {

View File

@ -65,29 +65,26 @@
# Defaults to $facts['os_service_default'].
#
class designate::mdns (
$package_ensure = present,
$mdns_package_name = $::designate::params::mdns_package_name,
$enabled = true,
$manage_service = true,
$workers = $facts['os_workers'],
$threads = $facts['os_service_default'],
$tcp_backlog = $facts['os_service_default'],
$tcp_recv_timeout = $facts['os_service_default'],
$all_tcp = $facts['os_service_default'],
$query_enforce_tsig = $facts['os_service_default'],
$storage_driver = $facts['os_service_default'],
$max_message_size = $facts['os_service_default'],
$listen = $facts['os_service_default'],
$topic = $facts['os_service_default'],
$xfr_timeout = $facts['os_service_default'],
$package_ensure = present,
$mdns_package_name = $::designate::params::mdns_package_name,
Boolean $enabled = true,
Boolean $manage_service = true,
$workers = $facts['os_workers'],
$threads = $facts['os_service_default'],
$tcp_backlog = $facts['os_service_default'],
$tcp_recv_timeout = $facts['os_service_default'],
$all_tcp = $facts['os_service_default'],
$query_enforce_tsig = $facts['os_service_default'],
$storage_driver = $facts['os_service_default'],
$max_message_size = $facts['os_service_default'],
$listen = $facts['os_service_default'],
$topic = $facts['os_service_default'],
$xfr_timeout = $facts['os_service_default'],
) inherits designate::params {
include designate::deps
include designate::db
validate_legacy(Boolean, 'validate_bool', $manage_service)
validate_legacy(Boolean, 'validate_bool', $enabled)
designate_config {
'service:mdns/workers' : value => $workers;
'service:mdns/threads' : value => $threads;

View File

@ -48,7 +48,7 @@
class designate::policy (
$enforce_scope = $facts['os_service_default'],
$enforce_new_defaults = $facts['os_service_default'],
$policies = {},
Hash $policies = {},
$policy_path = '/etc/designate/policy.yaml',
$policy_default_rule = $facts['os_service_default'],
$policy_dirs = $facts['os_service_default'],
@ -58,8 +58,6 @@ class designate::policy (
include designate::deps
include designate::params
validate_legacy(Hash, 'validate_hash', $policies)
$policy_parameters = {
policies => $policies,
policy_path => $policy_path,

View File

@ -5,32 +5,25 @@
# === Parameters
#
# [*nameservers*]
# An array of UUID's of the nameservers in this pool
# (required) An array of UUID's of the nameservers in this pool
#
# [*targets*]
# An array of UUID's of the targets in this pool
# (required) An array of UUID's of the targets in this pool
#
# [*also_notifies*]
# (optional) List of hostnames and port numbers to also notify on zone changes.
# Defaults to []
#
define designate::pool(
$nameservers,
$targets,
$also_notifies = [],
Array[String[1]] $nameservers,
Array[String[1]] $targets,
Array[String[1]] $also_notifies = [],
){
warning('Support for pool-manager was deprecated.')
include designate::deps
validate_legacy(Pattern[/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/],
'validate_re', $name, ['[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',
'Pool name should be a UUID.'])
validate_legacy(Array, 'validate_array', $nameservers)
validate_legacy(Array, 'validate_array', $targets)
validate_legacy(Array, 'validate_array', $also_notifies)
designate_config {
"pool:${name}/nameservers": value => join($nameservers,',');
"pool:${name}/targets": value => join($targets,',');

View File

@ -3,10 +3,12 @@
# === Parameters
#
# [*port*]
# Port number of the DNS server.
# (optional) Port number of the DNS server.
# Defaults to 53.
#
# [*host*]
# IP address or hostname of the DNS server.
# (optional) IP address or hostname of the DNS server.
# Defaults to '127.0.0.1'
#
define designate::pool_nameserver(
$port = 53,
@ -17,10 +19,6 @@ define designate::pool_nameserver(
include designate::deps
validate_legacy(Pattern[/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/],
'validate_re', $name, ['[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',
'Name should be a UUID.'])
designate_config {
"pool_nameserver:${name}/port": value => $port;
"pool_nameserver:${name}/host": value => $host;

View File

@ -5,8 +5,8 @@
# == Parameters
#
# [*options*]
# Options to be passed to the backend DNS server. This should include host and
# port. For instance for a bind9 target this could be:
# (required) Options to be passed to the backend DNS server. This should
# include host and port. For instance for a bind9 target this could be:
# {'rndc_host' => '192.168.27.100',
# 'rndc_port' => 953,
# 'rndc_config_file' => '/etc/bind/rndc.conf',
@ -15,7 +15,7 @@
# 'host' => '192.168.27.100'}
#
# [*type*]
# Port number of the target DNS server.
# (required) Port number of the target DNS server.
#
# [*masters*]
# (optional) IP addresses and ports of the master DNS server. This should point
@ -23,20 +23,15 @@
# Defaults to ['127.0.0.1:5354']
#
define designate::pool_target (
$options,
Hash $options,
$type,
$masters = ['127.0.0.1:5354'],
Array[String[1]] $masters = ['127.0.0.1:5354'],
) {
warning('Support for pool-manager was deprecated.')
include designate::deps
validate_legacy(Pattern[/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/],
'validate_re', $name, ['[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'])
validate_legacy(Hash, 'validate_hash', $options)
validate_legacy(Array, 'validate_array', $masters)
$options_real = join(join_keys_to_values($options,':'),',')
designate_config {

View File

@ -33,20 +33,17 @@
# Defaults to $facts['os_service_default'].
#
class designate::producer (
$package_ensure = 'present',
$package_name = $::designate::params::producer_package_name,
$enabled = true,
$manage_service = true,
$workers = $facts['os_workers'],
$threads = $facts['os_service_default'],
$enabled_tasks = $facts['os_service_default'],
$package_ensure = 'present',
$package_name = $::designate::params::producer_package_name,
Boolean $enabled = true,
Boolean $manage_service = true,
$workers = $facts['os_workers'],
$threads = $facts['os_service_default'],
$enabled_tasks = $facts['os_service_default'],
) inherits designate::params {
include designate::deps
validate_legacy(Boolean, 'validate_bool', $manage_service)
validate_legacy(Boolean, 'validate_bool', $enabled)
designate_config {
'service:producer/workers' : value => $workers;
'service:producer/threads' : value => $threads;

View File

@ -37,8 +37,8 @@
class designate::sink (
$package_ensure = present,
$sink_package_name = $::designate::params::sink_package_name,
$enabled = true,
$manage_service = true,
Boolean $enabled = true,
Boolean $manage_service = true,
$workers = $facts['os_service_default'],
$threads = $facts['os_service_default'],
$enabled_notification_handlers = $facts['os_service_default'],
@ -46,9 +46,6 @@ class designate::sink (
include designate::deps
validate_legacy(Boolean, 'validate_bool', $manage_service)
validate_legacy(Boolean, 'validate_bool', $enabled)
designate::generic_service { 'sink':
enabled => $enabled,
manage_service => $manage_service,

View File

@ -57,26 +57,23 @@
# Defaults to $facts['os_service_default']
#
class designate::worker(
$package_ensure = present,
$worker_package_name = $::designate::params::worker_package_name,
$enabled = true,
$manage_service = true,
$workers = $facts['os_workers'],
$threads = $facts['os_service_default'],
$threshold_percentage = $facts['os_service_default'],
$poll_timeout = $facts['os_service_default'],
$poll_retry_interval = $facts['os_service_default'],
$poll_max_retries = $facts['os_service_default'],
$poll_delay = $facts['os_service_default'],
$export_synchronous = $facts['os_service_default'],
$topic = $facts['os_service_default'],
$package_ensure = present,
$worker_package_name = $::designate::params::worker_package_name,
Boolean $enabled = true,
Boolean $manage_service = true,
$workers = $facts['os_workers'],
$threads = $facts['os_service_default'],
$threshold_percentage = $facts['os_service_default'],
$poll_timeout = $facts['os_service_default'],
$poll_retry_interval = $facts['os_service_default'],
$poll_max_retries = $facts['os_service_default'],
$poll_delay = $facts['os_service_default'],
$export_synchronous = $facts['os_service_default'],
$topic = $facts['os_service_default'],
) inherits designate::params {
include designate::deps
validate_legacy(Boolean, 'validate_bool', $manage_service)
validate_legacy(Boolean, 'validate_bool', $enabled)
designate::generic_service { 'worker':
package_ensure => $package_ensure,
enabled => $enabled,