
This commit makes the following changes, mostly to specs to get them passing on Puppet 4.x: removes redefinition of $name because it is now a reserved word and redundant in Puppet 3.x, cleans up the use of Puppet's old behavior of implicitly converting String to Integers since Puppet 4.x is pretty strictly typed, sets facts required for doing flow control and comparison, fixes implicit use of empty string that is assumed to be the same as false by updating tests that inject empty string into params to represent a value not being provide by a user to false instead. Closes-bug: #1447620 Change-Id: Ibb651f26f33549dbe564dc88167b8f578a03fd77
122 lines
4.2 KiB
Puppet
122 lines
4.2 KiB
Puppet
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
# == Class: neutron::server::notifications
|
|
#
|
|
# Configure Notification System Options
|
|
#
|
|
# === Parameters
|
|
#
|
|
# [*notify_nova_on_port_status_changes*]
|
|
# (optional) Send notification to nova when port status is active.
|
|
# Defaults to true
|
|
#
|
|
# [*notify_nova_on_port_data_changes*]
|
|
# (optional) Send notifications to nova when port data (fixed_ips/floatingips)
|
|
# change so nova can update its cache.
|
|
# Defaults to true
|
|
#
|
|
# [*send_events_interval*]
|
|
# (optional) Number of seconds between sending events to nova if there are
|
|
# any events to send.
|
|
# Defaults to '2'
|
|
#
|
|
# [*nova_url*]
|
|
# (optional) URL for connection to nova (Only supports one nova region
|
|
# currently).
|
|
# Defaults to 'http://127.0.0.1:8774/v2'
|
|
#
|
|
# [*nova_admin_auth_url*]
|
|
# (optional) Authorization URL for connection to nova in admin context.
|
|
# Defaults to 'http://127.0.0.1:35357/v2.0'
|
|
#
|
|
# [*nova_admin_username*]
|
|
# (optional) Username for connection to nova in admin context
|
|
# Defaults to 'nova'
|
|
#
|
|
# [*nova_admin_tenant_name*]
|
|
# (optional) The name of the admin nova tenant
|
|
# Defaults to 'services'
|
|
#
|
|
# [*nova_admin_tenant_id*]
|
|
# (optional) The UUID of the admin nova tenant. If provided this takes
|
|
# precedence over nova_admin_tenant_name.
|
|
#
|
|
# [*nova_admin_password*]
|
|
# (required) Password for connection to nova in admin context.
|
|
#
|
|
# [*nova_region_name*]
|
|
# (optional) Name of nova region to use. Useful if keystone manages more than
|
|
# one region.
|
|
# Defaults to undef
|
|
#
|
|
|
|
class neutron::server::notifications (
|
|
$notify_nova_on_port_status_changes = true,
|
|
$notify_nova_on_port_data_changes = true,
|
|
$send_events_interval = '2',
|
|
$nova_url = 'http://127.0.0.1:8774/v2',
|
|
$nova_admin_auth_url = 'http://127.0.0.1:35357/v2.0',
|
|
$nova_admin_username = 'nova',
|
|
$nova_admin_tenant_name = 'services',
|
|
$nova_admin_tenant_id = undef,
|
|
$nova_admin_password = false,
|
|
$nova_region_name = undef,
|
|
) {
|
|
|
|
# Depend on the specified keystone_user resource, if it exists.
|
|
Keystone_user <| title == 'nova' |> -> Class[neutron::server::notifications]
|
|
|
|
if ! $nova_admin_password {
|
|
fail('nova_admin_password must be set.')
|
|
}
|
|
|
|
if ! ($nova_admin_tenant_id or $nova_admin_tenant_name) {
|
|
fail('You must provide either nova_admin_tenant_name or nova_admin_tenant_id.')
|
|
}
|
|
|
|
neutron_config {
|
|
'DEFAULT/notify_nova_on_port_status_changes': value => $notify_nova_on_port_status_changes;
|
|
'DEFAULT/notify_nova_on_port_data_changes': value => $notify_nova_on_port_data_changes;
|
|
'DEFAULT/send_events_interval': value => $send_events_interval;
|
|
'DEFAULT/nova_url': value => $nova_url;
|
|
'DEFAULT/nova_admin_auth_url': value => $nova_admin_auth_url;
|
|
'DEFAULT/nova_admin_username': value => $nova_admin_username;
|
|
'DEFAULT/nova_admin_password': value => $nova_admin_password, secret => true;
|
|
}
|
|
|
|
if $nova_region_name {
|
|
neutron_config {
|
|
'DEFAULT/nova_region_name': value => $nova_region_name;
|
|
}
|
|
} else {
|
|
neutron_config {
|
|
'DEFAULT/nova_region_name': ensure => absent;
|
|
}
|
|
}
|
|
|
|
if $nova_admin_tenant_id {
|
|
neutron_config {
|
|
'DEFAULT/nova_admin_tenant_id': value => $nova_admin_tenant_id;
|
|
}
|
|
} else {
|
|
nova_admin_tenant_id_setter {'nova_admin_tenant_id':
|
|
ensure => present,
|
|
tenant_name => $nova_admin_tenant_name,
|
|
auth_url => $nova_admin_auth_url,
|
|
auth_username => $nova_admin_username,
|
|
auth_password => $nova_admin_password,
|
|
auth_tenant_name => $nova_admin_tenant_name,
|
|
}
|
|
}
|
|
}
|