Update router_worker_threads to os_workers
This patch: * re-factors install * configures params based on osfamily * Adds tests to ensure config updates * Updates template for change in conf schema * Adds ssl profile to the configuration Change-Id: I92f466b46da11d8e087e6d6d9532326fce33e47c
This commit is contained in:
parent
68a0e44e80
commit
df0e57b4d6
|
@ -5,9 +5,9 @@
|
|||
class qdr::config inherits qdr {
|
||||
|
||||
$service_config_path = $::qdr::params::service_config_path
|
||||
$service_config_template = $::qdr::params::service_config_template
|
||||
$service_home = $::qdr::params::service_home
|
||||
$log_output = $::qdr::log_output
|
||||
$service_config_template = 'qdr/qdrouterd.conf.erb'
|
||||
|
||||
file { $service_home :
|
||||
ensure => directory,
|
||||
|
@ -23,6 +23,13 @@ class qdr::config inherits qdr {
|
|||
mode => '0644',
|
||||
}
|
||||
|
||||
file { '/etc/qpid-dispatch/ssl' :
|
||||
ensure => directory,
|
||||
owner => '0',
|
||||
group => '0',
|
||||
mode => '0644',
|
||||
}
|
||||
|
||||
file { 'qdrouterd.conf' :
|
||||
ensure => file,
|
||||
path => $service_config_path,
|
||||
|
@ -40,5 +47,4 @@ class qdr::config inherits qdr {
|
|||
mode => '0666',
|
||||
}
|
||||
|
||||
# TODO(ansmith) - is there need for service conf files, etc.
|
||||
}
|
||||
|
|
|
@ -160,10 +160,9 @@ class qdr(
|
|||
$router_remote_ls_max_age = '60',
|
||||
$router_sasl_name = 'qdrouterd',
|
||||
$router_sasl_path = '/etc/sasl2',
|
||||
$router_worker_threads = $::processorcount ,
|
||||
$router_worker_threads = $::os_workers,
|
||||
) inherits qdr::params {
|
||||
|
||||
validate_string($router_worker_threads)
|
||||
validate_absolute_path($router_debug_dump)
|
||||
validate_absolute_path($router_sasl_path)
|
||||
validate_string($router_sasl_name)
|
||||
|
@ -174,8 +173,21 @@ class qdr(
|
|||
validate_re($listener_auth_peer,'^(yes$|no$)')
|
||||
validate_string($listener_sasl_mech)
|
||||
|
||||
class { '::qdr::install': } ->
|
||||
class { '::qdr::config': } ~>
|
||||
class { '::qdr::service': }
|
||||
# TODO (ansmith) - manage repo via openstack-extras
|
||||
# if $::operatingsystem == 'Ubuntu' {
|
||||
# include ::apt
|
||||
#
|
||||
# Class['apt::update'] -> Package<| provider == 'apt' |>
|
||||
#
|
||||
# apt::ppa { 'ppa:qpid/testing' : }
|
||||
# }
|
||||
|
||||
include ::qdr::install
|
||||
include ::qdr::config
|
||||
include ::qdr::service
|
||||
|
||||
Class['::qdr::install'] ->
|
||||
Class['::qdr::config'] ->
|
||||
Class['::qdr::service']
|
||||
|
||||
}
|
||||
|
|
|
@ -1,21 +1,36 @@
|
|||
# == Class qdr::install
|
||||
#
|
||||
# This class is called from qdr for qdrouterd service installation
|
||||
class qdr::install inherits qdr {
|
||||
|
||||
$ensure_package = $::qdr::ensure_package
|
||||
$service_package_name = $::qdr::params::service_package_name
|
||||
$package_provider = $::qdr::params::package_provider
|
||||
$sasl_package_list = $::qdr::params::sasl_package_list
|
||||
$tools_package_list = $::qdr::params::tools_package_list
|
||||
|
||||
if $::osfamily == 'Debian' {
|
||||
include ::apt
|
||||
|
||||
Class['apt::update'] -> Package<| provider == 'apt' |>
|
||||
|
||||
apt::ppa { 'ppa:qpid/testing' : }
|
||||
}
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# [*ensure_package*]
|
||||
# (optional) The state of the qdr packages
|
||||
# Defaults to $::qdr::ensure_package
|
||||
#
|
||||
# [*service_package_name*]
|
||||
# (optional) The service package name for osfamily
|
||||
# Defaults to $::qdr::params::service_package_name
|
||||
#
|
||||
# [*package_provider*]
|
||||
# (optional) The package repo application for osfamily
|
||||
# Defaults to $::qdr::params::package_provider
|
||||
#
|
||||
# [*sasl_package_list*]
|
||||
# (optional) The sasl package enumeration for osfamily
|
||||
# Defaults to $::qdr::params::sasl_package_list
|
||||
#
|
||||
# [*tools_package_list*]
|
||||
# (optional) The qdr tools package enumeration for osfamily
|
||||
# Defaults to $::qdr::params::tools_package_list
|
||||
#
|
||||
class qdr::install (
|
||||
$ensure_package = $::qdr::ensure_package,
|
||||
$service_package_name = $::qdr::params::service_package_name,
|
||||
$package_provider = $::qdr::params::package_provider,
|
||||
$sasl_package_list = $::qdr::params::sasl_package_list,
|
||||
$tools_package_list = $::qdr::params::tools_package_list,
|
||||
) inherits qdr {
|
||||
|
||||
package { $sasl_package_list :
|
||||
ensure => $ensure_package,
|
||||
|
|
|
@ -3,25 +3,35 @@
|
|||
# The Qpid Dispatch Router Module configuration settings
|
||||
#
|
||||
class qdr::params {
|
||||
$service_package_name = 'qpid-dispatch-router'
|
||||
$service_name = 'qdrouterd'
|
||||
$package_provider = 'yum'
|
||||
$service_user = 'qdrouterd'
|
||||
$service_group = 'qdrouterd'
|
||||
$service_home = '/var/lib/qdrouterd'
|
||||
$service_version = '0.6.0'
|
||||
$sasl_package_list = [ 'cyrus-sasl-lib', 'cyrus-sasl-plain' ]
|
||||
$tools_package_list = [ 'qpid-dispatch-tools' ]
|
||||
|
||||
if $::osfamily == 'Debian' {
|
||||
case $::osfamily {
|
||||
'Debian': {
|
||||
$service_package_name = 'qdrouterd'
|
||||
$service_name = 'qdrouterd'
|
||||
$service_config_path = '/etc/qpid-dispatch/qdrouterd.conf'
|
||||
$package_provider = 'apt'
|
||||
$service_user = 'qdrouterd'
|
||||
$service_group = 'qdrouterd'
|
||||
$service_home = '/var/lib/qdrouterd'
|
||||
$service_version = '0.6.0'
|
||||
$sasl_package_list = 'sasl2-bin'
|
||||
$tools_package_list = [ 'qdmanage' , 'qdstat' ]
|
||||
}
|
||||
'RedHat': {
|
||||
$service_package_name = 'qpid-dispatch-router'
|
||||
$service_name = 'qdrouterd'
|
||||
$service_config_path = '/etc/qpid-dispatch/qdrouterd.conf'
|
||||
$package_provider = 'yum'
|
||||
$service_user = 'qdrouterd'
|
||||
$service_group = 'qdrouterd'
|
||||
$service_home = '/var/lib/qdrouterd'
|
||||
$service_version = '0.6.0'
|
||||
$sasl_package_list = [ 'cyrus-sasl-lib', 'cyrus-sasl-plain' ]
|
||||
$tools_package_list = [ 'qpid-dispatch-tools' ]
|
||||
}
|
||||
default: {
|
||||
fail("Unsupported osfamily: ${::osfamily} operatingsystem")
|
||||
}
|
||||
}
|
||||
|
||||
#service and config attributes
|
||||
$service_config_path = '/etc/qpid-dispatch/qdrouterd.conf'
|
||||
$service_config_template = 'qdr/qdrouterd.conf.erb'
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "openstack-qdr",
|
||||
"version": "0.1.0",
|
||||
"version": "0.2.0",
|
||||
"author": "OpenStack Contributors",
|
||||
"summary": "Puppet OpenStack Extras Module",
|
||||
"license": "Apache-2.0",
|
||||
|
|
|
@ -3,92 +3,151 @@ require 'spec_helper'
|
|||
describe 'qdr' do
|
||||
|
||||
shared_examples 'qdr' do
|
||||
|
||||
it 'contains the install class' do
|
||||
is_expected.to contain_class('qdr::install')
|
||||
end
|
||||
|
||||
it 'contains the config class' do
|
||||
is_expected.to contain_class('qdr::config')
|
||||
end
|
||||
it { is_expected.to contain_class('qdr') }
|
||||
it { is_expected.to contain_class('qdr::params') }
|
||||
it { is_expected.to contain_class('qdr::install') }
|
||||
it { is_expected.to contain_class('qdr::config') }
|
||||
it { is_expected.to contain_class('qdr::service') }
|
||||
|
||||
it 'contains the service class' do
|
||||
is_expected.to contain_class('qdr::service')
|
||||
end
|
||||
|
||||
it 'installs packages' do
|
||||
is_expected.to contain_package(platform_params[:qdr_package_name]).with({ :ensure => :installed })
|
||||
is_expected.to contain_package('cyrus-sasl-lib').with({ :ensure => :installed })
|
||||
is_expected.to contain_package('cyrus-sasl-plain').with({ :ensure => :installed })
|
||||
platform_params[:sasl_package_list].each do |p|
|
||||
is_expected.to contain_package(p).with({ :ensure => :installed })
|
||||
end
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_file(platform_params[:service_home]).with({
|
||||
:ensure => :directory,
|
||||
:owner => '0',
|
||||
:group => '0',
|
||||
:mode => '0644',
|
||||
})
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_file('/etc/qpid-dispatch').with({
|
||||
:ensure => :directory,
|
||||
:owner => '0',
|
||||
:group => '0',
|
||||
:mode => '0644',
|
||||
})
|
||||
context 'with default parameters' do
|
||||
it do
|
||||
should contain_file(platform_params[:service_home]).with({
|
||||
:ensure => :directory,
|
||||
:owner => '0',
|
||||
:group => '0',
|
||||
:mode => '0644',
|
||||
})
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_file('/etc/qpid-dispatch').with({
|
||||
:ensure => :directory,
|
||||
:owner => '0',
|
||||
:group => '0',
|
||||
:mode => '0644',
|
||||
})
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_file('/etc/qpid-dispatch/ssl').with({
|
||||
:ensure => :directory,
|
||||
:owner => '0',
|
||||
:group => '0',
|
||||
:mode => '0644',
|
||||
})
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_file('qdrouterd.conf').with({
|
||||
:ensure => :file,
|
||||
:owner => '0',
|
||||
:group => '0',
|
||||
:mode => '0644',
|
||||
})
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_service(platform_params[:service_name]).with({
|
||||
:ensure => 'running',
|
||||
:enable => 'true',
|
||||
})
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_file('qdrouterd.conf').with_content(/mode: standalone/)
|
||||
should contain_file('qdrouterd.conf').with_content(/workerThreads: 8/)
|
||||
should contain_file('qdrouterd.conf').with_content(/host: 127.0.0.1/)
|
||||
should contain_file('qdrouterd.conf').with_content(/port: 5672/)
|
||||
should contain_file('qdrouterd.conf').with_content(/authenticatePeer: no/)
|
||||
should contain_file('qdrouterd.conf').with_content(/saslMechanisms: ANONYMOUS/)
|
||||
should contain_file('qdrouterd.conf').without_content(/sslProfile {/)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_file('qdrouterd.conf').with({
|
||||
:ensure => :file,
|
||||
:owner => '0',
|
||||
:group => '0',
|
||||
:mode => '0644',
|
||||
})
|
||||
|
||||
context 'with overridden paramters' do
|
||||
|
||||
let :params do
|
||||
{
|
||||
:router_worker_threads => '4',
|
||||
:listener_addr => '10.1.1.1',
|
||||
:listener_port => '5671',
|
||||
:listener_auth_peer => 'yes',
|
||||
:listener_sasl_mech => 'ANONYMOUS DIGEST-MD5 EXTERNAL PLAIN'
|
||||
}
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_file('qdrouterd.conf').with_content(/workerThreads: 4/)
|
||||
should contain_file('qdrouterd.conf').with_content(/host: 10.1.1.1/)
|
||||
should contain_file('qdrouterd.conf').with_content(/port: 5671/)
|
||||
should contain_file('qdrouterd.conf').with_content(/authenticatePeer: yes/)
|
||||
should contain_file('qdrouterd.conf').with_content(/saslMechanisms: ANONYMOUS DIGEST-MD5 EXTERNAL PLAIN/)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_service(platform_params[:service_name]).with({
|
||||
:ensure => 'running',
|
||||
:enable => 'true',
|
||||
})
|
||||
|
||||
context 'with qdr ssl enabled' do
|
||||
|
||||
let :params do
|
||||
{
|
||||
:listener_require_ssl => 'yes',
|
||||
:listener_ssl_cert_db => '/etc/ssl/certs/ca-bundle.crt',
|
||||
:listener_ssl_cert_file => '/etc/pki/ca-trust/source/anchors/puppet_qdr.pem',
|
||||
:listener_ssl_key_file => '/etc/qpid-dispatch/ssl/puppet_qdr.pem',
|
||||
}
|
||||
end
|
||||
|
||||
it do
|
||||
should contain_file('qdrouterd.conf').with_content(/sslProfile {/)
|
||||
should contain_file('qdrouterd.conf').with_content(/certDb: \/etc\/ssl\/certs\/ca-bundle.crt/)
|
||||
should contain_file('qdrouterd.conf').with_content(/certFile: \/etc\/pki\/ca-trust\/source\/anchors\/puppet_qdr.pem/)
|
||||
should contain_file('qdrouterd.conf').with_content(/keyFile: \/etc\/qpid-dispatch\/ssl\/puppet_qdr.pem/)
|
||||
should contain_file('qdrouterd.conf').with_content(/requireSsl: yes/)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# context 'on Debian platforms' do
|
||||
#
|
||||
# let :platform_params do
|
||||
# { :qdr_package_name => 'qdrouterd',
|
||||
# :sasl_package_list => [ 'sasl2-bin' ] }
|
||||
# end
|
||||
|
||||
# it_behaves_like 'qdr'
|
||||
# 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({
|
||||
:os_workers => 8,
|
||||
}))
|
||||
end
|
||||
|
||||
# context 'on Ubuntu platforms' do
|
||||
case facts[:osfamily]
|
||||
when 'Debian'
|
||||
let (:platform_params) do
|
||||
{ :qdr_package_name => 'qdrouterd',
|
||||
:service_name => 'qdrouterd',
|
||||
:sasl_package_list => ['sasl2-bin'],
|
||||
:service_home => '/var/lib/qdrouterd'}
|
||||
end
|
||||
when 'RedHat'
|
||||
let (:platform_params) do
|
||||
{ :qdr_package_name => 'qpid-dispatch-router',
|
||||
:service_name => 'qdrouterd',
|
||||
:sasl_package_list => ['cyrus-sasl-lib','cyrus-sasl-plain'],
|
||||
:service_home => '/var/lib/qdrouterd'}
|
||||
end
|
||||
end
|
||||
|
||||
# let :platform_params do
|
||||
# { :qdr_package_name => 'qdrouterd',
|
||||
# :service_name =>
|
||||
# :sasl_package_list => [ 'sasl2-bin' ] }
|
||||
# :service_home =>
|
||||
# end
|
||||
|
||||
# it_behaves_like 'qdr'
|
||||
# end
|
||||
it_behaves_like 'qdr'
|
||||
|
||||
context 'on RedHat platforms' do
|
||||
|
||||
let :platform_params do
|
||||
{ :qdr_package_name => 'qpid-dispatch-router',
|
||||
:service_name => 'qdrouterd',
|
||||
:sasl_package_list => ['cyrus-sasl-lib','cyrus-sasl-plain'],
|
||||
:service_home => '/var/lib/qdrouterd'}
|
||||
end
|
||||
|
||||
it_behaves_like 'qdr'
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
|
|
@ -29,17 +29,22 @@ router {
|
|||
saslConfigName: <%= @router_sasl_name %>
|
||||
}
|
||||
|
||||
# sslProfile {
|
||||
# name: <%= @container_name %>
|
||||
# certDb: <%= @listener_ssl_cert_db %>
|
||||
# certFile: <%= @listener_ssl_cert_file %>
|
||||
# keyFile: <%= @listener_ssl_key_file %>
|
||||
#}
|
||||
<%- if @listener_require_ssl == 'yes' -%>
|
||||
sslProfile {
|
||||
name: <%= @router_id %>
|
||||
certDb: <%= @listener_ssl_cert_db %>
|
||||
certFile: <%= @listener_ssl_cert_file %>
|
||||
keyFile: <%= @listener_ssl_key_file %>
|
||||
}
|
||||
<%- end -%>
|
||||
|
||||
listener {
|
||||
addr: <%= @listener_addr %>
|
||||
host: <%= @listener_addr %>
|
||||
port: <%= @listener_port %>
|
||||
# sslProfile: <%= @container_name %>
|
||||
<%- if @listener_require_ssl == 'yes' -%>
|
||||
requireSsl: <%= @listener_require_ssl %>
|
||||
sslProfile: <%= @router_id %>
|
||||
<%- end -%>
|
||||
authenticatePeer: <%= @listener_auth_peer %>
|
||||
saslMechanisms: <%= @listener_sasl_mech %>
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue