Introduce vitrage::persistor

Change-Id: I34b7c0d151bd94f5aac31dd166246accbbcb69c0
This commit is contained in:
Emilien Macchi 2018-01-02 21:21:12 -08:00
parent 528d14b4c3
commit 2f61c54b8a
4 changed files with 160 additions and 0 deletions

View File

@ -18,6 +18,8 @@ class vitrage::params {
$graph_service_name = 'openstack-vitrage-graph'
$collector_package_name = 'openstack-vitrage-collector'
$collector_service_name = 'openstack-vitrage-collector'
$persistor_package_name = 'openstack-vitrage-persistor'
$persistor_service_name = 'openstack-vitrage-persistor'
$vitrage_wsgi_script_path = '/var/www/cgi-bin/vitrage'
$vitrage_wsgi_script_source = '/usr/lib/python2.7/site-packages/vitrage/api/app.wsgi'
}
@ -31,6 +33,8 @@ class vitrage::params {
$graph_service_name = 'vitrage-graph'
$collector_package_name = 'vitrage-collector'
$collector_service_name = 'vitrage-collector'
$persistor_package_name = 'vitrage-persistor'
$persistor_service_name = 'vitrage-persistor'
$vitrage_wsgi_script_path = '/usr/lib/cgi-bin/vitrage'
$vitrage_wsgi_script_source = '/usr/share/vitrage-common/app.wsgi'
}

50
manifests/persistor.pp Normal file
View File

@ -0,0 +1,50 @@
# Installs the vitrage persistor service
#
# == Params
# [*enabled*]
# (optional) Should the service be enabled.
# Defaults to true.
#
# [*manage_service*]
# (optional) Whether the service should be managed by Puppet.
# Defaults to true.
#
# [*package_ensure*]
# (optional) ensure state for package.
# Defaults to 'present'
#
class vitrage::persistor (
$manage_service = true,
$enabled = true,
$package_ensure = 'present',
) {
include ::vitrage::deps
include ::vitrage::params
ensure_resource( 'package', [$::vitrage::params::persistor_package_name],
{ ensure => $package_ensure,
tag => ['openstack', 'vitrage-package'] }
)
if $manage_service {
if $enabled {
$service_ensure = 'running'
} else {
$service_ensure = 'stopped'
}
}
vitrage_config {
'persistor/persist_events': value => $enabled;
}
service { 'vitrage-persistor':
ensure => $service_ensure,
name => $::vitrage::params::persistor_service_name,
enable => $enabled,
hasstatus => true,
hasrestart => true,
tag => 'vitrage-service',
}
}

View File

@ -0,0 +1,5 @@
---
features:
- |
Add vitrage::persistor which allows to make events persistent with
the Vitrage Persistor service.

View File

@ -0,0 +1,101 @@
require 'spec_helper'
describe 'vitrage::persistor' do
let :pre_condition do
"class { '::vitrage': }"
end
shared_examples_for 'vitrage-persistor' do
context 'when enabled' do
it { is_expected.to contain_class('vitrage::deps') }
it { is_expected.to contain_class('vitrage::params') }
it 'configures vitrage.conf' do
is_expected.to contain_vitrage_config('persistor/persist_events').with_value('true')
end
it 'installs vitrage-persistor package' do
is_expected.to contain_package(platform_params[:persistor_package_name]).with(
:ensure => 'present',
:tag => ['openstack', 'vitrage-package']
)
end
it 'configures vitrage-persistor service' do
is_expected.to contain_service('vitrage-persistor').with(
:ensure => 'running',
:name => platform_params[:persistor_service_name],
:enable => true,
:hasstatus => true,
:hasrestart => true,
:tag => 'vitrage-service',
)
end
end
context 'when disabled' do
let :params do
{ :enabled => false }
end
it { is_expected.to compile }
it 'configures vitrage-persistor service' do
is_expected.to contain_service('vitrage-persistor').with(
:ensure => 'stopped',
:name => platform_params[:persistor_service_name],
:enable => false,
:hasstatus => true,
:hasrestart => true,
:tag => 'vitrage-service',
)
end
it 'configures vitrage.conf' do
is_expected.to contain_vitrage_config('persistor/persist_events').with_value('false')
end
end
context 'when service management is disabled' do
let :params do
{ :enabled => false,
:manage_service => false }
end
it 'configures vitrage-persistor service' do
is_expected.to contain_service('vitrage-persistor').with(
:ensure => nil,
:name => platform_params[:persistor_service_name],
:enable => false,
:hasstatus => true,
:hasrestart => true,
:tag => 'vitrage-service',
)
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
let(:platform_params) do
case facts[:osfamily]
when 'Debian'
{ :persistor_package_name => 'vitrage-persistor',
:persistor_service_name => 'vitrage-persistor' }
when 'RedHat'
{ :persistor_package_name => 'openstack-vitrage-persistor',
:persistor_service_name => 'openstack-vitrage-persistor' }
end
end
it_configures 'vitrage-persistor'
end
end
end