Add class to manage vitrage-collector service
New service vitrage-collector has been added to vitrage in https://review.openstack.org/#/c/474560. This patch adds support for this new service. Change-Id: I1d18f6c0d38bb66e03ab2977570310cb2357015c
This commit is contained in:
parent
1dae737e39
commit
c5365cee79
46
manifests/collector.pp
Normal file
46
manifests/collector.pp
Normal file
@ -0,0 +1,46 @@
|
||||
# Installs the vitrage collector 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::collector (
|
||||
$manage_service = true,
|
||||
$enabled = true,
|
||||
$package_ensure = 'present',
|
||||
) {
|
||||
|
||||
include ::vitrage::deps
|
||||
include ::vitrage::params
|
||||
|
||||
ensure_resource( 'package', [$::vitrage::params::collector_package_name],
|
||||
{ ensure => $package_ensure,
|
||||
tag => ['openstack', 'vitrage-package'] }
|
||||
)
|
||||
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
}
|
||||
|
||||
service { 'vitrage-collector':
|
||||
ensure => $service_ensure,
|
||||
name => $::vitrage::params::collector_service_name,
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
tag => 'vitrage-service',
|
||||
}
|
||||
}
|
@ -9,26 +9,30 @@ class vitrage::params {
|
||||
|
||||
case $::osfamily {
|
||||
'RedHat': {
|
||||
$common_package_name = 'openstack-vitrage-common'
|
||||
$api_package_name = 'openstack-vitrage-api'
|
||||
$api_service_name = 'openstack-vitrage-api'
|
||||
$notifier_package_name = 'openstack-vitrage-notifier'
|
||||
$notifier_service_name = 'openstack-vitrage-notifier'
|
||||
$graph_package_name = 'openstack-vitrage-graph'
|
||||
$graph_service_name = 'openstack-vitrage-graph'
|
||||
$vitrage_wsgi_script_path = '/var/www/cgi-bin/vitrage'
|
||||
$vitrage_wsgi_script_source = '/usr/lib/python2.7/site-packages/vitrage/api/app.wsgi'
|
||||
$common_package_name = 'openstack-vitrage-common'
|
||||
$api_package_name = 'openstack-vitrage-api'
|
||||
$api_service_name = 'openstack-vitrage-api'
|
||||
$notifier_package_name = 'openstack-vitrage-notifier'
|
||||
$notifier_service_name = 'openstack-vitrage-notifier'
|
||||
$graph_package_name = 'openstack-vitrage-graph'
|
||||
$graph_service_name = 'openstack-vitrage-graph'
|
||||
$collector_package_name = 'openstack-vitrage-collector'
|
||||
$collector_service_name = 'openstack-vitrage-collector'
|
||||
$vitrage_wsgi_script_path = '/var/www/cgi-bin/vitrage'
|
||||
$vitrage_wsgi_script_source = '/usr/lib/python2.7/site-packages/vitrage/api/app.wsgi'
|
||||
}
|
||||
'Debian': {
|
||||
$common_package_name = 'vitrage-common'
|
||||
$api_package_name = 'vitrage-api'
|
||||
$api_service_name = 'vitrage-api'
|
||||
$notifier_package_name = 'vitrage-notifier'
|
||||
$notifier_service_name = 'vitrage-notifier'
|
||||
$graph_package_name = 'vitrage-graph'
|
||||
$graph_service_name = 'vitrage-graph'
|
||||
$vitrage_wsgi_script_path = '/usr/lib/cgi-bin/vitrage'
|
||||
$vitrage_wsgi_script_source = '/usr/share/vitrage-common/app.wsgi'
|
||||
$common_package_name = 'vitrage-common'
|
||||
$api_package_name = 'vitrage-api'
|
||||
$api_service_name = 'vitrage-api'
|
||||
$notifier_package_name = 'vitrage-notifier'
|
||||
$notifier_service_name = 'vitrage-notifier'
|
||||
$graph_package_name = 'vitrage-graph'
|
||||
$graph_service_name = 'vitrage-graph'
|
||||
$collector_package_name = 'vitrage-collector'
|
||||
$collector_service_name = 'vitrage-collector'
|
||||
$vitrage_wsgi_script_path = '/usr/lib/cgi-bin/vitrage'
|
||||
$vitrage_wsgi_script_source = '/usr/share/vitrage-common/app.wsgi'
|
||||
}
|
||||
default: {
|
||||
fail("Unsupported osfamily: ${::osfamily} operatingsystem")
|
||||
|
@ -58,6 +58,7 @@ describe 'basic vitrage' do
|
||||
class { '::vitrage::client': }
|
||||
class { '::vitrage::notifier': }
|
||||
class { '::vitrage::graph': }
|
||||
class { '::vitrage::collector': }
|
||||
}
|
||||
default: {
|
||||
fail("Unsupported osfamily (${::osfamily})")
|
||||
|
94
spec/classes/vitrage_collector_spec.rb
Normal file
94
spec/classes/vitrage_collector_spec.rb
Normal file
@ -0,0 +1,94 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'vitrage::collector' do
|
||||
|
||||
let :pre_condition do
|
||||
"class { '::vitrage': }"
|
||||
end
|
||||
|
||||
shared_examples_for 'vitrage-collector' do
|
||||
|
||||
context 'when enabled' do
|
||||
it { is_expected.to contain_class('vitrage::deps') }
|
||||
it { is_expected.to contain_class('vitrage::params') }
|
||||
|
||||
it 'installs vitrage-collector package' do
|
||||
is_expected.to contain_package(platform_params[:collector_package_name]).with(
|
||||
:ensure => 'present',
|
||||
:tag => ['openstack', 'vitrage-package']
|
||||
)
|
||||
end
|
||||
|
||||
it 'configures vitrage-collector service' do
|
||||
is_expected.to contain_service('vitrage-collector').with(
|
||||
:ensure => 'running',
|
||||
:name => platform_params[:collector_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-collector service' do
|
||||
is_expected.to contain_service('vitrage-collector').with(
|
||||
:ensure => 'stopped',
|
||||
:name => platform_params[:collector_service_name],
|
||||
:enable => false,
|
||||
:hasstatus => true,
|
||||
:hasrestart => true,
|
||||
:tag => 'vitrage-service',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when service management is disabled' do
|
||||
let :params do
|
||||
{ :enabled => false,
|
||||
:manage_service => false }
|
||||
end
|
||||
|
||||
it 'configures vitrage-collector service' do
|
||||
is_expected.to contain_service('vitrage-collector').with(
|
||||
:ensure => nil,
|
||||
:name => platform_params[:collector_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'
|
||||
{ :collector_package_name => 'vitrage-collector',
|
||||
:collector_service_name => 'vitrage-collector' }
|
||||
when 'RedHat'
|
||||
{ :collector_package_name => 'openstack-vitrage-collector',
|
||||
:collector_service_name => 'openstack-vitrage-collector' }
|
||||
end
|
||||
end
|
||||
it_configures 'vitrage-collector'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user